摘要:在机智云自助开发平台开发一款智能设备有很多在线工具快速实现,若需要获取时间,依靠MCU本身自带的时钟比较麻烦,是否可以直接使用函数调用外界时间呢?机智云有什么API可以用来获取网络时间呢?
答案是有这么一个函数gizwitsGetNTP( )可以获取网络时间,我们机友用这个函数实现了水墨画定时控制系统、节点的时间同步、采集地震的波形时进行每个节点的数据同步。
[ 什么是NTP网络协议]
网络时间同步现在有2种同步协议NTP和PTP,NTP与PTP不同在于时间戳的产生位置。NTP是通过软件来记录协议相关网络包的发出和到达时刻,受操作系统影响很大(系统约忙,延时越大)。同步精度优于10ms。
什么是NTP网络协议
NTP时间服务器是一个简单的常用的服务器,工作中我们只要做到会用就行,能搭建起来就可以了,不用太去深入研究ntp时间服务器的原理。
为什么需要NTP服务,主要原因有两个
实际业务需求中由于两台server的时间不一致。导致漏数据。损失巨大,被user批的不行不行的。还好IT有一台 server 专门用来校时,使用机智云平台开发物联网设备时,通常使用使用gizwtisGetNTP函数来实现。
什么是准确的
为什么不能直接使用格林威治时间
什么是新的标准时间
获取的方式
[ gizwitsGetNTP函数 ]
基于机智云的物联网设备开发如何进行获取NTP网络时间,参考方式有两种
1)视频教学操作版:https://b23.tv/av61558323
特点:此方法通俗易懂,代码添加原理、修改位置均知道
准备材料:机智云自助开发平台账号、开发版、机智云APP
作用:节点的时间同步、采集地震的波形时进行每个节点的数据同步,调用gizwisGetNTP函数即可实现。
第一步:需要配网成功才能获取精确时间 (配网成功返回一个值,添加一个标志位和变量,记住当前是否联网的状态)。
第二步:调用gizwitsGetNTP函数时不能一直调用,所以我们这里设置两个定时器,(定时器初始化和一秒钟的时间值)。
第三步:在中断函数中编写相关代码(联网成功时请求获取时间、以及打印时间的函数)。
第四步:将程序编译,无问题,则将程序下载到开发版中。
第四步:打开机智云APP,进行配网,配网成功后,可以在XCOM中查看打印出的时间。
2)水墨画定时控制系统之Gokit时间获取及其分析:http://club.gizwits.com/thread-8037-1-1.html
3)MCU请求网络时间例程:http://club.gizwits.com/thread-4088-1-1.html
4)Arduino获取网络时间:http://club.gizwits.com/thread-165362-1-1.html
原文:https://www.cnblogs.com/dapangsen/p/11416066.html