阿里云物联网平台高级功能之NTP时钟同步

概述

物联网平台提供NTP服务,解决嵌入式设备资源受限,系统不包含NTP服务,端上没有精确时间戳的问题。
物联网平台借鉴NTP协议原理,将云端作为NTP服务器。设备端发送一个特定Topic给云端,payload中带上发送时间。云端回复时在payload中加上云端的接收时间和发送时间。设备端收到回复后,再结合自己本地当前时间,得出一共4个时间。一起计算出设备端与云端的时间差,从而得出端上当前的精确时间。

本文通过MQTT.fx模拟设备端进行功能测试,工具接入请参考MQTT.fx接入物联网平台使用说明

使用说明

  • 相关Topic
  1. /ext/ntp/${YourProductKey}/${YourDeviceName}/request
  2. /ext/ntp/${YourProductKey}/${YourDeviceName}/response
  • 时间戳格式
    {"deviceSendTime":"1571724098000"}

说明
1.时间戳数字的格式,支持Long和String。默认为Long类型。
2.NTP服务目前仅支持QoS=0的消息。

示例

  • 通过MQTT.fx模拟设备成功和平台进行连接
    阿里云物联网平台高级功能之NTP时钟同步
  • 设备端订阅Topic:/ext/ntp/${YourProductKey}/${YourDeviceName}/response
    阿里云物联网平台高级功能之NTP时钟同步
  • 设备端向Topic:/ext/ntp/${YourProductKey}/${YourDeviceName}/request 发送一条QoS=0的消息,payload中带上设备当前的时间戳,单位为毫秒。
    {"deviceSendTime":"1592361428000"}

阿里云物联网平台高级功能之NTP时钟同步

  • 设备端收到服务端回复的消息
    {"deviceSendTime":"1592361428000","serverSendTime":"1592366463548","serverRecvTime":"1592366463548"}

阿里云物联网平台高级功能之NTP时钟同步

  • 设备端计算出当前精确的unix时间
    设备端收到服务端的时间记为${deviceRecvTime},则设备上的精确时间为:(${serverRecvTime} + ${serverSendTime} + ${deviceRecvTime} - ${deviceSendTime}) / 2

官方文档

请参考:NTP服务

上一篇:MQTT.fx接入物联网平台使用说明


下一篇:物联网数据分析服务之数据开发API使用说明