
Vamos a proceder a explicar uno por uno de los sensores utilizados. Intentaré intercalar la explicación del código Python utilizado por cada sensor y el esquema utilizado. Sientete libre de modificarlo y mejorarlo. Sólo es una propuesta. El límite debe de estar sólamente en tú imaginzación.
Sensor digital de temperatura y humedad relativa de buen rendimiento y bajo costo. Integra un sensor capacitivo de humedad y un termistor para medir el aire circundante, y muestra los datos mediante una señal digital en el pin de datos (no posee salida analógica).
![]() |
1 - 3.3v |
|---|
| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| DHT22 | 1 | 3.3v | Cable | RPi | 1 | 3V3 |
| DHT22 | 1 | 3.3v | Resistencia 10kΩ | DHT22 | 2 | DATA |
| DHT22 | 2 | DATA | Cable | RPi | 7 | GPIO4 |
| DHT22 | 4 | GND | Cable | RPi | 39 | GND |
En este enlace verás el código Python comentado para este sensor.
El módulo BH1750 es un sensor de iluminación digital para medición de flujo luminoso (iluminancia) de la empresa Rohm Semiconductor. Posee un conversor interno de 16-bit, por lo que entrega una salida digital en formato I2C. Su desempeño es mejor al de un Foto-Resistor (LDR), pues no es necesario realizar conversiones de voltaje para obtener datos interpretables.
El BH1750 entrega la intensidad luminosa directamente en unidades Lux (Lx). El lux es la unidad derivada del S.I. de Unidades para la iluminancia o nivel de iluminación. Equivale a un lumen /m². Se usa en la fotometría como medida de la luminancia, tomando en cuenta las diferentes longitudes de onda según la función de luminosidad, un modelo estándar de la sensibilidad a la luz del ojo humano.
| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| BH1750 | N/A | GND | Cable | RPi | 39 | GND |
| BH1750 | N/A | SDA | Cable | RPi | 3 | GPIO2 |
| BH1750 | N/A | SCL | Cable | RPi | 5 | GPIO3 |
| BH1750 | N/A | GND | Cable | RPi | 39 | GND |
| BH1750 | N/A | VCC | Cable | RPi | 1 | 3V3 |
En este enlace verás el código Python comentado para este sensor.
El sensor de presión barométrica BMP280 permite medir la altura respecto al nivel del mar, su funcionamiento está basado en la relación entre presión del aire y la altitud. El BMP280 es la evolución del BMP180, posee alta precisión y un bajo consumo de energía. El BMP280 ofrece un rango de medición de 300 a 1100 hPa (Hecto Pascal). Basado en tecnología BOSCH piezo-resistiva con gran robustez EMC, alta precisión y linealidad, así como con estabilidad a largo plazo. Se ha diseñado para ser conectado directamente a un microcontrolador a través de I2C o SPI. El sensor BMP280 presenta diversas mejoras respecto al sensor BMP180 como: Mejor resolución de presión y temperatura, mejor precisión, mejores filtros digitales y un menor consumo de energía.
Este tipo de sensores pueden ser utilizados para calcular la altitud con gran precisión, por lo que es un sensor muy utilizado en sistemas de Autopiloto para Drones (UAVs). Este sensor puede entregar medidas de altitud con una precisión de hasta 1m.
| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| GY-BME P/280 | N/A | SDA | Cable | RPi | 3 | GPIO2 |
| GY-BME P/280 | N/A | SCL | Cable | RPi | 5 | GPIO3 |
| GY-BME P/280 | N/A | GND | Cable | RPi | 39 | GND |
| GY-BME P/280 | N/A | VIN | Cable | RPi | 1 | 3V3 |
En este enlace verás el código Python comentado para este sensor.
Un transistor BC547 es un transistor negativo-positivo-negativo (NPN) que se utiliza para muchos fines. Junto con otros componentes electrónicos, como resistencias, bobinas y condensadores, puede utilizarse como componente activo de interruptores y amplificadores. Como todos los demás transistores NPN, este tipo tiene un terminal emisor, un terminal base o de control y un terminal colector. En una configuración típica, la corriente que fluye de la base al emisor controla la corriente del colector. Una línea vertical corta, que es la base, puede indicar el esquema del transistor para un transistor NPN, y el emisor, que es una línea diagonal que conecta con la base, es una punta de flecha que apunta lejos de la base.
Para obtener la temperatura de la CPU, usamos una función en Python para que nos informe.
| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| FAN | N/A | 5V | Cable | RPi | 4 | 5V |
| FAN | N/A | GND | Cable | BC547 | 3 | EMITER |
| BC547 | 2 | BASE | Resistencia 100Ω | RPi | 22 | GPIO25 |
| BC547 | 1 | COLLECTOR | Cable | RPi | 14 | GND |
| BH1750 | N/A | VCC | Cable | RPi | 1 | 3V3 |
En este enlace verás el código Python comentado para este sensor.
El MCP3008 es un convertidor de señes analógicas a digitales que combina un alto rendimiento y un bajo consumo. EL diseño de MCP3008 lo hace ideal para aplicaciones de sistemas de control embebidos. La arquitectura de registros de aproximaciones sucesivas (SAR) y una interfaz estandar SPI, le permite al ADC de 10-bits la capacidad de ser utilizado con cualquier microcontrolador. EL MCP3008 tiene un muestreo de 200 muestras por segundo, 8 canales de entrada, bajo consuno, 5nA en modo stanby y 425uA activo. Esta dispoible en encapsulados PDIP-16 y SOIC, Las aplicaciones para el MCP3008 incluyen: adqucisión de datos, intrumentación, data loggers, PCs industriales, control de motores, robotica, automatización industrial, sensores inteligente, intrumentos portables y aplicaciones medicas.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| MCP3008 | 9 | GND | Cable | RPi | 39 | GND |
| MCP3008 | 10 | CS | Cable | RPi | 15 | GPIO22 |
| MCP3008 | 11 | DIN | Cable | RPi | 19 | GPIO10 (MOSI) |
| MCP3008 | 12 | DOUT | Cable | RPi | 21 | GPIO9 (MISO) |
| MCP3008 | 13 | SCLK | Cable | RPi | 23 | GPIO11 (SCLK) |
| MCP3008 | 14 | GND | Cable | RPi | 39 | GND |
| MCP3008 | 15 | VREF | Cable | RPi | 1 | 3V3 |
| MCP3008 | 16 | VDD | Cable | RPi | 1 | 3V3 |
En este enlace verás el código Python comentado para este sensor.
El módulo ML8511 es un sensor de luz ultravioleta (UV), entrega una señal analógica que depende de la cantidad de luz UV que detecta. Es usado en proyectos de monitoreo de condiciones ambientales como el índice UV. El sensor ML8511 detecta luz con una longitud de onda entre 280-390nm, este rango cubre tanto al espectro UV-B como al UV-A. La salida analógica está relacionada linealmente con la intensidad UV (mW/cm2). Esta señal analógica puede ser conectada a un microcontrolador para ser convertido por un ADC y así trabajar con la medición.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| Gyml8511 | N/A | VIN | N/A | N/A | N/A | N/A |
| Gyml8511 | N/A | 3V3 | Cable | RPi | 1 | 3V3 |
| Gyml8511 | N/A | 3V3 | Cable | Gyml8511 | N/A | EN |
| Gyml8511 | N/A | GND | Cable | RPi | 39 | GND |
| Gyml8511 | N/A | OUT | Cable | MCP3008 | 2 | CH1 |
| Gyml8511 | N/A | EN | Cable | MCP3008 | 3 | CH2 |
En este enlace verás el código Python comentado para este sensor.
Este tipo de sensores detectan la presencia de lluvia por la variación de conductividad del sensor al entrar en contacto con el agua. Existen varios modelos de sensores similares, como el FC-37, el YL-83 y el HW-028. Constructivamente son sensores sencillos. Se dispone de dos contactos, unidos a unas pistas conductoras entrelazadas entre sí a una pequeña distancia, sin existir contacto entre ambas. Al depositarse agua sobre la superficie, se pone en contacto eléctrico ambos conductores, lo que puede ser detectado por un sensor. Ambos modelos se envían con una placa de medición estándar con el comparador LM393, que permite obtener la lectura tanto como un valor analógico como de forma digital cuando se supera un cierto umbral, que se regula a través de un potenciómetro ubicado en la propia placa.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| YL-83 | N/A | VCC | Cable | RPi | 1 | 3V3 |
| YL-83 | N/A | GND | Cable | RPi | 39 | GND |
| YL-83 | N/A | D0 | Cable | MCP3008 | 1 | CH0 |
En este enlace verás el código Python comentado para este sensor.
Las pantallas OLED se destacan por su gran contraste, mínimo consumo de energía y buena calidad de imagen. El display Oled 1.3" I2C SH1106 posee una resolución de 128*64 píxeles, permitiendo controlar cada píxel individualmente y mostrar tanto texto como gráficos. Además por ser de tipo OLED no necesita de retroiluminación (Backlight) como los LCD, lo que hace que su consumo de energía sea mucho menor y aumenta su contraste. El display posee interfaz de comunicación de tipo I2C. Diseñado para trabajar a 5V directamente gracias a su regulador de voltaje en placa y puede trabajar con sistemas de 3.3V o 5V sin necesidad de conversores. Debemos tener en cuenta que los pines I2C son diferentes para cada modelo de Arduino, por lo que debemos revisar el Pinout de nuestro Arduino para saber cuales son sus pines I2C, por ejemplo en Arduino Uno son los pines A4(SDA: data) y A5(SCL: clock) Para manejar la pantalla Oled es necesario utilizar un microcontrolador con al menos 1K de RAM, este espacio cumple la función de buffer para el display. El driver de la pantalla es el SH1106 (similar al SD1306), con una librería lista para usarse en Arduino. La librería permite mostrar texto, mapas de bits, píxeles, rectángulos, círculos y líneas. A pesar de usar 1K de RAM, el funcionamiento es muy rápido y el código es fácilmente portable a distintas plataformas de microcontroladores.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| SH1106 | 1 | GND | Cable | RPi | 39 | GND |
| SH1106 | 2 | VDD | Cable | RPi | 1 | 3V3 |
| SH1106 | 3 | SCK | Cable | RPi | 5 | GPIO3 |
| SH1106 | 4 | SDA | Cable | RPi | 5 | GPIO3 |
| Botón | 1 | N/A | Resistencia 10kΩ | RPi | 39 | GND |
| Botón | 1 | N/A | Cable | MCP3008 | 5 | CH4 |
| Botón | 2 | N/A | Cable | RPi | 1 | 3V3 |
En este enlace verás el código Python comentado para este sensor.
El anemómetro o anemógrafo es un aparato meteorológico utilizado para medir la velocidad del viento y así ayudar en la predicción del tiempo. Es también uno de los instrumentos básicos en el vuelo de aeronaves más pesadas que el aire. Falta explicación construcción Casera.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| Motor 3V | N/A | GND | Cable | RPi | 39 | GND |
| Motor 3V | N/A | VCC | Cable | MCP3008 | 4 | CH3 |
El enaméntro lo podemos construir uno mismo aprovechando material que podemos tener por casa, he aquí el video en el que me he basado.
En este enlace verás el código Python comentado para este sensor.
Un voltímetro es un instrumento que sirve para medir la diferencia de potencial entre dos puntos de un circuito eléctrico.
Con este sensor intentaremos medir el estado de carga de la batería, con la idea de conectar todo el sistema a una placa solar. La idea es usar una batería de 12V, como el conversor Analógico Digital (MCP3008) sólo transforma a digital con voltajes menores de 3V, usaremos el método de Divisores de Tensión para reducirlo a como máximo 3,1 Volts, ver esquema después de la tabla de conexiones.
Esta parte es conceptual de momento y la iremos desarrollando a medida que vaya cerrando otros frentes.

| Elemento | Pin | Tipo | Unión | Elemento | Pin | Tipo |
|---|---|---|---|---|---|---|
| Batería + | N/A | 3V | Conexión | Resistencias en serie 1MΩ+100kΩ+22kΩ=1,122MΩ | N/A | N/A |
| Resistencias en serie 1MΩ+100kΩ+22kΩ=1,122MΩ | N/A | N/A | Cable | MCP3008 | 8 | CH7 |
| Resistencias en serie 1MΩ+100kΩ+2kΩ=1,122MΩ | N/A | N/A | Conexión | Resistencia 390kΩ | N/A | N/A |
| Resistencia 390kΩ | N/A | N/A | Cable | Batería - | N/A | GND |
Calculos de Divisores de Tensión
En este enlace verás el código Python comentado para este sensor.