DHT22 y DHT11 sensores de temperatura y humedad con Arduino

En este tutorial, se aprenderá el funcionamiento del sensor de temperatura y humedad relativa DHT22, en donde se mostrarán las lecturas en una pantalla LCD 16x2. Este tutorial también aplica para el DHT11.


Especificaciones del sensor DHT22: https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf

Especificaciones del sensor DHT11:
http://www.micropik.com/PDF/dht11.pdf

Materiales:
  • Sensor DHT22 o DHT11
  • Pantalla LCD 16x2 (1602A)
  • Potenciómetro de cualquier valor
  • Resistencia de 220 ohm
  • Protoboard o breadboard
  • Cables
  • Arduino

A pesar de que el funcionamiento y conexión de los sensores DHT11 y DHT22 son iguales, este último tiene mejores especificaciones, ya que es más preciso que su hermano menor como se puede ver a continuación:

DHT11
Característica
DHT22
0 - 50 °C / ± 2°C
Rango de temperatura
-40 - 125 °C / ± 0.5°C
20 - 80% / ± 5%
Rango de humedad
0 - 100% / ± 2-5%
1Hz (una lectura
cada segundo)
Tasa de muestreo
0.5Hz (una lectura
cada dos segundos)
15.5x12x5.5 mm
Tamaño
14x18x5.5 mm
3.0 - 5.5V
Voltaje de operación
3.3 - 6.0V
2.5 mA
Corriente máxima de operación
1.5 mA

Principio de funcionamiento:

Para medir la humedad, estos sensores cuentan con dos electrodos con un sustrato en medio de ellos que retiene la humedad del ambiente. Entonces, cuando la humedad varía, la conductividad del sustrato y resistencia entre los electrodos también varía.

Para mediar la temperatura, estos sensores cuentan con un termistor NTC, que consiste en una resistencia variable la cual cambia su valor conforme varía la temperatura del ambiente. Dicha resistencia disminuye a medida que la temperatura aumenta.



Factor forma de los sensores:

Tanto el DHT11 como el DHT22 se pueden encontrar en dos variantes:
  • El sensor soldado a una placa, el cual tiene 3 pines de conexión, en dicha placa está una resistencia y un condensador de filtrado.
  • El sensor suelto, es decir, no está soldado a nada y tiene 4 pines.

Conexión con el Arduino Mega:



Hay que tener en cuenta que estos sensores envían una señal de tipo digital, por lo que debe conectarse a un pin digital del Arduino para poder leer las mediciones correctamente.

La conexión depende del factor forma del sensor, ya que si este viene soldado a una placa, se puede conectar directamente a la tarjeta Arduino, poniendo el + con 5V, el OUT va a un pin digital y el - va tierra.



Si el sensor viene suelto, es necesario agregar una resistencia de unos 5K - 10K ohms. No importa si el sensor es un DHT11 o un DHT22, la conexión es la misma y queda así:



Con respecto a la conexión, programación y uso de la pantalla LCD, recomiendo ver este tutorial.

Código y programación de los sensores:

Para poder programar los sensores, es necesario tener dos librerías: la librería de los sensores DHT y la librería de sensores unificados de Adafruit. Este par de librerías no vienen incluidas en el IDE de Arduino.

Para descargar una librería, se abre el IDE de Arduino, clic en Programa > Incluir Librería > Gestionar Librerías. Luego de esto se nos abre un recuadro del Gestor de Librerías. Allí se buscan las librerías que se desean instalar.

Para la librería de los sensores DHT: Clic en "Filtre su búsqueda..." y luego se escribe: dht

Aparecerán varios resultados pero se selecciona el que diga "DHT sensor library by Adafruit" y clic en instalar, así:



Para la librería de los sensores unificados de Adafruit: Se hace el mismo procedimiento anterior. Clic en "Filtre su búsqueda..." y luego se escribe: adafruit unified sensor. Aparecerán varios resultados pero se selecciona el que diga "Adafruit Unified Sensor by Adafruit" y clic en instalar, así:



Luego de descargar las librerías, se importan dando clic en Programa > Incluir Librería.

El código del programa para el sensor DHT22 se puede descargar desde aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZU2RWR2oyMUt6SDA

El código del programa para el sensor DHT11 se puede descargar desde aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZNGRPejRubndHTmM



Comentarios

  1. hay alguna forma de hacer ese proyecto portable, que no necesite el pc para nada o que se pueda hacer por medio del teléfono

    ResponderBorrar
  2. Hola, buenas noches, ¿el proyecto se podría realizar en arduino uno?, y de ser así, que pin reemplazaría el "22" del Arduino Mega

    ResponderBorrar
  3. creo que te falta declarar el pin: const int DHTPin = 22;
    y tambien en el void setup agregar dht.begin();

    ResponderBorrar

Publicar un comentario