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

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…

Sonido con Arduino. Zumbador

Sonido con Arduino. Zumbador

| Actualizado:
Comentarios: 0

En este post vamos a aprender a generar sonidos con Arduino. Utilizaremos una señal eléctrica para hacer vibrar la membrana del zumbador. Contenido 1 Sonido con Arduino 2 Generar sonido con un zumbador 3 Sonido controlado por un potenciómetro 4…

Radio FM con Arduino y el módulo TEA5767
Hacer una radio FM con Arduino y el módulo TEA5767

Hacer una radio FM con Arduino y el módulo TEA5767

| Actualizado:
Comentarios: 0

En este artículo haremos una radio FM con el módulo TEA5767 para Arduino y utilizaremos una pantalla LCD para mostrar la frecuencia que estamos escuchando. Para el cambio de frecuencia, vamos a utilizar un potenciómetro lineal que después cambiaremos por…

Radar con Arduino y Processing
Realizar un radar con Arduino y Processing

Realizar un radar con Arduino y Processing

| Actualizado:
Comentarios: 0

En este artículo explicaremos cómo montar un radar con Arduino y utilizaremos el programa processing para representar en la pantalla los datos. Un radar se basa en emitir un impulso de radio que se refleja en un objeto. A partir…

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.