Funcionamiento interno, alcances reales, limitaciones y aplicaciones prácticas
1. ¿Qué es el DHT11?
El DHT11 es un sensor digital de bajo costo que permite medir dos variables ambientales:
- Temperatura (°C)
- Humedad relativa (%)
A diferencia de sensores analógicos, el DHT11 utiliza un protocolo digital propietario de un solo hilo (single-wire) para enviar los datos hacia el Arduino, sin necesidad de I2C ni UART.
Dependiendo del módulo, normalmente trae:
- 3 pines: VCC, GND, DATA
- O 4 pines: VCC, GND, DATA, NC
Además, incluye una resistencia pull-up incorporada en la versión de módulo para simplificar la conexión.
2. ¿Cómo funciona internamente?
El DHT11 se compone de dos bloques principales:
2.1 Sensor de humedad capacitivo
Utiliza un polímero sensible a la humedad cuya capacitancia cambia con la cantidad de vapor de agua presente en el aire.
- A mayor humedad → la capacitancia aumenta.
- A menor humedad → la capacitancia disminuye.
El ASIC interno convierte este cambio en una señal digital calibrada.
2.2 Sensor de temperatura basado en un termistor NTC
El termistor interno varía su resistencia según la temperatura ambiente.
El circuito integrado:
- Lee la resistencia
- La convierte a un valor digital
- Aplica una curva pre-calibrada
2.3 Protocolo de comunicación “single-wire”
La comunicación se basa en tiempos precisos de nivel alto y bajo.
Flujo simplificado:
- Arduino envía un pulso de arranque.
- El DHT11 responde con un pulso de inicio.
- Envía 40 bits:
- Humedad alta (8 bits)
- Humedad baja (8 bits)
- Temperatura alta (8 bits)
- Temperatura baja (8 bits)
- Checksum (8 bits)
La duración del pulso determina si el bit es 0 o 1.
Por esta razón, el código requiere una librería que respete los tiempos (como DHT.h).
3. Parámetros clave, alcances y precisión
| Parámetro | DHT11 |
|---|---|
| Rango de humedad | 20–90 %RH |
| Precisión humedad | ±5 %RH |
| Rango de temperatura | 0–50 °C |
| Precisión temperatura | ±2 °C |
| Frecuencia de lectura | 1 Hz (una lectura por segundo) |
| Protocolo | Digital (single-wire) |
| Alimentación | 3.3-5.5 V |
Alcances reales
- Adecuado para lectura ambiental básica.
- Muy útil en proyectos educativos.
- Funciona bien en interiores.
Limitaciones importantes
- Lento: solo permite 1 lectura por segundo.
- Baja precisión: mejor como sensor “referencial” que como instrumento.
- Sensibilidad limitada: no detecta niveles bajos de humedad (<20%).
- No es apto para aplicaciones críticas (almacenamiento farmacéutico, calibración, etc.).
- Dependiente de la estabilidad térmica: requiere unos segundos para adaptarse a cambios bruscos.
Si se necesita mayor confiabilidad, el reemplazo natural es el DHT22 (AM2302) o sensores digitales más precisos como el SHT31 o BME280.
4. Conexión típica con Arduino
Pines (módulo de 3 pines)
| Pin | Función |
|---|---|
| VCC | 5V o 3.3V |
| GND | Tierra |
| DATA | Señal digital hacia Arduino |
El módulo ya incluye la resistencia pull-up en DATA, así que solo es conectar y trabajar.
5. Ejemplos reales de aplicación con Arduino
1. Estación ambiental casera
Lectura continua de temperatura y humedad, visualizada en:
- Monitor serial
- LCD 16×2
- OLED
- Enviada por ESP32/Arduino R4 WiFi a un dashboard online
Aplicación ideal para introducir IoT.
2. Control de ventilación para un invernadero pequeño
El Arduino controla:
- Ventilador cuando sube la temperatura
- Humidificador o aspersor cuando la humedad baja
La lógica es simple pero educativa, combinando sensores y actuadores reales.
3. Registro de clima interior en una habitación o laboratorio
El DHT11 puede registrar durante horas datos ambientales para un análisis posterior:
- Guardar en SD
- Graficar en Python
- Enviar a un servidor MQTT o a una app local
Perfecto para introducir conceptos de data logging.
6. Fuentes de consulta recomendadas
- Datasheet oficial del DHT11
Información de precisión, curvas, tiempos, arquitectura interna. - Repositorio de la librería DHT de Adafruit
Código abierto, ejemplos y soporte para múltiples placas. - Arduino Reference — Digital communication
Explica cómo funcionan los tiempos y la lectura de señales digitales.
7. Prompt para que el lector genere su propio código con IA
Prompt recomendado
Quiero que generes un código para Arduino que lea un sensor DHT11 conectado al pin digital que yo elija. El programa debe mostrar la temperatura y humedad en el monitor serial, incluir manejo de errores cuando el sensor no responda, y agregar consejos de calibración y buenas prácticas para usarlo en interiores. Explícale cada parte del código a un principiante y sugiere cómo mejorar el proyecto con un display o con envío de datos por WiFi.
