DHT11, Cómo configurar este sensor de humedad en un Arduino

¿Qué es un sensor DHT11?

La humedad es la medida del vapor de agua presente en el aire. El nivel de humedad en el aire afecta a varios procesos físicos, químicos y biológicos. En las aplicaciones industriales, la humedad puede afectar al coste empresarial de los productos, la salud y la seguridad de los empleados. Por lo tanto, en las industrias de semiconductores y en las industrias de sistemas de control la medición de la humedad es muy importante. La medición de la humedad determina la cantidad de humedad presente en el gas que puede ser una mezcla de vapor de agua, nitrógeno, argón o gas puro, etc. Los sensores de humedad son de dos tipos basados en sus unidades de medición. Son un sensor de humedad relativa y un sensor de humedad absoluta. El DHT11 es un sensor digital de temperatura y humedad.sensor DHT11 - DHT11, Cómo configurar este sensor de humedad en un Arduino

El DHT11 es un sensor digital de bajo costo para detectar la temperatura y la humedad. Este sensor puede ser fácilmente conectado a cualquier microcontrolador como el Arduino, el Pi de Frambuesa, etc… para medir la humedad y la temperatura instantáneamente.


El sensor de humedad y temperatura DHT11 está disponible como sensor y como módulo. La diferencia entre este sensor y el módulo es la resistencia de pull-up y un LED de encendido. El DHT11 es un sensor de humedad relativa. Para medir el aire circundante, este sensor utiliza un termistor y un sensor capacitivo de humedad.

Sus características:

  • El DHT11 es un sensor incorporado de bajo costo, que se utiliza para medir la temperatura (en un rango de 0 a 50 grados centígrados con una precisión de +-2 C) y la humedad (en un rango de 20% a 80% con una precisión de +-5%).
  • Consiste en un sensor capacitivo de humedad que mide la humedad del aire.
  • Para la medición de la temperatura, tiene un termistor incorporado, que es un dispositivo de medición de temperatura NTC resistivo y húmedo.
  • Funciona con sistemas de microcontroladores de 3,3V y 5V.
  • Este sensor tiene una excelente calidad, un rápido tiempo de respuesta y capacidad antiinterferencia.
  • En el DHT11, los coeficientes de calibración ya están almacenados en la memoria del programa OTP, sólo tenemos que llamar a estos coeficientes de calibración mientras los sensores internos detectan la señal en el proceso.
  • Utiliza baja potencia en la transmisión de señales simples hasta 20 metros.
  • Viene en un solo paquete que comprende 4 pines con 0.1″ de espacio entre ellos y se puede proporcionar un paquete especial según la demanda del usuario.
  • Es bastante preciso y exacto en sus lecturas en comparación con otros sensores caros, como el SHT10, DS18B20, etc.

Aquí están los rangos y la precisión del DHT11:

  • Rango de humedad: 20-90% de humedad relativa
  • Precisión de la humedad: ± 5% RH
  • Rango de temperatura: 0-50°C
  • Precisión de la temperatura: ± 2% ° C
  • Tensión de funcionamiento: 3 V a 5,5 V

¿Qué es la humedad relativa?

El DHT11 mide la humedad relativa. La humedad relativa es la cantidad de vapor de agua en el aire vs. el punto de saturación del vapor de agua en el aire. En el punto de saturación, el vapor de agua comienza a condensarse y a acumularse en las superficies formando rocío.

El punto de saturación cambia con la temperatura del aire. El aire frío puede retener menos vapor de agua antes de saturarse y el aire caliente puede retener más vapor de agua antes de saturarse.

La fórmula para calcular la humedad relativa es:

formula humedad relativa - DHT11, Cómo configurar este sensor de humedad en un Arduino

La humedad relativa se expresa como un porcentaje. Al 100% de HR, se produce condensación, y al 0% de HR, el aire está completamente seco.

Cómo funciona el sensor DHT11

El sensor DHT11 consiste en un elemento sensor de humedad capacitivo y un termistor para detectar la temperatura. El condensador sensor de humedad tiene dos electrodos con un sustrato que retiene la humedad como un dieléctrico entre ellos. El cambio en el valor de la capacitancia se produce con el cambio en los niveles de humedad. El IC mide, procesa estos valores de resistencia cambiados y los cambia en forma digital.

Para medir la temperatura, este sensor utiliza un termistor de coeficiente de temperatura negativa, que provoca una disminución de su valor de resistencia con el aumento de la temperatura. Para obtener un mayor valor de resistencia incluso para el más pequeño cambio de temperatura, este sensor suele estar compuesto por cerámicas semiconductoras o polímeros.

