ESP32 - Sensor de temperatura y humedad - LCD

Este tutorial explica cómo usar un ESP32 para leer los valores de humedad y temperatura de los sensores DHT11/DHT22 y mostrarlos en una pantalla LCD I2C.

Acerca de DHT11, DHT22 y LCD

Tenemos tutoriales específicos sobre el sensor de temperatura DHT11, el sensor de temperatura DHT22 y una pantalla LCD. Cada tutorial contiene información detallada y instrucciones paso a paso sobre la disposición de pines de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtén más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

En algunos casos, el ESP32 puede no proporcionar suficiente energía para la pantalla LCD. Si la pantalla LCD no muestra nada, aliméntala con una fuente de energía externa. A continuación se muestran diagramas de cableado para algunos casos de uso. Tenga en cuenta que el sensor DHT22 puede funcionar con 5V o 3.3V, por lo que puede conectar el pin VCC del DHT22 al pin de 3.3V o al pin de 5V.

ESP32 - Cableado LCD I2C para el módulo DHT11

  • Diagrama de cableado con protoboard, alimentando el ESP32 a través del puerto USB, alimentando la pantalla LCD mediante la placa ESP32
Diagrama de cableado del ESP32, sensor DHT11 y LCD

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

  • Si se alimenta el ESP32 a través del pin Vin y la pantalla LCD con una fuente de alimentación externa
Diagrama de cableado del LCD para ESP32 con el módulo DHT11

This image is created using Fritzing. Click to enlarge image

  • Si alimenta el ESP32 a través del puerto USB y alimenta la pantalla LCD con una fuente de alimentación externa
Diagrama de cableado ESP32 DHT11 LCD I2C

This image is created using Fritzing. Click to enlarge image

ESP32 - Cableado del módulo DHT22 y LCD I2C

  • Diagrama de cableado con placa de pruebas, alimentando el ESP32 a través del puerto USB, alimentando la pantalla LCD mediante la placa ESP32
Diagrama de cableado del ESP32, sensor DHT22 y LCD

This image is created using Fritzing. Click to enlarge image

  • Si alimentas el ESP32 a través del pin Vin y la pantalla LCD con una fuente de alimentación externa
Diagrama de cableado LCD para el módulo ESP32 DHT22

This image is created using Fritzing. Click to enlarge image

  • Si alimentas el ESP32 a través de un puerto USB y alimentas la pantalla LCD con una fuente de alimentación externa
Diagrama de cableado ESP32 DHT22 LCD I2C

This image is created using Fritzing. Click to enlarge image

Código ESP32 - Sensor DHT11 - LCD I2C

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-temperature-humidity-sensor-lcd */ #include <DHT.h> #include <LiquidCrystal_I2C.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { dht_sensor.begin(); // initialize the DHT sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { float humi = dht_sensor.readHumidity(); // read humidity float tempC = dht_sensor.readTemperature(); // read temperature lcd.clear(); // check whether the reading is successful or not if (isnan(tempC) || isnan(humi)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // display position lcd.print("Temp: "); lcd.print(tempC); // display the temperature lcd.print("°C"); lcd.setCursor(0, 1); // display position lcd.print("Humi: "); lcd.print(humi); // display the humidity lcd.print("%"); } // wait a 2 seconds between readings delay(2000); }

※ Nota:

La dirección I2C de la pantalla LCD puede ser diferente según el fabricante. En el código, usamos la dirección 0x27, que está especificada por el fabricante DIYables.

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Haz clic en el icono Libraries en la barra lateral izquierda del Arduino IDE.
  • Escribe “DHT” en la caja de búsqueda, luego busca la biblioteca de sensores DHT de Adafruit.
  • Instala la biblioteca haciendo clic en el botón Install.
Biblioteca de sensores DHT para ESP32
  • Aparece una ventana pidiéndote instalar las dependencias de la biblioteca.
  • Instala todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.
Biblioteca de sensores unificados de Adafruit para ESP32
  • Escribe “LiquidCrystal I2C” en la barra de búsqueda, luego busca la biblioteca LiquidCrystal_I2C de Frank de Brabander
  • Haz clic en el botón Instalar para instalar la biblioteca LiquidCrystal_I2C.
Biblioteca LiquidCrystal I2C para ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
  • Haz que el sensor esté más frío o más caliente. Por ejemplo, coloca el sensor cerca de una taza de café caliente.
  • Ver el resultado en la pantalla LCD

Si la pantalla LCD no muestra nada, consulte Solución de problemas de LCD I2C

Código ESP32 - Sensor DHT22 - LCD I2C

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-temperature-humidity-sensor-lcd */ #include <DHT.h> #include <LiquidCrystal_I2C.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { dht_sensor.begin(); // initialize the DHT sensor lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { float humi = dht_sensor.readHumidity(); // read humidity float tempC = dht_sensor.readTemperature(); // read temperature lcd.clear(); // check whether the reading is successful or not if (isnan(tempC) || isnan(humi)) { lcd.setCursor(0, 0); lcd.print("Failed"); } else { lcd.setCursor(0, 0); // display position lcd.print("Temp: "); lcd.print(tempC); // display the temperature lcd.print("°C"); lcd.setCursor(0, 1); // display position lcd.print("Humi: "); lcd.print(humi); // display the humidity lcd.print("%"); } // wait a 2 seconds between readings delay(2000); }

Los dos códigos anteriores tienen solo una línea de diferencia.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!