0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Air724UG低功耗模组软件的NTP示例!

青山老竹农 ? 来源:jf_82863998 ? 作者:jf_82863998 ? 2024-12-09 09:54 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇文章说的是Air724UG低功耗模组软件的NTP,我以整理成示例供大家快速参考。

一、简介

网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS 等等)做同步化,它可以提供高精准度的时间校正(LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP 的目的是在无序的 Internet 环境中提供精确和健壮的时间服务。

二、演示功能概述

教程教你如何使用开发板功能模块采用多个免费公共的 NTP 服务器来同步时间,但并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能,则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间。

三、准备硬件环境

3.1 开发板准备

使用 EVB_Air724 开发板,如下图所示:

wKgZPGdRKQuAFrG3ABM9b6AqitY012.png

此核心板的详细使用说明参考:
https://docs.openluat.com/air724ug/product/

Air724UG 产品手册中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。

api文档:
https://doc.openluat.com/wiki/21?wiki_page_id=2068

3.2 数据通信线

USB 数据线一根(micro USB)。

3.3 PC 电脑

WIN7 以及以上版本的 WINDOWS 系统。

3.4 SIM

中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。

3.5 组装硬件环境

USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。

wKgZPGdRKRuAfuq5AArWK44TnjA139.png

四、准备软件环境

4.1 下载调试工具

使用说明参考:
Luatools下载和详细使用
https://docs.openluat.com/Luatools/

4.2 源码及固件

1) 底层 core 下载

下载底层固件,并解压

链接:
https://docs.openluat.com/air724ug/luatos/firmware/

如下图所示,红框的是我们要使用到的

wKgZO2dRKSuAaw6_AAVZomy_b0A086.png

2) 本教程使用的 demo 见附件:

https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/ntp

4.3 下载固件和脚本到开发板中

打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。

wKgZPGdRKTaAJUEJAAQE-eFk40U217.png

点击项目管理测试选项。

wKgZO2dRKUKAFlCxAAEWnd-Ga38945.png

进入管理界面,如下图所示。

wKgZPGdRKU6AelUsAAOxUHBsQ2k790.png

点击选择文件,选择底层固件,我的文件放在 D:luatOSAir724 路径中

wKgZO2dRKVmAVfpCAACPIcE4jfM646.png

点击增加脚本或资源文件,选择之前下载的程序源码,如下图所示。

wKgZO2dRKWiAS8CIAALJhFOdOIc818.png

点击下载底层和脚本,下载完成如下图所示。

wKgZPGdRKXKAI29DAAFtZOfh5ts307.png

五、代码示例介绍

5.1 API 说明

ntp.timeSync(period, fnc, fun)

ntp 同步时间任务.

重要提醒!!!!!!

本功能模块采用多个免费公共的 NTP 服务器来同步时间,

并不能保证任何时间任何地点都能百分百同步到正确的时间。

所以,如果用户项目中的业务逻辑严格依赖于时间同步功能,

则不要使用本功能模块,建议使用自己的应用服务器来同步时间。

wKgZPGdRKYCAMuSVAAMJYk2uMdc075.png

例子

wKgZO2dRKa-AVn66AAGrRCJf59A106.png

5.2 testNtp.lua 代码

调用 ntp.timeSync()接口同步时间。ntp.timeSync()#同步一次时间

注意:本功能模块采用多个免费公共的 NTP 服务器来同步时间并不能保证任何时间任何地点都能百分百同步到正确的时间所以,如果用户项目中的业务逻辑严格依赖于时间同步功能则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间

调用 misc.getClock()接口获取系统时间

wKgZO2dRKbyAFWJuAAHZ1vSl9V8143.png

wKgZPGdRKc2ABZR9AARk2a7pKLg634.png

wKgZO2dRKdqACLpZAAB0D4GWZ6g383.png

5.3 main.lua 代码

本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,等待网络连接成功,然后加载 NTP 测试模块。

六、开机调试

