【注意】需要去掉中文注释后上传,否则可能无法上传或运行出错
【注意】以下代码基于3.0.0源代码编译的固件而编写,旧版本的固件可能无法运行
编写代码前的准备 ESP8266和Node MCU扫盲与开发入门
NTP_SERVERS = { "ntp.aliyun.com",
"time.asia.apple.com",
"cn.ntp.org.cn",
"time.windows.com",
"cn.pool.ntp.org"
}
wifi.setmode(wifi.STATION)
station_config = {}
station_config.ssid = "你的2.4GWiFi名称"
station_config.pwd = "你的WiFi密码"
station_config.auto = true
wifi.sta.config(station_config)
function StpSync_OK(sec, usec, server, info)
print('ntp sync', sec, usec, server)
Timer_SyncNTP:interval(3600000)
end
function StpSync_Fail()
print('ntp sync failed!')
end
function ConnectCheck()
if (wifi.sta.getip() == nil) then
print("wifi Connecting...")
else
print("wifi Connected, IP is "..wifi.sta.getip())
end
end
function NtpSync()
if (wifi.sta.getip() == nil) then
print("wifi Connecting...")
else
print("wifi Connected, IP is "..wifi.sta.getip())
sntp.sync(NTP_SERVERS, StpSync_OK, StpSync_Fail)
end
end
function printTime()
tm = rtctime.epoch2cal(rtctime.get() + 8 * 3600)
print(string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"]))
end
Timer_ConnectCheck = tmr.create()
Timer_ConnectCheck:register(1000, tmr.ALARM_AUTO, ConnectCheck)
Timer_ConnectCheck:start()
Timer_SyncNTP = tmr.create()
Timer_SyncNTP:register(5000, tmr.ALARM_AUTO, NtpSync)
Timer_SyncNTP:start()
Timer_Print = tmr.create()
Timer_Print:register(1000, tmr.ALARM_AUTO, printTime)
Timer_Print:start()
同步网络时间的代码
wifi Connecting...
1970/01/01 08:00:00
1970/01/01 08:00:00
1970/01/01 08:00:00
1970/01/01 08:00:00
1970/01/01 08:00:00
wifi Connected, IP is 192.168.43.202
1970/01/01 08:00:00
1970/01/01 08:00:00
1970/01/01 08:00:00
ntp sync 1628678432 98286 17.253.84.125
2021/08/11 18:40:32
2021/08/11 18:40:33
2021/08/11 18:40:34
运行结果uart输出
WiFi连接路由器API之设置模式
WiFi连接路由器API之配置WIFI
定时器API – 创建定时器
定时器API – 注册定时器
定时器API – 更改定时器触发间隔
SNTP获取到的一般是UTC时间
RTC – 获取时间戳
RTC – 时间戳转年月日
更多API查询官方API文档
ESP8266和Node MCU扫盲与开发入门
|