1. El Octavo Bit
  2. / Arduino
  3. / Proyectos para Arduino
  4. / Módulo DHT11, medir la temperatura y la humedad con Arduino.

Módulo DHT11, medir la temperatura y la humedad con Arduino.

| Actualizado:
Comentarios: 1

Módulo DHT11, medir la temperatura y la humedad con Arduino.
Medir la temperatura y humedad con Arduino

En este artículo veremos el funcionamiento del módulo DHT11 para medir la temperatura y la humedad, realizaremos la conexión con la placa Arduino y mostraremos las medidas obtenidas a través de una pantalla LCD.

El sensor DHT11 nos permite medir la temperatura y la humedad con Arduino, este módulo utiliza un pin digital para enviar la información. Se puede encontrar de forma individual o insertado en una PCB. La versión en PCB consta de una resistencia de 5 kΩ y un led que nos avisa de su funcionamiento. La versión en PCB tiene 3 pines, mientras que el módulo suelto tiene 4 pines.

Módulo DHT11, mide la temperatura y la humedad
Sensor DHT11. Segun el fabricante el orden de los pines puede cambiar.

Los pines de la versión con PCB son:

  • GND: conexión de tierra.
  • DATA: para transmisión de datos.
  • VCC: para la alimentación.

Conectando el sensor DHT11 a la placa Arduino

Material necesario:

  • Placa Arduino o similar.
  • Módulo DHT11 integrado dentro de un PCB.
  • Cables.

Este módulo se caracteriza por incluir una resistencia integrada, en el esquema de montaje hay que tener en cuenta que el orden de los pines puede cambiar según el fabricante.

Esquema:

Conexión del modulo DHT11 a la placa Arduino

El módulo dispone de 3 pines: la toma de tierra se debe conectar al pin GND de la placa, la toma VCC al pin de alimentación y el pin DATA al pin digital 2 de la placa Arduino.

Código:

#include "DHT.h" 
#define PinSensor 2   // Pin digital al que se conecta el sensor
#define Tipo DHT11    // Tipo de sensor
DHT dht(PinSensor, Tipo);

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

void loop(){
  delay(5000);   
  float humedad = dht.readHumidity();
  float temperatura = dht.readTemperature();
  Serial.print("Humedad: "); 
  Serial.println(humedad);
  Serial.print("Temperatura:"); 
  Serial.println(temperatura);
}

Lo primero que hacemos es incluir la librería DHT.h. Seguidamente, indicamos el pin digital donde hemos conectado nuestro sensor (pin 2) y el tipo de sensor que vamos a utilizar, en nuestro caso es el DHT11.

#define PinSensor 2
#define Tipo DHT11

Creamos el objeto y entre paréntesis a qué pin se encuentra conectado y el tipo de sensor:

DHT dht(PinSensor, Tipo); 

En la función setup(), inicializamos el monitor serial, por donde vamos a ver los resultados, y también inicializamos el objeto dht:

Serial.begin(9600); 
dht.begin();

En la función loop(), primero esperamos 5 segundos para realizar la lectura y utilizamos las funciones dht.readHumidity() y dht.redtemperature() para leer la humedad y la temperatura:

delay(5000);   
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();

El siguiente paso es mostrarlo por el monitor serial:

Serial.print("Humedad: "); 
Serial.println(humedad);
Serial.print("Temperatura:"); 
Serial.println(temperatura);

En el monitor serial veremos los resultados:

Temperatura y humedad en el monitor serial
Lectura de la temperatura y humedad en el monitor serial.

¿Cómo mostrar la temperatura y la humedad por un LCD de 16×2?

Obviamente resulta mucho más cómodo ver reflejada la temperatura y la humedad en una pantalla LCD, es lo que vamos a realizar a continuación. Si no has conectado anteriormente una pantalla LCD con Arduino te aconsejamos que veas ¿cómo conectar un LCD a Arduino UNO?.

Material necesario:

  • Placa Arduino o similar Protoboard
  • Sensor DHT11
  • Display LCD 16×2
  • Cables
  • Resistencia
  • Potenciómetro lineal de 10K

Esquema:

Esquema para el montaje del sensor DHT11, pantalla LCD y la placa Arduino
Titulo

