ESP32 - Módulo RTC - LCD

En este tutorial, te guiaremos a través del proceso de crear un reloj LCD utilizando un ESP32 con los siguientes pasos:

Tienes la opción de elegir entre dos módulos RTC: DS3231 y DS1307. Para ayudarte a tomar una decisión informada, consulta la comparación descrita en DS3231 vs DS1307.

Este tutorial proporcionará una guía paso a paso para integrar el ESP32 con cualquiera de los módulos RTC DS3231 o DS1307 para mostrar la fecha y la hora exactas en una pantalla LCD I2C de 16x2.

Hardware Requerido

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativo) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativo) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativo) ESP32 Uno-form board
1×(Alternativo) ESP32 S3 Uno-form board
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×LCD I2C Display 3.3V
1×(Alternativo) LCD I2C 20x4
1×Módulo Reloj de Tiempo Real (RTC) DS3231
1×(Alternativo) Real-Time Clock DS1307 Module
1×Batería CR2032
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Nota de compra: La mayoría de las pantallas LCD I2C del mercado son de 5V. Puede que funcionen con esta placa, pero no es seguro y puede dañar la placa. Recomendamos encarecidamente usar la pantalla LCD I2C de 3.3V recomendada arriba.

Acerca del módulo RTC LCD, DS3231 y DS1307

¿No estás familiarizado con LCD, DS3231 y DS1307, incluidas sus conexiones de pines, funcionamiento y programación? Explora tutoriales completos sobre estos temas a continuación:

Instalar bibliotecas LCD y RTC

  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DIYables LCD I2C”, luego encuentra la biblioteca DIYables_LCD_I2C de DIYables
  • Haz clic en el botón Instalar para instalar la biblioteca DIYables_LCD_I2C.
Biblioteca ESP32 DIYables LCD I2C
  • Busca “RTClib”, luego localiza la biblioteca RTC de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca RTC.
Biblioteca RTC para ESP32
  • Es posible que se le pida instalar las dependencias de la biblioteca
  • Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar Todo.
Biblioteca BusIO de Adafruit para ESP32

Lectura de la hora desde el módulo RTC DS3231 y mostrarla en la pantalla LCD

Diagrama de Cableado

Diagrama de cableado ESP32 DS3231 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.

Código ESP32 - DS3231 y LCD

/* * 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-rtc-module-lcd */ #include <DIYables_LCD_I2C.h> #include <RTClib.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows RTC_DS3231 rtc; void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight // SETUP RTC MODULE if (!rtc.begin()) { Serial.println("RTC module is NOT found"); Serial.flush(); while (true) ; } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } void loop() { DateTime now = rtc.now(); int year = now.year(); int month = now.month(); int day = now.day(); int hour = now.hour(); int minute = now.minute(); int second = now.second(); lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Date: "); lcd.print(year); lcd.print("/"); lcd.print(month); lcd.print("/"); lcd.print(day); lcd.setCursor(0, 1); // start to print at the second row lcd.print("Time: "); lcd.print(hour); lcd.print(":"); lcd.print(minute); lcd.print(":"); lcd.print(second); delay(1000); // Update every second }

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 tal como se muestra en la imagen anterior.
  • 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.
  • Copia el código anterior y ábrelo con Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para cargar el código al ESP32.
  • Ver el resultado en la pantalla LCD.

Lectura de la hora desde el módulo RTC DS1307 y mostrarla en la pantalla LCD

Diagrama de cableado

Diagrama de cableado ESP32 DS1307 LCD

This image is created using Fritzing. Click to enlarge image

Código ESP32 - DS1307 y LCD

/* * 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-rtc-module-lcd */ #include <DIYables_LCD_I2C.h> #include <RTClib.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows RTC_DS1307 rtc; void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight // SETUP RTC MODULE if (!rtc.begin()) { Serial.println("RTC module is NOT found"); Serial.flush(); while (true) ; } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } void loop() { DateTime now = rtc.now(); int year = now.year(); int month = now.month(); int day = now.day(); int hour = now.hour(); int minute = now.minute(); int second = now.second(); lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print("Date: "); lcd.print(year); lcd.print("/"); lcd.print(month); lcd.print("/"); lcd.print(day); lcd.setCursor(0, 1); // start to print at the second row lcd.print("Time: "); lcd.print(hour); lcd.print(":"); lcd.print(minute); lcd.print(":"); lcd.print(second); delay(1000); // Update every second }

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 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
  • Copia el código anterior y ábrelo con Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para subir el código al ESP32.
  • Mira el resultado en la pantalla LCD.

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!