Como conectar DHT11 en ESP32 con salida a LCD1602
En esta entrada os mostraremos Como conectar DHT11 en ESP32 con salida a LCD1602. El DHT11 es un sensor de temperatura y humedad que es comúnmente utilizado en proyectos de electrónica y prototipos de IoT (Internet de las cosas). El ESP32 es un microcontrolador de bajo costo y bajo consumo de energía que es ampliamente utilizado en proyectos de IoT debido a su capacidad de conectividad Wi-Fi y Bluetooth.
Cuando conectas un sensor DHT11 a un ESP32 y lo programas adecuadamente, el microcontrolador puede leer los datos de temperatura y humedad del sensor. Luego, esos datos pueden ser enviados a una pantalla LCD1602 para su visualización.
Aquí hay una descripción básica de cada componente:
ESP32: Es un microcontrolador de bajo costo y bajo consumo de energía con conectividad Wi-Fi y Bluetooth integrada. Puede ser programado utilizando el lenguaje de programación Arduino o mediante el uso de herramientas de desarrollo específicas para ESP32.
DHT11: Es un sensor de temperatura y humedad digital. Utiliza un sensor capacitivo para medir la humedad relativa en el aire y un termistor para medir la temperatura ambiente. Proporciona datos digitales a través de un solo pin de datos.
LCD1602: Es una pantalla LCD alfanumérica de 16×2 caracteres. Esto significa que puede mostrar hasta 16 caracteres en dos líneas. Se comunica con el ESP32 a través de un protocolo de comunicación como I2C o paralelo.
Cuando se combinan estos componentes en un proyecto, el ESP32 se encarga de leer los datos del sensor DHT11 y luego los muestra en la pantalla LCD1602. Este tipo de configuración es comúnmente utilizada en estaciones meteorológicas caseras, termostatos inteligentes y otros dispositivos que requieren monitoreo de temperatura y humedad en tiempo real.
Código para conectar DHT11 en ESP32 con salida a LCD1602
Para realizar la lectura del sensor DHT11 y mostrar los datos en una pantalla LCD1602 con un ESP32, necesitarás utilizar las siguientes librerías:
- Para el sensor DHT11:
- DHT Sensor Library: Esta biblioteca te permitirá interactuar con el sensor DHT11. Puedes encontrar esta biblioteca en el administrador de bibliotecas de Arduino. Simplemente busca «DHT sensor library» e instálala.
- Para la pantalla LCD1602:
- LiquidCrystal_I2C: Esta biblioteca te permite controlar la pantalla LCD1602 utilizando la interfaz I2C, lo que simplifica las conexiones y el uso de pines en el ESP32. También puedes encontrar esta biblioteca en el administrador de bibliotecas de Arduino. Busca «LiquidCrystal_I2C» e instálala.
Estas dos bibliotecas son las principales que necesitarás para este proyecto. Después de instalarlas, puedes utilizarlas en tu código para interactuar con el sensor DHT11 y la pantalla LCD1602 de manera sencilla y eficiente. Recuerda que puedes encontrar ejemplos de uso de estas bibliotecas en la documentación oficial o en otros recursos en línea para ayudarte a comenzar con tu proyecto.
El código necesario
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <DHTesp.h>
DHTesp dht; // Define el objeto DHT
int dhtPin = 4; // Define el pin del sensor DHT
LiquidCrystal_I2C lcd_i2c(0x27, 16, 2); // Dirección I2C 0x27, 16 columnas y 2 filas
void setup() {
Serial.begin(115200);
dht.setup(dhtPin, DHTesp::DHT11); // Inicializa el pin y el objeto DHT
Wire.begin();
lcd_i2c.init(); // Inicializa el LCD
lcd_i2c.backlight();
}
void loop() {
delay(2000);
TempAndHumidity newValues = dht.getTempAndHumidity(); // Obtiene la temperatura y humedad
if (dht.getStatus() != 0) { // Verifica si se leyó el valor correcto
return; // Si hay un error, sale del bucle
}
lcd_i2c.clear(); // Borra la pantalla
lcd_i2c.setCursor(0, 0); // Mueve el cursor a (0, 0)
lcd_i2c.print("Temp: "); // Imprime la etiqueta de temperatura
lcd_i2c.print(newValues.temperature); // Imprime el valor de temperatura
lcd_i2c.print(" C"); // Imprime la unidad de temperatura
lcd_i2c.setCursor(0, 1); // Mueve el cursor a (0, 1)
lcd_i2c.print("Hum: "); // Imprime la etiqueta de humedad
lcd_i2c.print(newValues.humidity); // Imprime el valor de humedad
lcd_i2c.print(" %"); // Imprime la unidad de humedad
delay(1000);
}
Y aquí tenemos el resultado, lo siguiente será mostrarlo en tu navegador y guardar los dados en una base de dados.