MicroPython ESP8266 - ESP-12 Web Clock
MicroPython ESP8266 - ESP-12 Web Clock
A tutorial of building a web clock with only an ESP8266/ESP-12 board and an SSD1306 OLED display by using built-in modules of MicroPython.
# ESP8266 MicroPython Web Clock
# by Alan Wang
import network
import urequests
import ujson
import utime
import ssd1306
import machine
from machine import RTC, I2C, Pin
# user data
ssid = "ssid" # wifi router name
pw = "pw" # wifi router password
url = "http://worldtimeapi.org/api/timezone/Asia/Taipei" # see http://worldtimeapi.org/timezones
web_query_delay = 60000 # interval time of web JSON query
retry_delay = 5000 # interval time of retry after a failed Web query
# initialization
# wifi connection
wifi = network.WLAN(network.STA_IF) # station mode
wifi.active(True)
wifi.connect(ssid, pw)
# set timer
update_time = utime.ticks_ms() - web_query_delay
# main loop
while True:
# parse JSON
parsed = ujson.loads(response.text) # you can also use parsed = response.json()
datetime_str = str(parsed["datetime"])
year = int(datetime_str[0:4])
month = int(datetime_str[5:7])
day = int(datetime_str[8:10])
hour = int(datetime_str[11:13])
minute = int(datetime_str[14:16])
second = int(datetime_str[17:19])
subsecond = int(round(int(datetime_str[20:26]) / 10000))
utime.sleep(0.1)