6.1 开发板开机

连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。

wKgZPGdRKeqAb0Q8AALEGk1tAVU140.png

6.2 NTP 调试

开机启动后,ntp.timeSync()#同步一次时间,然后每隔一秒调用 misc.getClock()接口获取系统时间。

wKgZPGdRKfiAedn7AAYgZXX7XlI488.png

七、常见问题

7.1 os.time()返回值,需不需要特别加载模块?

返回从 1970 年 1 月 1 日到指定日期的时间的秒数,无参数表示当前时间。不需要添加操作,直接可以获取。

os.date 这个 api 只支持 os.date(“*t”) 这样用,不能 os.date(‘%Y-%m-%d %H:%M:%S’) 这样用?

是的,不支持。可以按如下方式处理

wKgZO2dRKgOAJQurAAD76I_Nzw8660.png

7.2 ntp 同步时间后,这个 clock 精度高吗,需要多久同步一次

并不能保证任何时间任何地点都能百分百同步到正确的时间。所以,如果用户项目中的业务逻辑严格依赖于时间同步功能 则不要使用本功能模块,建议使用自己的应用服务器来同步时间。

7.3 ntp.timeSync(24,fnc)时间同步说明

立即同步一次,之后每隔 24 小时自动同步一次,每次同步结束后执行 fnc(time,result)

7.4 ntp.timeSync() 请问这个函数是异步执行的还是执行完成之后,其后的代码才会执行?

获取时间是通过 sys.taskInit 创建一个时间任务来同步时间的,模块会随机尝试访问每一个 NTP 服务器,尝试 1 次,如果成功,如果不需循环同步时间,则退出当前线程,运行别的代码,否则同通过 sys.wait(period)挂起当前任务循环同步时间,运行别的代码,时间到之后重新运行当前任务。如果失败,通过 sys.wait(1000)挂起当前任务 1 秒,运行别的代码,1 秒时间到,在尝试访问下一个服务器,循环操作,直到同步时间成功,或服务器全部访问结束,之后按照成功之后的动作执行。

7.5 有个这个函数后 ntp.timeSync(1) 每次在程序中调用 os.time 也是实时时间了吗?