El rango de temperatura del DHT11 es de 0 a 50 grados centígrados con una precisión de 2 grados. El rango de humedad de este sensor es de 20 a 80% con una precisión del 5%. La tasa de muestreo de este sensor es de 1Hz, es decir, da una lectura por cada segundo. El DHT11 es de tamaño pequeño con un voltaje de operación de 3 a 5 voltios. La máxima corriente utilizada en la medición es de 2,5mA.

El sensor DHT11 tiene cuatro clavijas: VCC, GND, Clavija de datos y una clavija no conectada. Una resistencia de 5k a 10k ohmios se proporciona para la comunicación entre el sensor y el microcontrolador.

Pinout Sensor DHT11

pinout DHT11 - DHT11, Cómo configurar este sensor de humedad en un Arduino

No:Nombre del Pin
Descripción
Para el sensor DHT11
1VccFuente de alimentación de 3.5V a 5.5V
2DatosProduce tanto la temperatura como la humedad a través de los datos en serie
3NCNo hay conexión y por lo tanto no se utiliza
4TierraConectado a la tierra del circuito
Para el módulo del sensor DHT11
1VccFuente de alimentación de 3.5V a 5.5V
2DatosProduce tanto la temperatura como la humedad a través de los datos en serie
3TierraConectado a la tierra del circuito

Aplicaciones

Este sensor se utiliza en diversas aplicaciones, como la medición de los valores de humedad y temperatura en sistemas de calefacción, ventilación y aire acondicionado. Las estaciones meteorológicas también utilizan estos sensores para predecir las condiciones meteorológicas. El sensor de humedad se utiliza como medida preventiva en los hogares donde las personas se ven afectadas por la humedad. Las oficinas, los coches, los museos, los invernaderos y las industrias utilizan este sensor para medir los valores de humedad y como medida de seguridad.

Su tamaño compacto y la velocidad de muestreo hicieron que este sensor fuera popular entre los aficionados. Algunos de los sensores que se pueden usar como alternativa al sensor DHT11 son DHT22, AM2302, SHT71.

Midiendo la temperatura y la humedad con Arduino y el sensor DHT11

Para realizar este proyecto necesitaremos los siguientes componentes:

  • El sensor DHT11
  • Arduino (cualquier modelo está bien, en esta guía usaremos Arduino Uno)
  • Resistencia de 4,7 kΏ
  • Cables de conexión
  • La biblioteca de DHT11 se puede descargar desde este enlace

Conexiones

La conexión a Arduino es muy simple: tenemos que conectar el pin de la fuente de alimentación al Arduino +5V, el pin de tierra al GND y el pin de datos a cualquier puerto digital, en esta guía usaré el número 4. Ahora se preguntarán para qué sirve la resistencia, es decir, una resistencia pull-up (aquí la página de wikipedia). Abajo hay una imagen de cómo se deben hacer los enlaces.

conexion DHT11 Arduino Uno - DHT11, Cómo configurar este sensor de humedad en un Arduino

En general, esta es la interfaz con los microprocesadores:

diagrama conexion DHT11 Arduino Uno - DHT11, Cómo configurar este sensor de humedad en un Arduino

Código

Ahora vamos a ver el programa que hay que subir a Arduino.

ADVERTENCIA: recuerde importar la biblioteca que pusimos en el enlace de arriba.

[code lang=”c”]
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup(){
Serial.begin(9600);
Serial.println("DHT TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop(){
int chk;
Serial.print("DHT11, \t");
chk = DHT.read(DHT11_PIN);
switch (chk){
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}

Serial.print(DHT.humidity,1);
Serial.print(",\t");
Serial.println(DHT.temperature,1);

delay(1000);
}
[/code]

Repasemos el código ahora.

  • Línea 1: Incluimos la biblioteca previamente descargada. Incluir una biblioteca es básicamente hacer una copia y pegar el código escrito en esa biblioteca en nuestra biblioteca.
  • Línea 3: Llamemos al PIN 4 con otro nombre. Esto es útil durante la programación tanto para evitar errores como para facilitar la escritura del programa.
  • Filas 6-11: En este rango de filas vamos a establecer el canal de comunicación en serie y escribimos alguna información que se mostrará en el monitor de serie.
  • Línea 17: Asignamos a la variable “chk” la salida de la función que devuelve el estado del sensor.
  • Filas 18-31: Si la función mencionada anteriormente nos da algún error, imprima la descripción relativa.
  • Línea 33: Lee el valor de humedad del sensor e imprime el mismo.
  • Línea 35: Lee el valor de la temperatura del sensor y lo imprime.
  • Línea 37: Espera un segundo antes de empezar el ciclo de nuevo.

Pin It on Pinterest

Shares