Cómo usar el sensor DHT11

Smelpro > Tutoriales  > Arduino  > Cómo usar el sensor DHT11

Cómo usar el sensor DHT11

En un tutorial pasado vimos como medir la temperatura con el sensor DS18B20. Ahora también mediremos la temperatura y la humedad del ambiente con el sensor DHT11.

Cabe mencionar que existen muchas versiones, entre las más populares están el DHT11 y el DHT22. Este último es más preciso y veloz. Sin embargo, la forma de conectarlos y el código funciona igual en ambos.

Ambos son relativamente asequibles. Aunque si no requieres de mucha precisión o estás iniciando te recomendamos el DHT11.

Después de elegir la versión que usarás debes escoger el tipo de encapsulado. Disponemos de dos clases. En aspectos generales el primero es solo el sensor, con cuatro pines: GND, VCC, Datos y NC (no conectado). Si eliges este modelo necesitarás usar una resistencia pull-up de 5.1K, si sobrepasas los 20 metros de cable el valor de la resistencia aumenta proporcionalmente.

El segundo tipo de encapsulado presenta al sensor soldado en una PCB y solo con tres pines: GND, VCC y Datos. Internamente incluye una resistencia pull-up de 5K.  

Cómo envía los datos

­El DHT11 transmite los datos con el protocolo 1-Wire (un cable) de manera digital, además incluye un sistema de paridad para verificar que los datos no se hayan alterado.

Los primeros bloques de húmedad y temperatura son los enteros, y los segundos de cada uno son los decimales. El último bloque es la parida, ese valor es igual a la suma de los otros bloques.

 

0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101

 

Características técnicas

  • Dispositivo
    • Voltaje: 3.5 ~ 5.5V
    • Consumo: 2,5 mA
    • Período de muestreo: más de dos segundos
  • Temperatura
    • Resolución: 16 bit
    • Rango: a 25ºC ± 2ºC
  • Humedad
    • Resolución: 16 bit
    • Rango: de 20% RH a 90% RH (Relative Humidity)

Para mayor información te dejamos el enlace a las hojas de datos del DHT11 y el DHT22.

 

Conexión

­Mostraremos como conectar ambos tipos de encapsulados.

Para conectar el modelo sin PCB sigue un esquema como el de abajo.

 

Para el modelo con PCB podrías conectarlo directamente al Arduino. No hace falta una resistencia pull-up.

 

Programación

­Líbrerías

Si programas este sensor sin usar librerías será demasiado complejo. Para buscar e instalar la librería que usaremos presiona la combinación de teclas »Ctrl+Mayús+I», o sigue los pasos de la imagen.

Después buscamos «dht sensor library»e instalamos la de Adafruit.

 

Código

El siguiente código lee y muestra los datos de humedad relativa y temperatura en grados Celsius y Fahrenhit en el Monitor Serie.

#include "DHT.h"    //Incluimos la librería

#define DHTPIN 2     // Especificamos que el pin 2 se conectará con el pin de datos del sensor

#define DHTTYPE DHT11     // Informamos que usaremos el DHT11
//#define DHTTYPE DHT22   // Escribe solo esto si usas el DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);               //Configuramos la velocidad del Puerto Serie
  Serial.println("Iniciando...");  //Mensaje que aparecerá en el Monitor Serie
  dht.begin();
}
void loop() {
  delay(2000);  //Esperamos 2 segundos
  float h = dht.readHumidity();        //Leemos la Humedad
  float t = dht.readTemperature();     //Leemos la temperatura en grados Celsius
  float f = dht.readTemperature(true); //Leemos la temperatura en grados Fahrenheit
  
  // Mostramos los datos en el Monitor Serie
  Serial.print("Humedad ");
  Serial.print(h);       //Valor de humedad
  Serial.print("    ");  //Espacio para que sea más legible
  Serial.print("Temperatura: ");
  Serial.print(t);      //Temperatura en grado Celsius
  Serial.print(" °C ");
  Serial.print("  ");   //Espacio para que sea más legible
  Serial.print(f);      //Temperatura en grado Fahrenheit
  Serial.println(" °F");
}

 

En tu Monitor Serie (Ctrl+Mayús+M) deberías ver el valor de la humedad, y el de la temperatura en las unidades Celsius y Fahrenheit, respectivamente.

 

Una de las funciones que le puedes brindar al sensor es usarlo para monitorear una pecera, un almacén u otros ambientes. Es fácil de programar y asequible en sus dos versiones.  

¿Tienes alguna idea para usar este sensor? Dínosla en los comentarios. Comenta si necesitas ayuda o contáctate con nosotros para asesorarte en tu proyecto.

Blog
No Comments

Post a Comment

Comment
Name
Email
Website