
Actualizado el 26 de agosto de 2026 · Comparativa, resistencia pull-up, GPIO seguros y configuración ESPHome revisados.
Los DHT11 y DHT22 son sensores digitales económicos de temperatura y humedad. Resultan útiles para aprender ESPHome o realizar una medición ambiental sencilla, pero sus prestaciones son diferentes y ambos necesitan un cableado correcto. En esta guía utilizaremos un GPIO que no intervenga en el arranque y una resistencia pull-up externa cuando el módulo no la incluya.
DHT11 o DHT22: diferencias importantes
| Característica | DHT11 | DHT22 / AM2302 |
|---|---|---|
| Temperatura habitual | 0 a 50 °C | -40 a 80 °C |
| Precisión típica de temperatura | ±2 °C | ±0,5 °C |
| Humedad habitual | 20 a 80 % HR | 0 a 100 % HR |
| Precisión típica de humedad | ±5 % HR | ±2 a 5 % HR según rango y versión |
| Velocidad máxima de lectura | Aproximadamente 1 lectura/s | Aproximadamente 1 lectura cada 2 s |
| Elección | Pruebas básicas y bajo coste | Mayor rango y mejor precisión |
Las cifras pueden variar entre fabricantes y clones. Para climatización doméstica, un DHT22 suele ser preferible; para medidas más estables y proyectos nuevos, sensores I²C como SHT3x o BME280 normalmente ofrecen mejor repetibilidad. El HTU21D con ESPHome es otra alternativa digital.
Sensor suelto o módulo
El sensor de cuatro pines suele necesitar una resistencia pull-up entre DATA y 3,3 V. ESPHome recomienda aproximadamente 4,7 kΩ, y normalmente funciona dentro de un rango de 1 a 10 kΩ. Muchos módulos de tres pines ya incorporan esa resistencia en la placa; compruébalo antes de añadir otra.
- VCC: 3,3 V en este montaje.
- DATA: GPIO4.
- NC: sin conexión en el encapsulado de cuatro pines.
- GND: masa común.
- Pull-up: 4,7 kΩ entre DATA y 3,3 V si no está incluida.
Mira siempre el sensor de frente y consulta el pinout de tu unidad. Algunos módulos reorganizan el conector. Invertir VCC y GND puede destruirlo.
Por qué sustituimos GPIO0
GPIO0 es un pin de arranque del ESP8266. Si un sensor, una resistencia o un fallo de cableado lo mantiene bajo al encender, el microcontrolador entra en modo de programación en lugar de iniciar ESPHome. GPIO2 y GPIO15 también participan en el arranque.
Para una Wemos D1 mini o NodeMCU utilizaremos GPIO4, etiquetado D2. GPIO5 (D1) también suele ser una buena opción. En ESP32 puedes utilizar GPIO27 u otro pin libre adecuado para tu modelo. No confundas “D2” con GPIO2: en una Wemos D1 mini, D2 corresponde a GPIO4.
Configuración ESPHome para DHT22
sensor:
- platform: dht
pin: GPIO4
model: DHT22
temperature:
name: "Temperatura habitación"
accuracy_decimals: 1
humidity:
name: "Humedad habitación"
accuracy_decimals: 1
update_interval: 30sIndicar model: DHT22 evita depender de la detección automática. Un intervalo de 30 o 60 segundos es suficiente para una habitación y reduce lecturas fallidas. El sensor no responde mejor por consultarlo continuamente.
Configuración ESPHome para DHT11
sensor:
- platform: dht
pin: GPIO4
model: DHT11
temperature:
name: "Temperatura DHT11"
humidity:
name: "Humedad DHT11"
update_interval: 30sSi el encapsulado lleva AM2302, normalmente corresponde a la familia DHT22. ESPHome también incluye modelos específicos para variantes que no cumplen exactamente el protocolo esperado. Revisa los registros antes de cambiar opciones al azar.
Montaje y ubicación
- Colócalo donde circule el aire, sin pegarlo al regulador de la placa.
- Evita sol directo, radiadores, corrientes de una ventana y condensación.
- No lo encierres en una caja sin ventilación.
- Usa cable corto durante la puesta en marcha.
- Para varios metros, mejora cableado y desacoplo o utiliza un sensor/bus más apropiado.
El calor generado por un ESP8266 o por una fuente dentro de la misma caja puede elevar la lectura. Separa físicamente el DHT y deja ranuras inferiores y superiores para que el aire circule.
Lecturas erráticas o valores NaN
| Problema | Revisión recomendada |
|---|---|
| No aparece ninguna lectura | Pinout, masa común, modelo y GPIO real |
| Errores de checksum | Pull-up de 4,7 kΩ, cable más corto y alimentación estable |
| ESP8266 no arranca | Dejar GPIO0/GPIO2/GPIO15 y utilizar GPIO4 o GPIO5 |
| Temperatura demasiado alta | Alejar el sensor de la placa y ventilar la caja |
| Humedad fija o poco creíble | Comparar con otro instrumento y sustituir el sensor si está contaminado |
Calibración en ESPHome
No corrijas una lectura basándote en una sola comparación. Coloca ambos instrumentos juntos, espera a que se estabilicen y compara varios puntos. Si el error es aproximadamente constante, puedes aplicar offset:
temperature:
name: "Temperatura habitación"
filters:
- offset: -0.6Un ajuste no arregla histéresis, condensación ni un sensor defectuoso. Para decisiones importantes usa un instrumento calibrado y documenta la corrección aplicada.
Fuentes comprobadas
- ESPHome: DHT Temperature+Humidity Sensor.
- ESPHome: ESP8266 y pines de arranque.
- Aosong AM2302/DHT22: información del fabricante.
Continúa leyendo
Siguiente guía relacionada · 9 min de lectura
BME280: guía completa con Arduino, ESPHome y Home Assistant
Actualizado el 01 de agosto de 2026 El BME280 es un sensor ambiental compacto de Bosch que mide temperatura, humedad relativa y presión atmosférica.…
Continuar con este artículo

