阿里云 MQTT 协议学习总结(二)

写在前面: 最近开始熟悉了wifi模块介入MQTT协议的一些认证方法和通信格式,本篇主要介绍影子设备和Json文档。欢迎大家共同交流,QQ:993650814.

 

正文:

一、

阿里云 MQTT 协议学习总结(一)

二、影子设备

    1、影子设备就是一个Json文档,用于存储设备上报状态,或者应用端期望状态信息。

   2、每个设备有且只有一个影子设备,设备可以通过MQTT获取和设置自己对应的影子设备以此来达到设备跟影子设备的同步。

  3、应用端也可以通过获取或设置影子设备,来达到获取设备最新状态或者下发期望状态的作用。

三、设备影子数据流

  1、物联网平台为为每个设备定义了两个Topic,来实现数据流转

  (1)、topic/shadow/update/${productKey}/${deviceName}  设备和应用程序发送消息到此Topic,物联网平台收到消息后,会将消息中的状态更新到影子设备中。

  (2)、topic/shadow/get/${productKey}/${deviceName}  设备影子更新状态到此Topic,设备订阅此Topic的消息后,就会收到此Topic发过来的消息。

2、下面以灯泡举例,productkey:10000;deviceName:lightbulb,设备以QoS=1发布订阅定义的两个Topic,举例说明设备、设

备影子以及应用程序之间的通信。

第一步、设备主动上报状态:

 当灯泡联网后,设备使用Topic/shadow/update/10000/lightbulb上报最新消息到影子设备,Jason格式如下:

第二步、设备影子接收到灯泡上报的消息后,更新Jason文档

第三步,影子设备更新状态后,会返回结果给灯泡,发送消息到 topic /shadow/get/10000/lightbulb,灯泡订阅此Topic。

  若更新成功,发送到Topic的消息为:

更新失败,发送到Topic的消息:

 

2、应用程序改变设备状态

第一步、 应用程序发送消息到 Topic  /shadow/update/10000/lightbulb/中,消息码流如下:

  

第二步、设备影子更新文档,为

第三步、设备影子更新完成后,交给消息发送到topic/shadow/get/10000/lightbulb中,返回结果给设备。消息如下:

第四步、灯泡在线,并且订阅了topic/shadow/get/10000/lightbulb,就会收到消息,并根据请求文档中desired的值更新状态,将灯泡颜色变成绿色。

第五步、更新完之后,发消息到topic/shadow/update/10000/lightbulb中上报最新状态,消息如下:

第六步、上报状态成功后,设备影子会同步更新,此时的影子文档如下:

3、 设备主动获取影子设备内容

第一步、灯泡获取设备影子中保存的灯泡最新状态,发送固定消息到topic/shadow/update/10000/lightbulb中,具体的消息如下:

第二步、当设备影子收到这条消息时,发送消息到topic/shadow/get/10000/lightbulb中,灯泡订阅该topic,获得消息,消息内容如下:

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KiranWang

一起努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值