Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 28/55 - Sensor de Temperatura DHT11 con LCD | Kit de Aprendizaje IoT ESP32 de SunFounder
En este tutorial, exploraremos cómo interfacar el sensor de temperatura y humedad DHT11 con el microcontrolador ESP32. Usando esta configuración, mediremos la temperatura y la humedad ambiente, mostrando los resultados tanto en el monitor serial como en una pantalla LCD. Además, implementaremos un zumbador que se activa cuando la temperatura supera un cierto umbral.
ESP32-28_sensor de temperatura DHT-principal
Este proyecto no solo demuestra el uso del sensor DHT11, sino que también muestra la versatilidad del ESP32, que incluye capacidades de Wi-Fi y Bluetooth integradas. Al final de este tutorial, tendrás una configuración funcional que monitorea continuamente las condiciones ambientales y proporciona retroalimentación en tiempo real.
Para una guía visual, mira el video que acompaña este tutorial (en el video a las 00:00). ¡Iniciemos!
Hardware Explicado
Los componentes principales utilizados en este proyecto son el microcontrolador ESP32, el sensor DHT11 y una pantalla LCD. El ESP32 servirá como el cerebro de la operación, procesando datos del sensor DHT11 y controlando la salida de la LCD.
El sensor DHT11 mide la humedad y la temperatura, proporcionando lecturas a través de una única línea de datos. Requiere una fuente de alimentación de 3.3V a 5.5V y tiene un bajo consumo de corriente, lo que lo hace adecuado para aplicaciones alimentadas por batería. El LCD mostrará los valores de temperatura y humedad en tiempo real.
Detalles de la hoja de datos
Fabricante
GROVE
Número de parte
DHT11
Voltaje de lógica/E/S
3.3 - 5.5 V
Tensión de suministro
3.3 V
Corriente de salida (por canal)
0.5 mA típico.
Corriente de pico (por canal)
2,5 mA máx.
Orientación sobre la frecuencia de PWM
N/A
Umbrales de lógica de entrada
0.3 VCC (bajo), 0.7 VCC (alto)
Caída de voltaje / RDS(on)/ saturación
No aplicable
Límites térmicos
0°C a 60°C
Paquete
DIP-4
Notas / variantes
Resolución: 1°C / 1% HR
Utiliza una resistencia de tirón (5 kΩ recomendada) en la línea de datos.
Mantenga los cables del sensor cortos (menos de 20 m) para asegurar lecturas precisas.
Alimenta el DHT11 con 3.3V para un rendimiento óptimo.
El período de muestreo no debe ser inferior a 1 segundo.
Verifique las conexiones del cableado si las lecturas fallan (por ejemplo, no conectado, pin incorrecto).
Para conectar el sensor DHT11 al ESP32, comienza conectando el pin VCC del DHT11 (el pin más a la izquierda) a la salida de 3.3V del ESP32. A continuación, conecta el pin de tierra (el cuarto pin) a un pin de tierra (GND) en el ESP32. El pin de datos (el segundo pin) debe conectarse al pin GPIO 14 en el ESP32.
Para el LCD, conecta el pin VCC a la salida de 5V del ESP32. El pin de tierra debe estar conectado a un pin de tierra en el ESP32. Los pines SDA y SCL del LCD deben estar conectados a los pines GPIO 21 y 22, respectivamente. Asegúrate de que todas las conexiones estén seguras para evitar problemas al leer datos.
Ejemplos de Código y Tutorial
En la primera parte del código, inicializamos el sensor DHT y configuramos el número de pin con#define DHTPIN 14Este identificador nos permite hacer referencia fácilmente al pin conectado a la línea de datos DHT11 a lo largo del código.
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
}
En elsetup()función, inicializamos la comunicación en serie para la depuración y comenzamos el sensor DHT. El bucle principal incluye una demora de 2 segundos para asegurarnos de no abrumar al sensor con solicitudes.
A continuación, leemos los valores de humedad y temperatura utilizandofloat humidity = dht.readHumidity();yfloat temperature = dht.readTemperature();Estos identificadores almacenan los valores medidos para su uso posterior.
Finalmente, comprobamos si hay errores de lectura y mostramos los valores en el monitor serial utilizandoSerial.print(). Esto nos permite observar las lecturas en tiempo real.
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
En el código LCD, inicializamos el LCD y mostramos la temperatura y la humedad en la pantalla utilizando ellcd.print()función. Esto proporciona una representación visual de los datos recopilados por el sensor DHT11.
Demostración / Qué esperar
Una vez que todo esté cableado correctamente y el código esté cargado en el ESP32, deberías ver las lecturas de temperatura y humedad mostradas en el monitor serial y en la pantalla LCD. Si la temperatura supera los 30°C, el zumbador se activará, proporcionando una alerta audible.
Tenga cuidado con las conexiones invertidas y asegúrese de que el sensor no esté expuesto a condiciones extremas, ya que puede afectar las lecturas. Es posible que necesite ajustar el umbral para el zumbador según sus requisitos (en el video a las 15:30).
Marcas de tiempo del video
00:00 Comienzo
1:57 Introducción al DHT11
6:18 Cableado DHT11 con ESP32
7:67 Código de Arduino explicado
11:49 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
13:30 Demostración del proyecto
15:32 Consiguiendo Fahrenheit
16:04 mostrando la temperatura en el LCD utilizando ESP32
17:20 DHT11 y LCD con código ESP32
19:49 Demo de DHT11 en LCD con ESP32
21:33 Tomando acción sobre el valor de Temperatura