连上网络之后,通过访问网络上的NTP服务器,可以获取当前时间,在MicroPython上是通过ntptime模块获取时间的。
通过help指令可以看到ntptime模块的简单介绍。其中time函数是获取当前时间。
可以通过host设置目标ntp服务器,我这里选择了阿里云的一个服务器,感觉访问会快一些吧,因为用默认的服务器时,有时会出现超时的错误。
访问ntp服务器获取到的时间是秒数,而且不是北京时间的秒数。北京时间是东八区的时间,因此比获取的秒数应该多8*3600秒,因此需要在获取的秒数上加上8*3600,这样才是北京时间,之后再调用time模块,将秒数转化成常用的日期格式。
代码如下:
import network
import socket
ssid = '505'
password = '75057505'
nic = network.WLAN(network.STA_IF)
nic.active(True) #使能WLAN模块
nic.connect(ssid,password) #连接wifi
while nic.isconnected() != True: #判断是否连接成功
print('.')
time.sleep(1)
print(nic.ifconfig()) #输出ip地址
import ntptime
ntptime.host = "ntp.aliyun.com" #修改ntp服务器地址
ntptime.timeout = 3
#修改超时时间
sec = ntptime.time() #获取时间
print(sec)
import utime
print(utime.localtime(sec+8*3600))#转换为北京时间
运行结果如下