IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Node MCU / ESP8266运行Lua脚本从NTP服务器同步网络时间 -> 正文阅读

[嵌入式]Node MCU / ESP8266运行Lua脚本从NTP服务器同步网络时间


【注意】需要去掉中文注释后上传,否则可能无法上传或运行出错

【注意】以下代码基于3.0.0源代码编译的固件而编写,旧版本的固件可能无法运行


编写代码前的准备
ESP8266和Node MCU扫盲与开发入门





--NTP服务器列表,可百度到
NTP_SERVERS = { "ntp.aliyun.com",
                "time.asia.apple.com",
                "cn.ntp.org.cn",
                "time.windows.com",
                "cn.pool.ntp.org"
                }
                
--[[以下为WiFi连接配置--]]               
wifi.setmode(wifi.STATION)  --for when the device is connected to a WiFi router
station_config = {}
station_config.ssid = "你的2.4GWiFi名称"
station_config.pwd = "你的WiFi密码"
station_config.auto = true  --自动连接
wifi.sta.config(station_config)

--[[以下为NTP同步--]]
--同步成功处理
function StpSync_OK(sec, usec, server, info)
    print('ntp sync', sec, usec, server)
    Timer_SyncNTP:interval(3600000)--[[change registered timer's expiry interval, 初次校准成功后更改为每一小时校准一次 PS:参数最大值6870947 (1:54:30.947)--]]
end
--同步失败处理
function StpSync_Fail()
    print('ntp sync failed!')
end
--检查WiFi连接并输出
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)
        --[[sntp.sync()的第一个参数:服务器.可以是单个,也可以是{服务器列表}--]]
        --[[sntp.sync()的第二个参数,校时成功后已自动写入RTC寄存器,并调用此回调函数--]]
        --[[sntp.sync()的第三个参数,校时失败的处理--]]
    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扫盲与开发入门

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:46:05  更:2021-08-12 16:46:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:48:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码