# website: https://jimirobot.tw by jimi
from machine import Pin, I2C, RTC
import ssd1306
import utime
import network
import urequests
import ujson
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
def go_wifi():
try:
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect('Wokwi-GUEST', '') # wifi ssid and password
for i in range(20):
utime.sleep(1)
if wifi.isconnected():
break
if wifi.isconnected():
print('WiFi connection OK!')
print('Network Config=', wifi.ifconfig())
else:
print('WiFi connection Error')
except Exception as e:
print(e)
def get_net_time():
clk_url = 'http://worldtimeapi.org/api/timezone/asia/taipei'
try:
response = urequests.get(clk_url)
if response.status_code == 200:
data = ujson.loads(response.text)
time_data = data['datetime']
year, month, day, hour, minute, second = map(int, time_data.split('T')[0].split('-') + time_data.split('T')[1][:8].split(':'))
rtc = RTC()
rtc.init((year, month, day, 0, hour, minute, second, 0))
print("Time_Update Okay")
else:
print("update fail")
except Exception as e:
print(e)
print('get net error !')
go_wifi()
go_wifi()
get_net_time()
while True:
utime.sleep(1)
current_time = RTC().datetime()
current_time = (current_time[0], current_time[1], current_time[2], current_time[3] + 1, current_time[4], current_time[5], current_time[6], current_time[7])
datetime_str = "({:04d}, {:02d}, {:02d}, {:02d}, {:02d}, {:02d}, {:02d}, {:06d})".format(*current_time)
print("B10913095 彭鈺森", datetime_str)
oled.fill(0)
oled.text('B10913095', 10, 10)
oled.text('({:04d}, {:02d}, {:02d}, '.format(*current_time[:3]), 1, 20)
oled.text('{:02d}, {:02d}, {:02d}, '.format(*current_time[3:6]), 1, 30)
oled.text('{:02d}, {:06d})'.format(*current_time[6:8]), 1, 40)
oled.show()