【得捷电子Follow me第1期】任务3:同步网络时间
[复制链接]
本帖内容包含连接网络和同步网络时间,代码是用的直播时的示例。
连接网络
先连接网络
import network
import time
from machine import RTC
import ntptime
import urequests
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('wifi/热点名称', 'wifi/热点密码')
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('等待连接')
time.sleep(1)
if wlan.status() != 3:
raise RuntimeError('联网失败')
else:
print('网络已连接')
status = wlan.ifconfig()
print( 'ip = ' + status[0] )
r = urequests.get("https://www.digikey.cn/zh")
print(r.status_code)
print(r.headers)
r.close()
运行后会出现
此时板子就已经成功连接上网络了。
同步网络时间
成功连接上网络之后,就可以开始同步网络时间了。
import network
import time
from machine import RTC
import ntptime
import urequests
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('wifi/热点名称', 'wifi/热点密码')
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('等待连接')
time.sleep(1)
if wlan.status() != 3:
raise RuntimeError('联网失败')
else:
print('网络已连接')
status = wlan.ifconfig()
print( 'ip = ' + status[0] )
def show_local_time(timezone=8):
rtc = RTC()
now = time.time()
now += timezone * 3600
t = time.localtime(now)
print(f'{t[0]}-{t[1]:02d}-{t[2]:02d} {t[3]:02d}:{t[4]:02d}:{t[5]:02d}')
rtc = RTC()
rtc.datetime((2020, 1, 1, 3, 9, 0, 0, 0))
print('校时前系统时间:')
show_local_time()
print('开始NTP校时. . .')
ntptime.host = 'cn.pool.ntp.org'
ntptime.settime()
print(f'校时后系统时间:')
show_local_time()
运行后会出现
此时联网同步网络时间就已成功完成
|