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

Reloj con Arduino
Montar un reloj con Arduino, el módulo RTC DS3231 y mostrarlo en una pantalla LCD

Montar un reloj con Arduino, el módulo RTC DS3231 y mostrarlo en una pantalla LCD

| Actualizado:
Comentarios: 0

Con este proyecto podremos regular la fecha y la hora actual. El módulo RTC DS3231 cuenta con una pila que en el caso de que se corte la fuente de alimentación, permitirá al reloj seguir guardando internamente la fecha y…

Salidas analógicas en Arduino
Salidas analógicas en Arduino. Intensidad lumínica.

Salidas analógicas en Arduino. Intensidad lumínica.

| Actualizado:
Comentarios: 0

El objetivo de este proyecto es regular la intensidad de un led usando las salidas que soportan PWM y que corresponden a los pines digitales con el símbolo "~". En primer lugar, cambiaremos la intensidad de un solo led. Seguidamente,…

Lectura de un potenciómetro con Arduino
Lectura de un potenciómetro. Entradas analógicas en Arduino.

Lectura de un potenciómetro. Entradas analógicas en Arduino.

| Actualizado:
Comentarios: 0

En este post vamos a leer una señal analógica a través de un potenciómetro, mostraremos el valor por el puerto serie (monitor), en un segundo experimento lo transformaremos a voltaje, en porcentaje y utilizaremos una media para reducir los valores…

¿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…

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.