Procedemos a montar el esquema de conexión asegurándonos que los pines del sensor DTH11 son los correctos, cada fabricante los tiene en un orden diferente. El GND conectado a tierra, VCC a la alimentación y el DATA, al pin digital 2 de la placa Arduino.

Desde el LCD: el terminal VSS (1) a tierra, VDD (2) a la alimentación, VO (3) al pin de salida del potenciómetro, RS (4) al pin 7 de Arduino, RW (5) a tierra, E (6) al 8 de la placa, D4 (11) al 9 de Arduino, D5 (12) al 10 Arduino, D6 (13) al 11 de Arduino, D7 (14) al 12 de Arduino, A (15) a la fuente de alimentación y K (16) a tierra.

Código:

#include 
#include "DHT.h" 
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
#define PinSensor 2
#define Tipo DHT11
DHT dht(PinSensor, Tipo); 

void setup() {
  lcd.begin(16, 2);
  dht.begin();
}

void loop() {
  delay(5000);
  float humedad = dht.readHumidity();
  float temperatura = dht.readTemperature();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temper. = ");
  lcd.print(temperatura);
  lcd.setCursor(0,1);
  lcd.print("Humedad = ");
  lcd.print(humedad);
}

En las dos primera líneas del código incluimos las bibliotecas LiquidCrystal.h y DHT.h; estas son las bibliotecas que necesitamos para controlar el LCD y el módulo DHT11, respectivamente:

#include 
#include "DHT.h" 

Seguidamente, indicamos qué pines de la placa tenemos conectados al LCD:

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

A continuación, indicamos el pin de la placa que está conectado al pin de datos del módulo DHT11, el tipo de sensor y creamos el objeto DHT:

#define PinSensor 2
#define Tipo DHT11
DHT dht(PinSensor, Tipo); 

En la función setup() inicializamos el objeto LCD y el DHT:

lcd.begin(16, 2);
dht.begin();

En la función loop(), indicamos que nos muestre la temperatura y la humedad por la pantalla del LCD.

delay(5000);
float humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temper. = ");
lcd.print(temperatura);
lcd.setCursor(0,1);
lcd.print("Humedad = ");
lcd.print(humedad);

Artículos que te pueden interesar

Medir el voltaje de una pila con Arduino

Medir el voltaje de una pila con Arduino

| Actualizado:
Comentarios: 1

Es habitual que tengamos por casa un montón de pilas que, en ocasiones, no sabemos si están cargadas o se han gastado. Vamos a realizar un medidor de carga utilizando la placa de Arduino. El máximo que podemos medir es…

Módulo controlador de motores L298N
Funcionamiento del módulo controlador de motores L298N

Funcionamiento del módulo controlador de motores L298N

| Actualizado:
Comentarios: 0

En este tutorial explicaremos cómo controlar dos motores de corriente continua con el módulo L298N, realizaremos un ejemplo básico, primero sin utilizar ninguna librería y después, con la biblioteca LEANTEC_ControlMotor.h El L298N es un módulo para controlar motores. Es fácil…

¿Cómo medir la temperatura y la humedad con el módulo DHT11 y Arduino?
Medir la temperatura y humedad con Arduino

Módulo DHT11, medir la temperatura y la humedad con Arduino.

| Actualizado:
Comentarios: 1

En este artículo veremos el funcionamiento del módulo DHT11 para medir la temperatura y la humedad, realizaremos la conexión con la placa Arduino y mostraremos las medidas obtenidas a través de una pantalla LCD. Contenido 1 Conectando el sensor DHT11…

Robot esquiva obstáculos con Arduino
Robot esquiva obstáculos con Arduino y un sensor de ultrasonidos

Robot esquiva obstáculos con Arduino y un sensor de ultrasonidos

| Actualizado:
Comentarios: 2

En este proyecto nos marcamos el objetivo de desarrollar un robot capaz de esquivar objetos. Un robot que avanzará en línea recta mientras que no detecte ningún obstáculo; en caso de detectar algún estorbo, girará sobre sí mismo hasta que…

Comentarios - 1

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Lucas
15 October, 2021

Muy buen tuto! Gracias.