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 53/55 - Construye un reloj de internet LCD | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, construiremos un reloj LCD con conexión a Internet utilizando el microcontrolador ESP32 de SunFounder. Este reloj se sincronizará automáticamente con la hora actual a través de Internet, mostrando la hora en un formato de 12 horas o 24 horas, junto con el día de la semana, la fecha y el mes. El uso del Protocolo de Tiempo de Red (NTP) garantiza que el reloj siga siendo preciso sin ajustes manuales.
esp32-53-reloj-de-internet-principal
Este proyecto aprovecha las capacidades de Wi-Fi integradas del ESP32 para obtener la hora actual de un servidor NTP. Utilizaremos una Pantalla de Cristal Líquido (LCD) para mostrar la hora, que se puede formatear según las preferencias del usuario. Para más aclaraciones sobre cualquier paso, consulte el video en (en el video a :30).
Hardware explicado
Los componentes principales para este proyecto incluyen el microcontrolador ESP32, una pantalla LCD de 20x4 y una fuente de energía. El ESP32 es un microcontrolador potente con Wi-Fi y Bluetooth integrados, lo que lo hace adecuado para proyectos de IoT. La LCD se utiliza para mostrar la hora y la fecha, y se puede configurar para diferentes tamaños de pantalla.
El LCD funciona a través del protocolo I2C, que permite la comunicación a través de dos hilos (SDA y SCL). Esto simplifica el cableado y reduce el número de pines necesarios en el ESP32. La conexión al servidor NTP se realiza utilizando las capacidades Wi-Fi del ESP32, lo que permite actualizaciones en tiempo real.
Asegúrate de que la tensión de alimentación sea la correcta (5 V).
Utiliza capacitores de desacople cerca de los pines de alimentación para estabilidad.
Ten cuidado con las conexiones I2C para evitar conflictos en el bus.
Verifica la dirección I2C del LCD (0x27 o 0x3F).
Verifique las credenciales de Wi-Fi para una conexión precisa.
Maneja los ajustes de horario de verano en tu código.
Utiliza el servidor NTP correcto para tu ubicación geográfica.
Siempre borra el LCD antes de actualizar la pantalla.
Instrucciones de cableado
ESP32-11_LCD-wiring
Para conectar el ESP32 con el LCD, comienza conectando los pines de alimentación. Conecta el VCC del LCD al pin de 5V en el ESP32 y el pin GND del LCD al pin GND en el ESP32. Para la comunicación I2C, conecta el pin SDA del LCD al GPIO 21 en el ESP32 y el pin SCL al GPIO 22. Asegúrate de que las conexiones estén seguras para evitar problemas de comunicación.
Al configurar el cableado, utiliza cables jumper de macho a hembra para conexiones fáciles. Si tu LCD tiene una dirección I2C o configuración de pines diferente, ajusta el código en consecuencia. Consulta el video (en el video a :30) para opciones de cableado alternativas si es necesario.
Ejemplos de código y tutoriales
El código inicializa el LCD y configura la conexión Wi-Fi para obtener datos de tiempo del servidor NTP. Identificadores clave comossidypasswordse utilizan para conectarse a la red Wi-Fi, mientrasntpServer1yntpServer2especifica los servidores NTP a utilizar.
Este fragmento muestra las credenciales de la red y las direcciones del servidor. Asegúrate de ingresar tu SSID de Wi-Fi y contraseña con precisión, ya que cualquier error impedirá que el ESP32 se conecte a Internet.
En elprintLocalTime()función, la hora actual está formateada para su visualización. La estructuratmse utiliza para almacenar información temporal, mientrasstrftimeayuda a formatear la hora en una cadena legible.
void printLocalTime() {
struct tm timeinfo;
if(!getLocalTime(&timeinfo)) {
Serial.println("No time available (yet)");
return;
}
char timeHour[5];
strftime(timeHour, 5, "%H", &timeinfo);
Este código verifica si la hora local está disponible y recupera la hora. La hora formateada se utiliza para mostrar la hora actual en el LCD. Si la hora aún no está disponible, imprime un mensaje en el Monitor Serial.
Finalmente, elsetup()la función inicializa el LCD y se conecta a Wi-Fi. También configura la configuración del servidor NTP y establece una función de retorno para la sincronización de tiempo.
void setup() {
Serial.begin(115200);
lcd.init(); // initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
Este extracto inicializa el Monitor Serial para depuración, configura el LCD e intenta conectarse a la red Wi-Fi especificada. El estado de conexión se imprimirá en el Monitor Serial, lo que te permitirá verificar la conexión.
Demostración / Qué Esperar
Tras la configuración exitosa, la pantalla LCD mostrará la hora actual, el día de la semana y la fecha. Puede esperar que la hora se actualice cada 5 segundos, gracias a laloop()función. Si la conexión con el servidor NTP falla, aparecerá un mensaje en el Monitor Serial indicando que el tiempo no está disponible aún (en el video a las 12:00).
Las trampas comunes incluyen cableado incorrecto, direcciones I2C equivocadas y credenciales de Wi-Fi incorrectas. Asegúrese de que todas las conexiones estén seguras y de que el servidor NTP sea accesible desde su red.
Marcas de tiempo del video
00:00 Comenzar
2:10 Introducción
5:15 Explicación del cableado
7:32 Código de Arduino explicado
18:43 Seleccionando la placa ESP32 y el puerto COM en el IDE de Arduino