G020 Sensor de Temperatura y Humedad DHT11

                                                                                                                  ADM
Descripción
En muchas ocasiones, y especialmente en la industria alimentaria, no basta con medir la temperatura, sino que la humedad relativa, es también un factor importante a tener en cuenta.
Por eso se desarrollaron los sensores de la familia DHT. Nos proporcionan de forma digital la temperatura y la humedad, con diferente precisión según el modelo.

Básicamente hay dos variantes DHT11 y DHT22.

El sensor tiene un encapsulado plástico azúl para el DHT11 y  blanco para el DHT22 con ranuras que permite la circulación del áire al interior de mismo, donde se encuentran los sensores de temperatura y humedad. 

Mediante un único pín brinda los valores  de temperatura en grados centígrados y de humedad relativa en el ambiente. 

El sensor tiene 4 patillas pero la tercera no tiene conexión. Solo tiene uso las 3 restantes.

Es únicamente para uso en interior. El DHT22 es una evolución de DHT11 por lo que ambos son totalmente compatibles y todo lo explicado para uno vale para el otro.

Las características del DHT11 son:

Precio 
Muy Barato

Alimentación
3,3V y 5V

Rango de Temperatura
Va del 0 ºC a 50 ºC con ±  2 ºC

Rango de Humedad
Va del 20% al 80% con un 5% de precisión 

Toma de muestras
1 Muestra por Segundo (no es muy rápido)

Consumo 
Bajo

Unidades de medida 
Solo Grados Celsius o Grados centígrados ºC


Las características del DHT22 son:
Precio
Barato

Alimentación
3,3V y 5V

Rango de Temperatura
Va del -40 ºC a 125 ºC con ±  0,5 ºC

Rango de Humedad
Va del 0% al 100% con un 5% de precisión
 
Toma de muestras
2 Muestra por Segundo 

Consumo
Bajo

Unidades de medida
Solo Grados Celsius o Grados centígrados ºC

En cuanto a la forma de conectarlos y programarlos es la misma para ambos modelos y veremos que hay desarrolladas librerías para Arduino que soportan los dos de una forma sencilla.

Destacar que el chip incorpora electrónica para hacer internamente la conversión de temperatura y humedad y nos da un valor de medida de forma digital, es decir, que no necesitamos un pin analógico como en el caso del TMP36, sino que lo leeremos con un pin digital.

Materiales
Placa de Arduino
1 Resistencia de 330 para el DHT11 o de 4,7K para el DHT22
1 DHT11 o DHT22
Protoboard, cables para conexiones y el cable USB para conectar el arduino al PC que sirve además de alimentación.

Esquema
A la hora de conectar el sensor se le conectará una resistencia pull up en el pin de la señal. Una resistencia de pull up requiere que se conecte el otro extremo al positivo, mientras que una resistencia en pull down requiere que se conecte el otro extremo al negativo.  
Es normal que el fabricante indique la necesidad de uso de algún componenten externo. 


 

















Montaje


Código
En primer lugar, tenenos que descargar e instalar la librería DHT sensor library de Adafruit, Bonezegei_DHT22 y DHT11 de Dhruba Saha, para manejarlos cómodamente, DHT11 o DHT22. DHT sensor library de Adafruit
#include <DHT.h>
#include <DHT_U.h>

int sensor = 2;
int temperatura;
int humedad;

DHT dht(sensor, DHT11);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  temperatura = dht.readTemperature();
  humedad = dht.readHumidity();
  Serial.print("Temperatura: ");
  Serial.print(temperatura);
  Serial.print("ºC, ");
  Serial.print("Humedad: ");
  Serial.print(humedad);
  Serial.println("%");
  delay(1000);
}

Primero importamos las librerías y DHT.h y DHT_U.h
#include <DHT.h>
#include <DHT_U.h>

A continuación declaramos 3 variables, una con el pin donde hemos conectado la patilla de la señal de arduino, otra para guardar la temperatura y otra para guardar la humedad.
int sensor = 2;
int temperatura;
int humedad;

Creamos un objeto tipo DHT llamado dht al que le indicamos el pin de entrada a arduino y el tipo de sensor utilizado entre parentesis
DHT dht(sensor, DHT11);

En el void setup vamos a inicializar las comunicaciones de arduino con el puerto serie
Serial.begin(115200);

y con el sensor
dht.begin();

Finalmente en el loop() asignamos a la variable temperatura, el valor de temperatura que envía el sensor 
temperatura = dht.readTemperature();

y la variable humedad el valor de humedad que envía el sensor
humedad = dht.readHumidity();

Imprimimos en el monitor serie los valores con formato
Serial.print("Temperatura: ");
  Serial.print(temperatura);
  Serial.print("ºC, ");
  Serial.print("Humedad: ");
  Serial.print(humedad);
  Serial.println("%");

y tendremos en el monitor serie la información con el siguiente formato


Y finalmente tenemos una pausa de segundo, donde el DHT11 tomará una muestra por segundo y el DHT22 habrá tomado dos muestras por segundo, en este útimo caso se puede poner 500 ms.
delay(1000);

Para variar los valores de temperatura y humedad podeis usar el aliento, durante unos segundo sobre el sensor y será suficiente para ver los cambios.

No hay comentarios:

Publicar un comentario