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
Este comentario ha sido eliminado por el autor.
ResponderBorrar