El sensor DHT11 es el punto de partida favorito para cualquier proyecto de monitoreo ambiental con Arduino. En este tutorial aprenderás a conectarlo, instalar la librería y obtener lecturas reales de temperatura y humedad en minutos.
¿Qué es el DHT11?
El DHT11 es un sensor digital de temperatura y humedad relativa que se comunica con el microcontrolador a través de un único pin de datos (protocolo propietario de un hilo). Sus características clave:
- Rango de temperatura: 0 °C a 50 °C (±2 °C de precisión)
- Rango de humedad: 20% a 80% HR (±5% de precisión)
- Voltaje de operación: 3.3V a 5V
- Frecuencia de muestreo: máximo 1 lectura por segundo
Materiales Necesarios
- Arduino Uno (o Nano, Mega)
- Sensor DHT11 (módulo o componente)
- Resistencia de 10 kΩ (si usas el sensor sin módulo)
- Protoboard y cables
Diagrama de Conexión
Si tienes el módulo DHT11 (3 pines: VCC, DATA, GND):
- VCC → 5V del Arduino
- DATA → Pin digital 2 del Arduino
- GND → GND del Arduino
Si tienes el sensor sin módulo (4 pines), conecta una resistencia de 10 kΩ entre VCC y DATA.
Instalar la Librería DHT
En el IDE de Arduino: Herramientas → Administrar Librerías. Busca "DHT sensor library" de Adafruit e instálala. También instala "Adafruit Unified Sensor" cuando te lo pida.
Código Arduino Completo
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("DHT11 listo");
}
void loop() {
delay(2000); // DHT11 necesita al menos 1s entre lecturas
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
if (isnan(humedad) || isnan(temperatura)) {
Serial.println("Error al leer el DHT11");
return;
}
Serial.print("Humedad: ");
Serial.print(humedad);
Serial.print("% | Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
}
Errores Comunes y Soluciones
| Error | Causa | Solución |
|---|---|---|
| "Error al leer" | Delay menor a 1s | Usar delay(2000) |
| Lectura -273 °C | Cable mal conectado | Verificar pin DATA |
| Sin datos en Serial | Baud rate incorrecto | Usar 9600 en monitor |
Proyecto: Monitor de Temperatura con Alerta
Agrega un buzzer en el pin 8 para que suene cuando la temperatura supere 30 °C: if (temperatura > 30) digitalWrite(8, HIGH);. Ideal para monitorear invernaderos, servidores o habitaciones.
Consigue tu sensor DHT11 en Especificar.cl con stock en Valparaíso y envío a todo Chile.