?
一、NTP通信概述
很多場景中,由于業(yè)務(wù)需要,模塊需要保持正確的系統(tǒng)時鐘,才能正常工作。但是模塊上電后的初試時間戳是946713600(即2000/01/01,16:00:00),所以同步時鐘成為了開發(fā)者要解決的重要問題。對于Cat.1模塊,移動/電信卡,通常會下發(fā)基站時間,那么sntp就不是必要的,而聯(lián)通卡通常不會下發(fā),就需要sntp了。
NTP(NetworkTimeProtocol,網(wǎng)絡(luò)時間協(xié)議) 是用于同步系統(tǒng)時間的協(xié)議。它通過網(wǎng)絡(luò)連接多個設(shè)備,確保這些設(shè)備的系統(tǒng)時鐘保持一致。
本例程展示了如何使用SNTP授時服務(wù)來同步時間。
NTP和簡化版的SNTP主要區(qū)別在于精確度和復(fù)雜性。
SNTP(SimpleNetworkTimeProtocol)通常用于不需要高精度同步的設(shè)備,如嵌入式系統(tǒng)。而NTP則用于要求較高時間精度的場景。
二、演示功能概述
本demo將連接NTP服務(wù)器進行時間同步。
三、準(zhǔn)備硬件環(huán)境
3.1 Air780E開發(fā)板一套
3.2 PC電腦
WINDOWS系統(tǒng)。
3.3 SIM卡
請準(zhǔn)備一張可正常上網(wǎng)的SIM卡,該卡可以是物聯(lián)網(wǎng)卡或您的個人手機卡。
特別提醒:請確保SIM卡未欠費且網(wǎng)絡(luò)功能正常,以便順利進行后續(xù)操作。
3.4 數(shù)據(jù)通信線
typec接口USB數(shù)據(jù)線即可。
四、軟件環(huán)境
4.1 下載調(diào)試工具
使用說明參考Luatools下載和詳細(xì)使用
五、獲取NTP授時軟硬件資料
5.1 文檔和工具
- 780E模塊使用固件:SDK&Demo-合宙文檔中心,本demo使用的固件版本是:
LuatOS-SoC_V1112_EC618_FULL.soc - 本教程使用的demo:
https://gitee.com/openLuat/LuatOS-Air780E/tree/master/demo/sntp - 將固件和腳本燒錄到模塊中:Luatools下載和使用教程-合宙模組資料中心
- 源碼和固件已打包,如下所示:右鍵點我,另存為,下載完整壓縮文件包
5.2 demo使用api介紹
socket.sntp(sntp_server)
作用:sntp時間同步
傳入值類型 | 解釋 |
---|---|
string/table | sntp服務(wù)器地址選填 |
int | 適配器序號,只能是socket.ETH0(外置以太網(wǎng)),socket.LWIP_ETH(內(nèi)置以太網(wǎng)),socket.LWIP_STA(內(nèi)置WIFI的STA),socket.LWIP_AP(內(nèi)置WIFI的AP),socket.LWIP_GP(內(nèi)置蜂窩網(wǎng)絡(luò)的GPRS),socket.USB(外置USB網(wǎng)卡), 如果不填,優(yōu)先選擇soc平臺自帶能上外網(wǎng)的適配器,若仍然沒有,選擇最后一個注冊的適配器。 |
返回值
無
os.time(mytime)
作用:時間戳函數(shù)
參數(shù)
傳入值類型 | 解釋 |
---|---|
table | 日期時間的table |
return | 時間戳 |
返回值
無
os.date(fmt,time)
作用:日期函數(shù)
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | 格式化字符串,可以是nil |
table | 日期時間的table |
返回值
返回值類型 | 解釋 |
---|---|
table/string | 根據(jù)fmt的不同,返回值不同 |
json.encode(obj,t)
作用:將對象序列化為json字符串
參數(shù)
傳入值類型 | 解釋 |
---|---|
obj | 需要序列化的對象 |
string | 浮點數(shù)精度和模式,這項不存在的時候,為默認(rèn)值”7f”,數(shù)字只支持”0~14”,模式只支持”f/g” |
返回值
返回值類型 | 解釋 |
---|---|
string | 序列化后的json字符串,失敗的話返回nil |
string | 序列化失敗的報錯信息 |
json.decode(str)
作用:將字符串反序列化為對象
參數(shù)
傳入值類型 | 解釋 |
---|---|
string | 需要反序列化的json字符串 |
返回值
返回值類型 | 解釋 |
---|---|
obj | 反序列化后的對象(通常是table),失敗的話返回nil |
result | 成功返回1,否則返回0 |
err | 反序列化失敗的報錯信息 |
六、代碼示例
6.1 使用ntp服務(wù)器,同步時間
6.1.1 demo介紹
?
6.1.2 將程序下載到開發(fā)板
參考:將固件和腳本燒錄到模塊中:Luatools下載和使用教程-合宙模組資料中心
七、功能驗證
?
八、總結(jié)
本demo介紹了如何使用ntp服務(wù)器同步時間。
九、擴展
常見問題
9.1 多長時間ntp同步一次?
正常使用,一小時一次,已經(jīng)足夠了,甚至1天一次也可以。
9.2 ntp同步時間后,這個clock精度高嗎,需要多久同步一次?
并不能保證任何時間任何地點都能百分百同步到正確的時間。所以,如果用戶項目中的業(yè)務(wù)邏輯嚴(yán)格依賴于時間同步功能則不要使用本功能模塊,建議使用自己的應(yīng)用服務(wù)器來同步時間。
9.3 這個函數(shù)socket.sntp()后每次在程序中調(diào)用os.time也是實時時間了嗎?
是的,只要時間同步成功了,就是實時時間了。
?審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2927文章
45919瀏覽量
388375 -
NTP
+關(guān)注
關(guān)注
1文章
220瀏覽量
14352 -
sntp
+關(guān)注
關(guān)注
0文章
5瀏覽量
3790
發(fā)布評論請先 登錄
通過NTP獲取Epoch/Unix時間NTP代表網(wǎng)絡(luò)時間
求解關(guān)于AT ESP8266 無法實現(xiàn)NTP時間同步的問題?
NTP網(wǎng)絡(luò)時間服務(wù)器在大型局域網(wǎng)的同步技術(shù)
詳解 NTP網(wǎng)絡(luò)時間服務(wù)器:時間同步協(xié)議

NTP網(wǎng)絡(luò)時間服務(wù)器,實現(xiàn)安防系統(tǒng)時間同步

Linux上怎么配置NTP時間同步呢?
時間同步——NTP網(wǎng)絡(luò)時間服務(wù)器

京準(zhǔn)電鐘 | NTP網(wǎng)絡(luò)時間同步協(xié)議原理及其應(yīng)用介紹

解讀網(wǎng)絡(luò)時間協(xié)議NTP,帶你領(lǐng)略NTP的魅力!

以RK3568為例,ARM核心板如何實現(xiàn)NTP精準(zhǔn)時間同步?

NTP時間服務(wù)器校準(zhǔn)方法詳解

ntp時鐘同步服務(wù)器是什么?ntp時鐘同步服務(wù)器介紹

NTP時間同步服務(wù)器如何工作

評論