Fecha y Hora con MicroPython

Contenido:

Fecha y Hora sincronizados por Internet con MicroPython

Conocer la hora y fecha actual es de mucha utilidad para diversas aplicaciones, ya sea para realizar alguna acción en un tiempo determinado o para conocer el instante de tiempo en el cual se disparó algún evento.

En este articulo aprovecharemos la capacidad de la Placa ESP32 de conectarse a internet mediante su Modulo Wi-Fi integrado, y lo sincronizaremos con la la fecha y hora actual mediante un servicio NTP (Network Time Protocol), cabe recalcar que la placa ESP32 debe contener el firmware de micropython instalado.

Materiales

  • 1x Placa ESP32 con micropython.
  • 2x Protoboard (opcional).

Requisitos

  • Red Inalámbrica con conexión a Internet (WiFi).

Circuito

esp32 micropython
Figura 1: Circuito con la Placa ESP32.

Sketch en MicroPython

#____________________________________________________________________________________________________________
#CONEXION A UNA RED WI-FI
import network
import time
#Reemplace el nombre de su red wifi (Wifi Name) y la contraseña (Wifi Password)
ssid = 'Wifi Name'
key = 'Wifi Password'
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
    wlan.active(True)
    wlan.connect(ssid, key)
    print('Connecting to: %s' % ssid)
    timeout = time.ticks_ms()
    while not wlan.isconnected():
        if (time.ticks_diff (time.ticks_ms(), timeout) > 10000):
            break
    if wlan.isconnected():
        print('Successful connection to: %s' % ssid)
        print('IP: %s\n' % wlan.ifconfig()[0])
    else:
        wlan.active(False)
        print('Failed to connect to: %s' % ssid)
else:
    print('Connected\nIP: %s\n' % wlan.ifconfig()[0])
#____________________________________________________________________________________________________________
# OBTENCIÓN DESDE INTERNET DE NTP - NETWORK TIME PROTOCOL (pool.ntp.org)
import ntptime
ntptime.settime()
#____________________________________________________________________________________________________________
# SINCRONIZACION DEL RELOJ INTERNO E IMPRESION DE FECHA Y HORA
from machine import RTC
(year, month, day, weekday, hour, minute, second, milisecond) = RTC().datetime()                
#Corrija su Zona Horaria GMT en la variable hour
#Ejemplo: Zona Horaria GMT corregida para Ecuador: GMT-5 = hour-5
RTC().init((year, month, day, weekday, hour-5, minute, second, milisecond))
print ("Fecha: {:02d}/{:02d}/{}".format(RTC().datetime()[2], RTC().datetime()[1], RTC().datetime()[0])) 
print ("Hora: {:02d}:{:02d}:{:02d}".format(RTC().datetime()[4], RTC().datetime()[5], RTC().datetime()[6]))

¿Cómo funciona el Sketch?

El Sketch funciona de la siguiente manera:

  • Antes de ejecutar el sketch se debe modificar los datos de:
    • ssid: Nombre de su red WiFi (string).
    • key: Contraseña de su red WiFi (string).
  • Al energizar la placa, ésta intenta conectarse a la Red WiFi configurada. Para obtener más información sobre la conexión wifi revisa:  Conectarse a una red WiFi con MicroPython.
  • Posterior a esto, en la consola se visualizará los datos de conexión.
  • La fecha y hora de la Placa ESP32 se sincronizará con los datos del servicio NTP configurados según su zona horaria.
  • Los datos sincronizados (Fecha y Hora) se visualizarán en la consola.

Deja un comentario

Política de Privacidad

Esta web utiliza cookies para poder ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a mi web o ayudar a mi equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Puedes revisar mi Política de Privacidad dando clic aquí.