Obtener fecha y hora – Arduino IDE

ESP32 es una placa de Internet de las cosas (IoT) basada en microcontroladores que se puede conectar a una amplia gama de dispositivos. ESP32 se usa a menudo en proyectos basados en IoT. Trabajar con ESP32 o cualquier otro tiempo de microcontrolador es muy importante porque el temporizador incorporado no es tan preciso, por lo que podemos usar un NTP Servidor para obtener tiempo real y almacenarlo en una variable que se puede usar más tarde en el código ESP32. Network Time Protocol (NTP) utiliza Coordinated Universal Time (UTC), que sincroniza el reloj del sistema con gran precisión y exactitud. En redes más pequeñas, NTP puede darnos relojes con una precisión de hasta 1 ms, mientras que redes más grandes como LAN (Red de área local) NTP puede darnos una precisión de decenas de milisegundos a través de Internet. Este reloj preciso permite que ESP32 ejecute instrucciones en un momento específico. Esta guía contiene el siguiente contenido:
- Introducción a NTP (Protocolo de tiempo de red)
- Servidor NTP y configuración de hora
- Impresión en tiempo real con la función printLocalTime()
Contenidos
1: Introducción a NTP (Protocolo de tiempo de red)
NTP es un acrónimo de nortela red Ttiempo PAGSRotocol es un estándar utilizado para sincronizar la hora del dispositivo con su zona horaria. El Protocolo de hora de la red sincroniza la hora de todos los dispositivos de la red con UTC, también conocida como Hora universal coordinada. UTC es como GMT (hora del meridiano de Greenwich), pero no cambia y permanece igual en todo el mundo. La idea principal detrás del uso de UTC es leer la hora en él. NTP servidor y al aplicar el desplazamiento UTC podemos obtener la hora local de acuerdo con nuestra zona horaria.
2: servidor NTP y configuración de hora
Para leer la hora del servidor NTP, debemos declarar las siguientes variables en el código. Con estas variables podemos obtener la hora del servidor NTP.
- servidor NTP
- Desplazamiento GMT
- Compensación de luz diurna
2.1: servidor NTP
Solicitaremos hora de piscina.ntp.org que contiene datos de hora mundial en el servidor y todos pueden solicitar su hora local a través de este grupo. A continuación se muestran algunos otros servidores a los que podemos acceder:
En todo el mundo | piscina.ntp.org |
Asia | asia.pool.ntp.org |
Europa | europa.pool.ntp.org |
América del norte | america del norte.pool.ntp.org |
Oceanía | oceania.pool.ntp.org |
Sudamerica | sudamerica.pool.ntp.org |
2.2: Desplazamiento GMT
El desplazamiento GMT describe la diferencia horaria en horas entre la zona horaria en la que vive y GMT. Por ejemplo, si usamos la zona horaria de EE. UU., podemos configurarlo para UTC = -11:00.
2.3: Compensación de luz diurna
Aquí, la compensación de la luz del día es el horario de verano, que normalmente se supone que es de 1 hora. El horario de verano significa que el reloj se adelanta 1 hora en verano y se vuelve a atrasar en invierno. Este comando generalmente se usa cuando se usa una zona horaria personalizada y se aplica una regla de horario de verano. Ahora que hemos cubierto los conceptos básicos del servidor NTP, veamos cómo podemos enviar una solicitud al servidor NTP y leer la hora local usando ESP32 con el código IDE de Arduino.
3: Impresión en tiempo real con la función printLocalTime()
Que imprimirHoraLocal() función llama a la obtenerHoraLocal() Función que envía la solicitud al servidor NTP y guarda en él la fecha y hora de recepción información de tiempo Variable.
3.1: Código para impresión en tiempo real
Pegue el código del servidor del cliente NTP proporcionado en el editor IDE de Arduino. Conecte ESP32 a la PC, seleccione el puerto COM y cargue el código. #incluir
%A | día de regreso de una semana |
%B | mes de regreso |
%d | día de regreso del mes |
%y | Regresar año actual |
%H | Devuelve la hora actual |
%METRO | Devolver minutos actuales |
%S | Devolver segundos actuales |
3.2: Salida
Después de cargar el código, ESP32 se conecta a una red WiFi y envía una solicitud al servidor NTP para obtener la fecha y hora actuales. El siguiente resultado se puede ver en el monitor serie Arduino. La hora actual en mi PC y ESP32 está sincronizada.
Leímos con éxito la hora del servidor NTP con ESP32 como cliente.
Conclusión
El tiempo es muy importante para aplicaciones como las marcas de tiempo y la ejecución de declaraciones en momentos específicos para producir una salida. Los temporizadores incorporados no son tan precisos, por lo que podemos usar un servidor NTP para leer la hora y la fecha actuales. Este tiempo se puede almacenar en una variable para usar en nuestro código. Esta lección ayudará a obtener la hora exacta de cualquier zona horaria del mundo usando ESP32.