是的,只要时间同步成功了,就是实时时间了。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2933

    文章

    46461

    浏览量

    395443
  • 低功耗
    +关注

    关注

    12

    文章

    2838

    浏览量

    105213
  • NTP
    NTP
    +关注

    关注

    1

    文章

    233

    浏览量

    14583
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    分步实操 | Air724UG低功耗模组软件中复刻高效FTP示例

    本文要说的是低功耗4G模组Air724UG软件中复刻高效FTP示例,我已整理成文供大家参考。
    的头像 发表于 12-03 11:45 ?1231次阅读
    分步实操 | <b class='flag-5'>Air724UG</b><b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>中复刻高效FTP<b class='flag-5'>示例</b>!

    air724ug开发板

    air724ug开发板,最近购买了一块4G开发板来玩玩,做个开发记录开发板采用合宙Air724UG模块作为主控,没有外挂其它单片机,原来的2/4G模块都是通过AT指令串口外挂单片机,此模块本身带有
    发表于 07-22 07:25

    STM32+Air724UG基本控制篇

    Air724UG,4G Cat.1全网通③基本外设:液晶OLED(IIC); RGB三色灯;温湿度传感器(DHT1...
    发表于 08-20 06:09

    Air724UG模块及其硬件接口规范

    1. 绪论本文档定义了Air724UG模块及其硬件接口规范,电气特性和机械细节,通过此文档的帮助,结合我们的应用手册和用户指导书,客户可以快速应用Air724UG模块于无线应用。2.综述2.1
    发表于 11-11 06:44

    Air724UG是什么

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Air724UG是什么?二、AT是什么?三、服务器是什么?四、我们要做什么?五、我们该怎么做?0.准备工作1·连接模块
    发表于 12-13 07:07

    AIR724UG模块AT指令响应时间发送指令后一定要等回复吗

    AIR724UG模块AT指令响应时间发送指令后必须等待回复,然后才能进行下一个指令操作。
    发表于 03-02 06:20

    怎么解决通过air724ug获取位置信息后通过mqtt发送到云端遇到的问题

    我想通过air724ug模块获取定位后,在通过mqtt发送到云端,但是查询了位置信息之后mqtt就断了 我是通过串口发送AT指令来获取位置信息的 软件包用的是at_device下的air720,mqtt用的是pahomqtt
    发表于 04-27 11:41

    缘起Air724UG,Cat.1网红“猫”到物联网行业应用经典之选

    提起Air724UG,总让人想起2020年的春天。群雄竞起,各大模组厂商纷纷涌入激荡的4GCat.1市场。相比之下,合宙Cat.1产品上市不算早,却以“发布即量产,用产品说话”的独有风格宣告开启物
    的头像 发表于 08-31 09:55 ?3353次阅读
    缘起<b class='flag-5'>Air724UG</b>,Cat.1网红“猫”到物联网行业应用经典之选

    Air724UG软件:ADC功能的创意展示

    今天我将对Air724UG软件的ADC功能做出详细示例,大家可以先收藏,再慢慢细读,绝对有收获。
    的头像 发表于 11-17 09:53 ?864次阅读
    <b class='flag-5'>Air724UG</b><b class='flag-5'>软件</b>:ADC功能的创意展示

    4G模组Air724UG软件示例:UDP实战演练!

    关于4G模组Air724UG软件的UDP示例,今天我将对其实战演练,整理成文示例展示:
    的头像 发表于 11-26 12:10 ?637次阅读
    4G<b class='flag-5'>模组</b><b class='flag-5'>Air724UG</b><b class='flag-5'>软件</b><b class='flag-5'>示例</b>:UDP实战演练!

    4G模组Air724UG软件教程:KEYPAD示例

    本回我要说的是低功耗4G模组Air724UG的KEYPAD示例,我已整理成文,特供大家参考。
    的头像 发表于 11-30 09:44 ?806次阅读
    4G<b class='flag-5'>模组</b><b class='flag-5'>Air724UG</b>的<b class='flag-5'>软件</b>教程:KEYPAD<b class='flag-5'>示例</b>!

    藏箱子里Air724UG模组LuatOS开发的HTTP示例

    今天我们来学习的是我珍藏已久的低功耗模组Air724UG的LuatOS开发HTTP示例,献给大家。
    的头像 发表于 11-30 09:42 ?765次阅读
    藏箱子里<b class='flag-5'>Air724UG</b><b class='flag-5'>模组</b>LuatOS开发的HTTP<b class='flag-5'>示例</b>!

    低功耗模组软件的UDP示例 基础教程篇

    本文以常用的低功耗4G模组Air724UG为例,做出关于低功耗模组软件的UDP
    的头像 发表于 12-02 14:53 ?733次阅读
    <b class='flag-5'>低功耗</b><b class='flag-5'>模组</b><b class='flag-5'>软件</b>的UDP<b class='flag-5'>示例</b>   基础教程篇

    轻松攻克低功耗4G模组软件的FTP示例

    今天是以Air724UG模组为例,轻松攻克低功耗4G模组软件的FTP示例
    的头像 发表于 12-05 09:08 ?699次阅读
    轻松攻克<b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>软件</b>的FTP<b class='flag-5'>示例</b>!

    解读Air724UG低功耗4G模组软件的语音通话!

    本篇文章以Air724UG模组为例,解读低功耗4G模组软件的语音通话,呈现实用教程供大家参考。
    的头像 发表于 12-09 09:39 ?1348次阅读
    解读<b class='flag-5'>Air724UG</b><b class='flag-5'>低功耗</b>4G<b class='flag-5'>模组</b><b class='flag-5'>软件</b>的语音通话!