Tutorial Arduino: Sensor DHT11 con Pantalla LCD I2C y LEDs de Alerta
En este proyecto aprenderemos a medir temperatura y humedad utilizando un sensor DHT11, mostrar los valores en una pantalla LCD 16×2 con interfaz I2C, y encender luces LED que indican si la temperatura supera un umbral establecido.
Este ejercicio es perfecto para quienes quieren iniciar en el uso de sensores ambientales con Arduino.
Materiales necesarios
- Arduino UNO/Nano/Mega (o compatible)
- Sensor DHT11 de temperatura y humedad
- Protoshield para Arduino UNO (con o sin mini protoboard)
- Pantalla LCD 16×2 con módulo I2C
- LED Rojo (indica temperatura baja)
- LED Verde (indica temperatura alta)
- Cables Dupont macho/hembra
- Protoboard
Sensor DHT11

librería para usar con Arduino
Adafruit_Unified_Sensor_library
LCD 16×2

Modulo I2C para el LCD

El módulo I2C es una pequeña placa que se monta en la parte posterior de la pantalla LCD y utiliza el protocolo I2C (Inter-Integrated Circuit) para comunicarse con Arduino.
Su función principal es reducir el número de pines necesarios para controlar la pantalla.
Librería Para Control I2C con Arduino
Pines del Módulo I2C
| Pin I2C | Descripción | Conexión Arduino (UNO) |
|---|---|---|
| GND | Tierra | GND |
| VCC | Alimentación (5V) | 5V |
| SDA | Datos seriales | A4 |
| SCL | Reloj serial | A5 |
Ventaja: gracias al I2C, podemos usar más sensores o dispositivos en el mismo bus sin gastar pines extra.
Uso del Protoshield

El protoshield es una placa que se coloca sobre el Arduino UNO y permite:
- Soldar componentes si se desea un montaje permanente.
- Usar una mini protoboard para realizar pruebas rápidas sin soldadura.
- Organizar el cableado, ya que replica las líneas de pines de Arduino en una superficie más accesible.
Gracias al protoshield, el sensor DHT11, el módulo I2C y los LEDs pueden conectarse de manera más compacta y ordenada, ideal para proyectos de laboratorio o prototipos.
Conexiones del circuito
A continuación, se muestran las conexiones recomendadas:
| Componente | Pin Arduino |
|---|---|
| DHT11 Señal | 11 |
| DHT11 VCC | 3V |
| DHT11 GND | GND |
| LCD I2C SDA | A4 |
| LCD I2C SCL | A5 |
| LED Rojo (-) | 12 |
| LED Verde (-) | 13 |
| LEDs GND (+) | a 3V de la Placa |

Nota: Si tu LCD no funciona en la dirección 0x27, prueba con 0x3F.
Sketch para Arduino IDE
Explicación del código
- Librerías
Wire.h: habilita la comunicación I2C.LiquidCrystal_I2C.h: controla la pantalla mediante el módulo I2C.DHT.h: gestiona las lecturas de temperatura y humedad.
- Configuración de pines
- Se definen los pines del DHT11, los LEDs y el umbral de temperatura (
TEMP_THRESHOLD).
- Se definen los pines del DHT11, los LEDs y el umbral de temperatura (
- Inicialización
- Se inicia la pantalla (
lcd.init()), se enciende su luz de fondo y se prepara el sensor (dht.begin()).
- Se inicia la pantalla (
- Lectura de datos
dht.readTemperature()ydht.readHumidity()obtienen las mediciones.isnan()valida que los datos sean correctos.
- Visualización en la LCD
- Se muestran temperatura y humedad en las dos líneas de la pantalla.
(char)223agrega el símbolo de grados (°).
- Control de LEDs
- Si la temperatura es mayor a 30 °C, el LED rojo se enciende.
- Si es menor o igual, se enciende el LED verde.
- usamos lógica invertida para controlar los LEDs y así poder usarlos con 3V de la Placa y no usar resistores.
