Tutorial ESP32 28/55 - Sensor de Temperatura DHT11 con LCD | Kit de Aprendizaje IoT ESP32 de SunFounder

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).

Instrucciones de cableado

ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer

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.

void loop() {
  delay(2000);
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
}

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

Imágenes

ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-library
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-schematic
ESP32-28_dht_temperature-sensor-wiring
ESP32-28_dht_temperature-sensor-wiring
DHT11_with_buzzer
DHT11_with_buzzer
ESP32-28_dht_temperature-sensor-main
ESP32-28_dht_temperature-sensor-main
828-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor
Idioma: C++
829-ESP32 Tutorial 28/55- Arduino code for DHT Temperature sensor with LCD
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Archivos📁

Archivo de Fritzing

Manual del Usuario