¿Qué es NTP?
NTP (Network Time Protocol) es el protocolo que usan todos los dispositivos conectados a internet para sincronizar su reloj con servidores de tiempo de alta precisión. La librería time.h del ESP32 implementa el cliente NTP de forma nativa, permitiendo obtener la hora exacta en menos de un segundo después de conectarse al WiFi.
Para este proyecto solo necesitas un ESP32 de Especificar.cl y conexión WiFi. Sin módulo RTC adicional.
Configuración de NTP en Arduino IDE
- Incluye las librerías WiFi.h y time.h
- Conecta al WiFi normalmente con WiFi.begin(ssid, password)
- configTime(offsetHora, offsetVerano, "pool.ntp.org") configura el cliente NTP
- Para Chile continental: GMT-4 en verano (-4×3600 = -14400) y GMT-3 en invierno
- pool.ntp.org es el servidor NTP global más confiable
Obtener fecha y hora
Con struct tm timeinfo; y getLocalTime(&timeinfo) obtienes la hora local ajustada con el offset configurado. Luego accedes a timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec, timeinfo.tm_mday, timeinfo.tm_mon+1 y timeinfo.tm_year+1900 para año, mes, día, hora, minutos y segundos respectivamente.
Cambio de horario en Chile
Chile tiene dos cambios de horario anuales (hora de verano e invierno). Para manejar esto automáticamente, usa la base de datos de zonas horarias con posix strings: "CLT4CLST,M10.2.6/24,M3.2.6/24" configura automáticamente el ajuste de hora de verano para Chile Continental en la función configTzTime(). Así tu aplicación siempre mostrará la hora local correcta sin actualizaciones de código.