El monitor serie imprime nan, ceros o el mismo 0 % de humedad durante una hora… y el LED de encendido del módulo sigue encendido. Con el sensor DHT22 el hardware “parece vivo”, pero el bus de un hilo es quisquilloso: pull-up, tiempos, cable largo y librería equivocada convierten un invernadero casero en una fuente de números inventados. No es un fallo místico del silicio: casi siempre es un detalle de cableado o de intervalo de lectura.
Esta guía cubre qué mide el DHT22 de verdad, diferencia con el DHT11, pinout, cableado a Arduino 5 V y notas para ESP32 a 3,3 V, librerías, errores comunes y un camino de depuración que cambia una variable por vez. Si más adelante quieres una estación con sensores I2C más modernos, mira AHT20 y BMP280. Para publicar datos por red, el marco de placas está en ESP32 vs Arduino.
1. Qué mide el DHT22 (y qué no promete)
El DHT22 (a menudo en módulo como AM2302) entrega dos magnitudes por un único pin de datos:
- Temperatura (aprox. −40 a 80 °C según datasheet de la familia).
- Humedad relativa (rango amplio, resolución y precisión mejores que el DHT11 de kit barato).
No es un patrón de laboratorio con certificado de calibración. Es un sensor útil para logger, invernadero, habitación, nevera de taller y aprendizaje. Espera tendencias coherentes (sube al regar, baja al ventilar), no 0,1 %RH de catálogo farmacéutico.
Idea clave: el DHT22 odia el rocío directo prolongado, los cables largos ruidosos y que lo lean más rápido de lo que el sensor permite (del orden de 2 segundos entre lecturas válidas).
2. DHT22 vs DHT11 (tabla para no comprar dos veces)
| Aspecto | DHT11 | DHT22 / AM2302 |
|---|---|---|
| Precisión / resolución | Peor, pasos gruesos | Mejor para hobby y logger |
| Rango de humedad | Más limitado | Más amplio |
| Precio típico | Más bajo | Algo mayor |
| Interfaz | Single-wire digital | Igual en concepto |
| Tiempo entre lecturas | Lento | Lento (respeta ≥2 s) |
| Uso razonable | LED “hay humedad”, demo | Invernadero, habitación, curso serio |
Si el proyecto es “mostrar algo en OLED y aprender el pin”, ambos enseñan. Si vas a registrar días de datos o controlar un humidificador, el DHT22 suele doler menos. Cuando el proyecto crece a estación con presión, el salto natural es I2C: AHT20 + BMP280 (o un BME280).
3. Pinout típico del módulo
Módulos de tres pines (los más comunes en kit):
| Pin del módulo | A Arduino Uno/Nano 5 V | Notas |
|---|---|---|
| VCC | 5 V (muchos módulos) | Algunos aceptan 3,3–6 V; lee la ficha de tu placa |
| DATA | D2 (ejemplo) | Un solo pin de datos |
| GND | GND | Masa común obligatoria |
Módulos de cuatro pines (sensor desnudo tipo AM2302): VDD, DATA, NC, GND. El NC no se conecta. No copies el orden de un video sin mirar la serigrafía: hay clones con pines en otro sentido.
Pull-up en el bus
El bus necesita resistencia de pull-up entre DATA y VCC (4,7 kΩ a 10 kΩ típico). Muchos módulos ya traen SMD; no dupliques a ciegas, pero un 10 kΩ externo en cables cortos rara vez estorba. Sin pull-up estable, veras lecturas fallidas intermitentes que “a veces funcionan si tocas el cable”.
4. Cableado paso a paso (Arduino 5 V)
- Protoboard limpia; coloca el DHT lejos de la regulación que calienta (LM2596, disipador del L298, MOSFET caliente).
- VCC → 5 V, GND → GND del Arduino.
- DATA → pin digital libre (ej. 2). Evita pines solo de entrada o conflictivos de tu shield.
- Confirma pull-up (onboard o externo).
- Cables cortos al inicio (<20–30 cm). Si necesitas largo, sube calidad de cable, evita bucles junto a motores y prueba otra vez.
ESP32 / 3,3 V
El DHT22 a menudo funciona alimentado a 3,3 V, pero:
- Confirma el módulo (algunos asumen 5 V en el regulador o en el LED).
- El nivel de DATA debe ser compatible con el GPIO a 3,3 V.
- No asumas el mismo pin “D4” del NodeMCU 8266 en un DevKit ESP32: el serigrafía miente entre familias.
Si tu stack es IoT, el tutorial ESP32 en español evita el clásico “en el Uno andaba y aquí da nan”.
5. Librería y sketch mínimo (idea de código)
En el Library Manager de Arduino busca una librería DHT mantenida (la clásica de Adafruit u otras activas con README claro). Patrón mental del sketch:
#define DHTPIN 2y tipo DHT22 (no DHT11).dht.begin()ensetup.- En
loop, espera al menos 2 segundos entre lecturas. - Lee humedad y temperatura; si es NaN (
isnan), imprime error y no uses el valor en un relé o en un promedio. - Opcional: desacople 100 nF cerca de VCC/GND del módulo si la USB es ruidosa.
No copies un ejemplo de DHT11 sin cambiar el tipo: la temporización interna del protocolo difiere y obtienes basura “creíble”.
Pseudoflujo de depuración en Serial:
6. Errores comunes (tabla de síntomas)
| Síntoma | Causa probable | Qué probar primero |
|---|---|---|
| Siempre NaN | Pin mal, sin pull-up, tipo DHT mal | Cambia pin, pull-up 10k, tipo DHT22 |
| 0 % o 99 % pegado | Sensor saturado / condensación / avería | Seca, airea, reemplaza |
| Lecturas a veces bien | Cable largo, ruido, fuente floja | Acorta, desacople, otra USB |
| Funciona en Uno, falla en ESP | Nivel, pin, core | 3,3 V, otro GPIO, delays |
| Cambia cada 100 ms | Intervalo demasiado corto | ≥2 s entre lecturas |
| Temperatura 0 °C fija |
Regla de oro: cambia una cosa por vez. Si mueves pin, librería y cable en el mismo intento, no sabras qué curó el problema.
7. Colocación física en el proyecto
- No lo pegues al regulador step-down ni al disipador del puente H: mediras el calor del módulo, no el ambiente.
- Evita sol directo sobre el plástico del sensor y lluvia sobre el sensor abierto.
- En invernadero, protégelo del riego por aspersión; la humedad de interés es del aire, no del charco en el PCB.
- Deja que el aire circule; una caja sellada sin orificios miente (y condensa).
- Si usas un módulo relé 5 V para humidificador o extractor, separa el cableado de potencia del hilo de datos del DHT.
8. Calibración honesta (sin cámara climática)
No tienes laboratorio metrológico: igual puedes ser serio.
- Compara con un termohigrómetro de confianza en la misma mesa durante 30 minutos en reposo.
- Anota offset promedio (ej. DHT +1,5 °C o −3 %RH).
- Aplica corrección en software solo si el offset es estable día a día.
- No “calibres” con el secador a 5 cm: no es el uso real y saturas el sensor.
- Para humedad, dos sensores distintos raramente coinciden al 0,5 %: busca coherencia de tendencia.
Si el offset cambia cada hora, no es calibración: es cable, alimentación o sensor herido.
9. DHT22 en un mini sistema útil
Arquitectura de aprendizaje sólida:
- Arduino Nano o Uno + DHT22.
- Display OLED SSD1306 para ver sin PC.
- Logger opcional a tarjeta SD o envío por ESP32 si ya cruzaste a IoT.
- Alimentación estable; si hay relé de carga, aísla ruido y picos de corriente.
- Documenta pin, intervalo y offset en un comentario del sketch o en una libreta.
Lista mental de lo que hace falta: sensor, placa, cables, resistencia de pull-up, pantalla y fuente. Sin eso, el “proyecto de humedad” es solo un Serial abierto en el portátil.
Para ideas de progresión con piezas reales, mira proyectos Arduino para principiantes.
10. Cuándo dejar el DHT y subir de nivel
Pasa a AHT20, SHT3x, BME280/BMP280 + humedad dedicada cuando:
- Necesitas bus I2C estable y mejor comportamiento a largo plazo.
- El cable debe ser más largo (con buen diseño de bus o topología adecuada).
- Quieres presión atmosférica en la misma estación.
- Varios sensores en el mismo bus sin un pin DATA por cada uno.
El DHT22 no es basura: es el primer peldaño didáctico. Saber sus límites es parte del oficio, igual que saber cuándo un MOSFET del anuncio no es de nivel lógico.
11. Del Serial al control (sin mentirte)
Cuando las lecturas ya son coherentes, el siguiente error es actuar sobre un solo valor crudo:
- Lee 3–5 muestras válidas (no NaN) y promedia, o usa un filtro simple.
- Define histéresis: no enciendas el humidificador a 55 % y lo apagues a 54 % en bucle.
- Separa el cable del relé del hilo DATA del DHT.
- Loguea timestamp + T + HR aunque sea a SD o a un CSV por Serial: depurar “ayer a las 3 pm” sin datos es adivinar.
- Si publicas por WiFi, valida el sensor offline primero; la red no arregla un pull-up flojo.
Ese orden convierte el DHT22 de demo de Serial en un bloque reutilizable de un invernadero casero.
12. Checklist de cierre de montaje
- Part number / módulo identificado (DHT22 en código, no DHT11).
- Pull-up presente (onboard o 4,7–10 kΩ).
- Intervalo ≥2 s entre lecturas.
-
isnanmanejado; no actuamos sobre basura. - Cables cortos en la primera prueba.
- Sensor lejos de fuentes de calor propias del circuito.
- Comparación gruesa con otro medidor o con sentido común (baño caliente sube HR).
- Anotado el pin y la placa (Uno vs ESP32).
Preguntas frecuentes
¿El DHT22 funciona a 3,3 V con ESP32?
A menudo sí, especialmente módulos pensados para ese rango. Verifica la ficha de tu módulo y el nivel del pin DATA. Si alimentas a 5 V y lees con ESP32, asegúrate de que el nivel sea seguro para el GPIO (el ESP32 no es “5 V tolerant” en la mayoría de pines).
¿Puedo usar un solo pin de datos para dos DHT22?
No de forma trivial en el mismo instante: cada sensor usa el protocolo en su pin (o un esquema más complejo). Lo habitual es un pin por sensor o pasar a sensores I2C multipunto.
¿Por qué el ejemplo de Internet usa pin 2 y el mío no funciona?
El número de pin es un ejemplo. Adáptalo a tu placa y a los pines que no estén ocupados por shield, SPI de la SD o strapping del ESP32.
¿DHT22 o AHT20 para un producto nuevo?
Para producto o estación seria, AHT20 (u otro I2C moderno) suele ser mejor camino. Para curso y kit clásico, el DHT22 sigue siendo didáctico y barato de reemplazar.
¿Necesito capacitor en el sensor?
Un desacople de 100 nF cerca de VCC/GND del módulo ayuda en alimentaciones ruidosas. No sustituye una fuente decente ni un cable corto.
¿Qué librería debo instalar?
Una librería DHT activamente mantenida y compatible con tu core (AVR, ESP). Evita ZIPs abandonados de 2014 sin documentación. Lee el README del tipo de sensor (DHT22 vs 11) antes de copiar el primer ejemplo.
Con el DHT22 bien cableado, leído con paciencia y colocado lejos del calor propio del circuito, dejas de pelear con nan y empiezas a ver el clima del proyecto. Cuando el single-wire se quede corto, el siguiente paso natural es la estación I2C con AHT20 y BMP280.











