【得捷电子Follow me第3期】任务4 联网日历
[复制链接]
前面获取的是纽约的时期,这里向大家展示获取东八区的ntp时间,并在OLED屏上动态显示当前时间,代码如下:
import machine
import time
from machine import Pin, SoftI2C, RTC
import ssd1306py as lcd
from time import sleep
import time
import network
import urequests
import ujson
import ntptime
i2c = SoftI2C(scl=Pin(7), sda=Pin(6)) # Adjust the Pin numbers based on your connections
lcd.init_i2c(7,6,128,64)
lcd.clear()
lcd.text('NtpTime', 0, 16, 32)
lcd.show()
station = network.WLAN(network.STA_IF)
station.active(True)
# Network settings
wifi_ssid = "SSID"
wifi_password = "pwd@"
authmodes = ['Open', 'WEP', 'WPA-PSK' 'WPA2-PSK4', 'WPA/WPA2-PSK']
for (ssid, bssid, channel, RSSI, authmode, hidden) in station.scan():
print("* {:s}".format(ssid))
print(" - Channel: {}".format(channel))
print(" - RSSI: {}".format(RSSI))
print(" - BSSID: {:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}".format(*bssid))
print()
# Continually try to connect to WiFi access point
while not station.isconnected():
# Try to connect to WiFi access point
print("Connecting...")
station.connect(wifi_ssid, wifi_password)
time.sleep(10)
# Display connection details
print("Connected!")
print("My IP Address:", station.ifconfig()[0])
while True: #时间校准
try:
print('time ing')
ntptime.settime()
print('time ok')
break;
except:
print('time no')
time.sleep(1)
while True:
lcd.clear()
lcd.text('Ntp Time', 0, 0, 32)
mytime=time.localtime()
mydata='%04d-%02d-%02d'%(mytime[0],mytime[1],mytime[2])
thistime='%02d:%02d:%02d'%(mytime[3]+8,mytime[4],mytime[5])
print(mydata)
print(thistime)
lcd.text(mydata,20,32,16)
lcd.text(thistime,30,48,16)
lcd.show()
time.sleep(1)
显示效果:
NTP时间
|