Descripción
El DHT22 es un sensor que permite mediciones de temperatura y humedad relativa (RH). El sensor posee una interfaz serial propietaria, que solo requiere de un pin para comunicarse con un microcontrolador. Este sensor, aunque es algo lento en cuanto a velocidad de lectura, es ideal cuando el costo es una preocupación, resulta entonces ideal para las aplicaciones escolares y de hobby.
El sensor DHT22 utiliza el mismo protocolo de comunicaciones que el DHT11, por lo que el software puede hacerse compatible con este sensor de forma sencilla.
Características del sensor DHT22:
- Muy bajo costo.
- Compatible con sistemas electrónicos operando a 3 y 5 volts.
- Corriente máxima de 2.5 mA cuando se realiza la conversión.
- 0 – 100 % Humedad relativa, precisión del 2-5%.
- -40 a 80 °C de temperatura, precisión ±5°C.
- Frecuencia de muestreo: No más de 0.5 Hz (una vez cada 2 segundos).
- 4 pines de conexión espacio de 0.1 pulgadas.
- No requiere componentes activos externos.
Protocolo de comunicación del DHT22:
El protocolo de comunicación del sensor DHT22 es un protocolo propietario similar al conocido 1-wire de Dallas semiconductor aunque en el caso del DHT22 cada sensor tiene que disponer de su propio pin de datos no pudiendo compartir el mismo bus más de un sensor.
El microcontrolador empieza la comunicación configurando el pin de datoscomo salida y poniendo el nivel en alto (Vcc), después envia la señal de Start estableciendo el nivel bajo durante al menos 18ms y nuevamente a nivel alto entre 20us-40us. Seguidamente se pone el pin como entrada y esperamos la respuesta del sensor que establecerá un nivel bajo durante 80us y un nivel alto durante otros 80us. Ahora el sensor ya está preparado para enviar la información de humedad y temperatura. El sensor enviará 5 bytes de información (40 bits) seguidos. Una vez termina la transmisión de los 40 bits el sensor pone el bus a nivel bajo durante 50us y luego a nivel alto para liberarlo y entrar en modo de bajo consumo hasta que en el microcontrolador envíe de nuevo la señal de Start.
La información de temperatura y humedad está estructurada de la siguiente manera en los 40 bits:
- Byte 1: Parte entera de humedad relativa
- Byte 2: Parte decimal de la humedad relativa
- Byte 3: Parte entera de la temperatura
- Byte 4: Parte decimal de la temperatura
- Byte 5: Byte de paridad o checksum
El
checksum se utiliza para comprobar que los bits recibidos no contienen
errores de transmisión. Se calcula sumando los 4 bytes de humedad y
temperatura y el resultado de esta suma tiene que ser igual al byte de
checksum para que la transmisión de datos sea correcta.
El
sensor puede medir temperaturas negativas. Para expresar una
temperatura negativa utiliza el bit más significativo de la parte entera
enviando un ‘1’ y envía un ‘0’ si quiere expresar números positivos.
El protocolo para enviar los bits por parte del sensor es la siguiente:
- Formato Bit ‘0’: 50us en nivel bajo y 26us en nivel alto
- Formato Bit ‘1’: 50us en nivel bajo y 70us en nivel alto
La secuencia completa de la transmisión sería la siguiente:

Flowchart para la lectura del sensor DHT22:

