Cómo utilizar el sensor DHT11 para medir la temperatura y humedad con Arduino

Muchos proyectos requieren de medir temperatura y humedad, todo con el fin de crear sistemas de refrigeración y climatización precisos. Te enseñamos como instalar el Sensor DHT11 con arduino.

En este artículo te hablaremos del DHT11, un dos en uno fácil de implementar con cualquier microcontrolador, que, además, posee una señal digital calibrada que lo dota de estabilidad y otras características interesantes.

¿Qué es el sensor DHT11?

Es un dispositivo preciso y silencioso que permite medir la temperatura y humedad mediante el uso de la plataforma Arduino, el cual utiliza un pin digital que se encarga de enviar la información.

Lo puedes comprar en dos formatos diferentes:

De forma individual con cuatro pines

En este caso, tenemos una presentación individual, sin estar insertado, que posee cuatro pines los cuales son para las siguientes conexiones:

DHT11 pines – sensor suelto
  • VCC: Este es para la alimentación.
  • I/O: Transmisión de datos.
  • NC: Sin conexión, el pin está al aire, es decir. No Conecta.
  • GND: Conexión a Tierra.

Insertado en una PCB con 3 pines

En este caso, tenemos una presentación individual, sin estar insertado, que posee cuatro pines los cuales son para las siguientes conexiones:

dht11 en placa o pcb
DHT11 en placa o pcb
  • GND: Conexión con tierra.
  • DATA: El Pin de transmisión de datos.
  • VCC: Su Alimentación.

Características del DHT11

En general, ambos tipos de DHT11 poseen las siguientes características que lo hacen único como aparato:

  • Muy barato.
  • Funciona con 3,3 y/o 5V de alimentación.
  • Entre 0º a 50º con 5º precisión en temperatura.
  • Rango de humedad: de 20% al 80% con 5º precisión.
  • 1 Muestra por segundo.
  • Bajo consumo. ( 2.5 mA)
  • Devuelve la medida en grados centígrados.

Pinout y datasheet del sensor DHT11

La información técnica del DHT11 está en sus datasheets, donde cada fabricante aporta algunos valores que podrían variar en menor medida.

Vale acotar, que los datos se transmiten de forma digital, aunque el sensor sea analógico, posee un sistema que hace la conversión y conecta directamente a una entrada digital de Arduino.

La señal analógica del sensor se acopla al formato digital y es enviada al microcontrolador de Arduino, transmitiendo en una trama de 40-bits correspondientes a los datos sobre humedad y temperatura.

Los primeros dos grupos de bits (16 en total) permiten medir la humedad, es decir, son los más significativos de la trama, mientras que los otros 2 grupos corresponden a la temperatura.

Asimismo, la primera parte siempre será entera y la segunda en decimales, con una paridad para evitar errores, es decir, que permita comprobar que todo está correcto. Por tanto, si la suma da igual a la paridad, la cosa irá bien.

Mientras tanto, cuando ya sabes lo descrito en el punto anterior, debes adentrarte a conocer los pines, un proceso sencillo, en el que juegan un papel fundamental el de alimentación o Vcc, el E/S para transmitir datos, y un GND para la conexión a tierra.

Conexión con Arduino

Una vez familiarizado con el pinout del DHT11 y la placa Arduino, la conexión es muy simple. Si eliges el módulo integrado en un PCB, recuerda que los pines serán tres (Viene sin NC para facilitar las cosas).

esquema arduino y pines sensor DHT11
Esquema arduino

Posteriormente, debes conectar el pin de tierra con alguna de la GND de Arduino, mientras que el de alimentación va a la conexión de 5v, de esta forma, el sensor será alimentado con GND y Vcc.

Para ello, podrás usar cualquier entrada digital para transmitir los datos desde el sensor DHT11 a la placa Arduino. Podrás usarlo una vez creado el código en Arduino IDE, un paso necesario para tales fines.

Asimismo, cuando el sensor está alejado, deberás usar un cable de longitud superior a 20 metros y una resistencia pull-up de 5k, para cables mayores deberá ser proporcionalmente mayor.

Esquema sensor DTH11 con arduino sin PCB
Esquema sensor DHT11 sin PCB

Ten en cuenta que, si usas 3,5v en vez de 5v, entonces el cable no debe ser mayor de 20 cm.

¿Cómo se transmite los datos ?

Vale recordar, que dentro del propio dispositivo se hace la conversión entre analógico y digital, por lo tanto, se el sensor DHT11 trabaja inicialmente con una señal analógica que posteriormente la transforma en digital para que al enviarlo al microcontrolador este, la pueda entender.

En este proceso se cumplen varios pasos o procesos. Te los describiremos a continuación:

Trama datos DHt11

El primer proceso es la trama de datos, esta se divide en 4 grupos.

  1. En este grupo contiene los datos relativas a la humedad.
  2. El segundo es la parte decimal.
  3. Datos de temperatura.
  4. Más datos de temperatura.

En esta etapa los bits de paridad son confirmados, de manera que no haya datos corrompidos. Además de corroborar que la información sea correcta.

Código para tu proyecto con el DHT11

Ahora que tienes el circuito listo (módulo con PCB o sin PCB) e instalada la librería, solo debes crear un nuevo programa.

Un ejemplo para obtener 3 valores del DHT11 sería:

  • Humedad referente: Es la cantidad de agua que se transporta por el aire y determina el desarrollo de las nubes y la precipitación.
  • Grados Temp. ambiente: Temperatura del lugar.
  • Índice de calor: Indica la temperatura sabiendo la humedad relativa y la temperatura.

Otros datos importantes sobre el sensor DHT11

Librerías

Si programas el sensor sin usar librerías puede que sea complejo, por eso, preferimos que instales la librería presionando la combinación de teclas “Ctrl+Mayús+I” y el IDE te debería dejar instalar la librería que necesitas.

En todo caso siempre puedes hacerlo manualmente con la librería de Adafruit.

Código

Permite leer y mostrar en el monitor la humedad relativa y temperatura en grados Celsius y Fahrenheit.

// Incluimos librería
#include <DHT.h>
 
// Definimos el pin digital donde se conecta el sensor
#define DHTPIN 2
// Dependiendo del tipo de sensor
#define DHTTYPE DHT11
 
// Inicializamos el sensor DHT11
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  // Inicializamos comunicación serie
  Serial.begin(9600);
 
  // Comenzamos el sensor DHT
  dht.begin();
 
}
 
void loop() {
    // Esperamos 5 segundos entre medidas
  delay(5000);
 
  // Leemos la humedad relativa
  float h = dht.readHumidity();
  // Leemos la temperatura en grados centígrados (por defecto)
  float t = dht.readTemperature();
  // Leemos la temperatura en grados Fahreheit
  float f = dht.readTemperature(true);
 
  // Comprobamos si ha habido algún error en la lectura
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Error obteniendo los datos del sensor DHT11");
    return;
  }
 
  // Calcular el índice de calor en Fahreheit
  float hif = dht.computeHeatIndex(f, h);
  // Calcular el índice de calor en grados centígrados
  float hic = dht.computeHeatIndex(t, h, false);
 
  Serial.print("Humedad: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Índice de calor: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
 
}

Hoja de datos o datasheet sensor DHT11

Es un documento que permite describir la funcionalidad y características del sensor DHT11 el rango de temperatura, corriente que soporta, y un largo etc, lo podéis ver en el siguiente PDF

Cuanto vale un sensor DHT11

El precio es lo mejor de todo, en el caso del dht11, es muy barato. Podemos encontrarlo 0,70€ en tiendas chinas tipo aliexpress, y su modelo superior el dht22 lo podemos encontrar por 2,40€ que sigue siendo barato.

Si eres de los que tiene prisa y no puede esperar 2 semanas a que llegue el componente, siempre lo puedes pedir en amazon, que aunque sea más caro, te llega en 24h.

Conclusión

El resultado al ejecutar el programa debe ser como lo describe el protocolo, si en el proceso da un mensaje de error, debes revisar las conexiones y verificar que el aparato esté en buenas condiciones.

Sensor BMP180 para Arduino
bmp180 arduino esquema

En la actualidad, existen muchos sensores que son muy costosos y engorrosos de utilizar, a continuación, te indicamos uno de Read more

El sensor de temperatura LM35
Sensor de temperatura LM35

El sensor de temperatura LM35 es uno más de la multitud de sensores que podemos usar en arduino. Temperatura, humo, Read more

Wifi ESP8266 usando Arduino
Configurar wifi esp8266 arduino

El chip de Wifi ESP8266 es un aparato de microcontrolador que es entregado por la empresa Espressif que puede ser Read more

El Servomotor
Servomotor

Hoy día en cualquier tipo de proyecto robótico o incluso en muchísimos proyectos de electrónica donde se necesita una gran Read more

Resumen
Sensor DHT11
Nombre del artículo
Sensor DHT11
Descripción
Aprende de una forma muy fácil como instalar un sensor DHT11 para medir la humedad y la temperatura con Arduino. VER ESQUEMA
Autor
Publicador
Roobotica.com
Logo

Deja un comentario