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 la inclinación con Arduino
Medir la inclinación con Arduino y el sensor SW-520D

Medir la inclinación con Arduino y el sensor SW-520D

| Actualizado:
Comentarios: 0

Realizamos un ejemplo básico, donde se puede apreciar que la lectura hecha por el sensor se recibe en un pin de entrada digital de la placa (hemos usado el nº 7). Material necesario: Arduino Uno o similar. Protoboard. Cables Sensor…

Sensor ultrasónico HC-SR04 y Arduino

Sensor ultrasónico HC-SR04 y Arduino

| Actualizado:
Comentarios: 0

El sensor HC-SR04 es un sensor de distancia de baja precisión basado en ultrasonidos. Se puede utilizar en multitud de proyectos, como sistema de detección de obstáculos para vehiculos o robots, sensores de presencia, etc. Contenido 1 ¿Cómo funciona el…

Control Remoto en Arduino
Control Remoto en Arduino con la librería IRremote

Control Remoto en Arduino con la librería IRremote

| Actualizado:
Comentarios: 0

¿Qué te parece utilizar un mando para apagar o encender la luz? En este post vamos a utilizar un mando a distancia y un sensor infrarrojo con el que encender o apagar un led. Son elementos que podrás aplicar en…

Robot Arduino controlado por un mando a distancia de infrarrojos
Robot Arduino dirigido con un mando infrarrojo

Robot Arduino controlado por un mando a distancia de infrarrojos

| Actualizado:
Comentarios: 0

El objetivo de este proyecto es controlar el movimiento de un robot Arduino con un mando a distancia, a través de una señal de infrarrojo.

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.