miércoles, 6 de diciembre de 2017

Módulos DHT11 y DHT22 Humedad Temperatura Arduino

  
 



Los DHT 11 y 22 son ambos módulos sensores de temperatura y humedad cuya diferencia radica en el rango y precisión de las mediciones de cada uno.  Su salida posee un integrado encargado de que sea entregada en forma completamente digital  y funciona por medio de comunicación bit a bit por un único pin. Algunos encapsulados vienen con 4 pines, en estos simplemente se deja un pin desconectado, pues se usan dos para alimentación y, como ya se dijo, sólo uno para el envío de los datos. Su tensión de funcionamiento va de los 3.3V a los 5V y su consumo es bastante reducido, con sólo 1 mA como máximo.

En el caso del DHT11 el rango de medida de temperatura va desde 0°C a los 50°C, con una precisión del 5%; mientras tanto el rango de medida de humedad va del 20% al 80% con una precisión igualmente del 5% y su rata de muestreo es de sólo una muestra por segundo. Por otro lado, el DHT22 tiene un rango de medida de temperatura de los -40°C a los 125°C, con una precisión de 0.5°C; un rango de medida de humedad de 0% a 100% con un 5% de precisión y una rata de medida de 2 muestras por segundo.

Con el fin de obtener las medidas de estos sensores podríamos  escribir un programa para decodificar la información bit a bit del MSB al LSB para la humedad y la temperatura. Sin embargo esto no tendría mucho sentido dado que hoy día existen librerías para Arduino que hacen este trabajo por nosotros arrojándonos directamente las medidas. Presentaremos entonces un programa que obtenga estos datos directamente del sensor usando la librería “DHT.h”; a continuación facilitamos el link con la librería.


Esquema de conexión con Arduino UNO:




Código Arduino

#include "DHT.h" //cargamos la librería DHT
#define DHTPIN A0 //Seleccionamos el pin en el que se
                  //conectará el pin de datos del sensor
#define DHTTYPE DHT22 // Se selecciona el módulo
                      // sea DHT11 o DHT22

DHT dht(DHTPIN, DHTTYPE); // se ingresan los datos a la función que
                          // obtiene las medidas

void setup() {
  Serial.begin(9600);
  dht.begin(); //Se inicializa el sensor
}

void loop() {

  float h = dht.readHumidity(); //Se lee la humedad
  float t = dht.readTemperature(); //Se lee la temperatura

  //Se imprimen las variables en le monitor serial
  Serial.println("Humedad: ");
  Serial.println(h);
  Serial.println("Temperatura: ");
  Serial.println(t);
  delay(1000); //Se espera 1 segundos para volver a leer

}

FIN DEL POST

1 comentario:

Display matricial 8x8 con Arduino SPI y MAX7219

La matrices led de 8x8 son elementos extremadamente útiles para desplegar mensajes que puedan ser visibles desde la distancia. ...