DHT22: el sensor de temperatura y humedad de precisión

Sensor DHT22

Ya en un artículo previo te presentamos el DHT11, otro de los sensores de temperatura y humedad que tienes a tu disposición. Pero en este nuevo artículo te contaremos todo lo que necesitas saber sobre el DHT22. Por lo general, a simple vista la única diferencia entre el DHT11 y el DHT22 es que el primero viene en una carcasa azul y el segundo es blanco. De hecho, ambos son hermanos de una misma familia de sensores.

El DHT11 es el hermano pequeño, es decir, tiene algunas carencias o prestaciones de menos con respecto al DHT22, y por tanto un precio superior. El DHT11 se puede usar para proyectos donde no requieras una alta precisión en las mediciones, mientras que si quieres algo más preciso deberías elegir el DHT22. Realmente el 22 tampoco es de alta precisión, pero sí que tiene unas prestaciones más que aceptables para la mayoría de proyectos DIY de makers.

¿Qué es el DHT22?

Módulo DHT22

El DHT22 es un sensor de temperatura y humedad con unas prestaciones que lo acercan mucho a los de alta precisión. Lo puedes encontrar fácilmente en tiendas especializadas o grandes superficies, donde lo puedes comprar por unos cuantos euros. Eso te permite no tener que depender de un sensor de temperatura y otro de humedad por separado, sino tenerlo todo integrado en un mismo dispositivo.

Lo puedes encontrar suelto o en módulos especialmente diseñados para Arduino, es decir, el DHT22 montado sobre una placa PCB ya lista para usar, sin tener que agregar resistencias pull-up, etc. Hasta aquí todo se parece bastante el DHT11. Y también tendrás una alta fiabilidad y estabilidad en las mediciones debido a la señal digital calibrada que usa.

Pinout, características y datasheet

DHT11 pinout

En la imagen anterior puedes ver una comparación del pinout del DHT22 y DHT11, y como puedes apreciar son idénticos en cuanto a patillas. Por eso, su montaje sería exactamente igual, y lo mejor, podrías sustituir en cualquier momento el DHT11 por un DHT22, y viceversa, en tu proyecto sin hacer demasiados cambios.

Recuerda que tienen 3 pines que debes usar: GND, Vcc y Datos. El pin #3 no se usa y en los módulos viene anulado, es decir, solo verás tres pines. Si quieres ver más detalles sobre el producto que has adquirido, puedes buscar los datasheets del modelo y fabricante concreto para obtener toda la información completa. Aunque la mayor parte de valores pueda parecerte igual, podría haber alguna pequeña variación de uno a otro. Sus características técnicas más importantes son:

  • Alimentación de 3,3v a 6v
  • Consumo de corriente de 2,5mA
  • Señal de salida digital
  • Rango de temperatura de -40ºC a 125ºC
  • Precisión para medir temperatura a 25ºC de 0.5ºC de variación
  • La resolución para medir temperatura es de 8-bit, 0,1ºC
  • La humedad puede medir desde 0% RH hasta los 100% RH
  • Con precisión para la humedad del 2-5% RH para temperaturas que se encuentren entre 0-50ºC
  • La resolución es de 0,1% RH, no puede captar variaciones por debajo de esa
  • Frecuencia de muestreo de 2 muestras por segundo: 2Hz
  • Datasheet de Sparkfun

Si has leído nuestro manual sobre el DHT11 sabrás que transmite en digital por su pin Data, por tanto, otra ventaja para estos sensores. No habrá que generar código en Arduino IDE para pasar de analógico a valores comprensibles para el humano, sino que se puede tratar directamente la señal digital para pasarla a grados o porcentaje de humedad relativa.

En parte, por eso también es tan preciso, ya que con la trama de 40-bits que transmite, la precisión es más elevada. Incluso incluye unos bits de paridad para detectar fallos en la señal. Eso con una señal analógica no lo tienes, a parte de que la analógica es muy sensible a las variaciones de voltaje…

Integración con Arduino

DHT22 conectado a placa Arduino UNO

Al igual que con el DHT11, la instalación del DHT22 con Arduino es bastante fácil. Recuerda que si lo usas solo, sin que venga montado en un módulo y el sensor está alejado (o si usas una tensión inferior para alimentarlo), deberás usar una resistencia pull-up que haga un puente entre el pin Vcc y el pin Data. Pero si usas el módulo, te la puedes ahorrar y conectar directamente como aparece en la imagen superior… Además, recuerda que en el módulo el pin NC que no se usa no estará presente, por lo que te será aún más fácil para no confundirte.

Solo debes conectar GND y Vcc a las conexiones adecuadas de tu placa Arduino, es decir, a las marcadas como GND y 5v en este caso. Y para el pin Data, lo puedes conectar a cualquiera de las entradas digitales de Arduino, en nuestro caso lo hemos hecho en la 7. Si usas otra recuerda rectificar el código para que funcione con tu forma de conectar los componentes (parece obvio pero es un error muy común al copiar y pegar los códigos en Arduino IDE).

Código en Arduino IDE

Ahora que ya lo tienes conectado, vamos a ver un ejemplo sencillo de código para Arduino IDE. . Recuerda que tenemos una guía para principiantes que comiencen con Arduino en PDF que puedes descargar gratis desde aquí y te puede ayudar. Además, si has leído nuestro artículo sobre DHT11, recuerda que había una biblioteca para usar los sensores DHTxx, por tanto, la misma que se usaba para el DHT11 se puede usar para el DHT22.

Una vez hayas instalado la biblioteca y esté todo preparado, ahora es cuando debes introducir el código para programar el microcontrolador de Arduino para que funcione tu proyecto. Un ejemplo básico sería:

#include "DHT.h"
 
// Ejemplo sencillo de uso para el DHT22
 
const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Test DHT22");
 
   dht.begin();
}
 
void loop() {
   // Tiempo de espera entre tomas de mediciones de 2 segundos.
   delay(2000);
 
   // Lee temperatura y humedad durante unos 250ms
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" *C ");
}

Espero que nuestras guías sobre los DHTxx te hayan servido de orientación, aunque por lo general los proyectos que se suelen hacer son algo más complejos, pero estos códigos para ver cómo funciona el sensor son bastante orientativos para luego modificar el código y añadir lo que quieras…

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.