【得捷电子Follow me第1期】任务3:同步网络时间
[复制链接]
PICO W带有一颗无线模块,型号为Infineon CYW43439,具体如下图。
wifi模块由network模块控制,下面讲下具体代码函数作用。
WLAN为构造一个WIFI对象,STA_IF为作为sta,即连接热点。
active函数为是否激活wifi
connect函数连接wifi,括号给定wifi名称和wifi密码。
ifconfig函数返回wifi的基本信息。
测试的是我办公的wifi。
代码如下:
import network
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("TP-LINK_F84C","56788765")
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
time.sleep(1)
print(wlan.ifconfig())
串口wifi信息:
时间用到ntptime,具体可以参考论坛作者,链接如下:https://bbs.eeworld.com.cn/thread-1239327-1-1.html
选择ntp服务器,选择时间类型,选择服务器,最后更新时间,我这里用字符串连接起来。
import network
import ntptime
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("TP-LINK_F84C","56788765")
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
time.sleep(1)
print(wlan.ifconfig())
if wlan.status() != 3:
raise RuntimeError('network connection failed')
else:
print('connected')
status = wlan.ifconfig()
print( 'ip = ' + status[0] )
def sync_ntp():
ntptime.NTP_DELTA = 3155644800 # 可选 UTC+8偏移时间(秒),不设置就是UTC0
ntptime.host = 'ntp1.aliyun.com' # 可选,ntp服务器,默认是"pool.ntp.org"
ntptime.settime() # 修改设备时间,到这就已经设置好了
sync_ntp()
# 已经设置好了,随便用
from machine import RTC
rtc = RTC()
print(rtc.datetime())
print(str(rtc.datetime()[0])+"年"+str(rtc.datetime()[1])+"月"+str(rtc.datetime()[2])+"日"+str(rtc.datetime()[3])+":"+str(rtc.datetime()[4])+":"+str(rtc.datetime()[5]))
串口输出如下:
|