ESP8266 SDK开发: 物联网篇-ESP8266连接阿里云物联网平台使用自定义Topic实现自定义数据的上报和数据下发
前言
上一节测试了用调试助手连接上阿里云物联网平台,
这一节学习一下阿里云提供的自定义Topic上报数据和监听下发数据.
所谓自定义Topic是阿里云给咱规定了一个这样子的主题;
用这个主题可以发送随意的数据.
了解一下阿里云规定的Topic
1.点击产品,查看
2.阿里云提供了三种类型的Topic(基础通信,物模型,自定义)
Topic就是设备MQTT订阅和发布的主题,云平台已经规定好了咱设备订阅和发布的主题
后面 操作权限 写的发布的就是说你可以用这个主题发布消息
后面 操作权限 写的订阅就是说设备可以订阅这个主题
基础通信Topic是实现具体功能时需要用到的Topic,
列如远程升级相关的订阅和发布的主题;
注:主题里面都有一个 a1m7er1nJbQ/${deviceName}
一个产品下 a1m7er1nJbQ (ProductKey) 是一样的
后面 ${deviceName} 是咱在产品下面添加设备的时候的设备的名字.
我的设备名字是Mqtt
那么组合起来就是 a1m7er1nJbQ/Mqtt
每一个设备根据设备的名字区分了主题.
设备上报固件版本
设备通过以下发布的主题上报固件版本
/ota/device/inform/${YourProductKey}/${YourDeviceName}
我的就是:/ota/device/inform/a1m7er1nJbQ/Mqtt
物联网平台推送固件信息
设备需要订阅以下主题来获取固件下载地址等信息
/ota/device/upgrade/${YourProductKey}/${YourDeviceName}
。
设备上报升级进度
设备可以通过这个Topic上报固件升级的进度百分比。
/ota/device/progress/${YourProductKey}/${YourDeviceName}
。
2.物模型通信Topic
1.物模型Topic是阿里云平台提供了一个用网页展示设备端数据的模型
设备发送的数据可以在平台上展示.
2.点击设备的物模型数据
如果想把数据传输到这个上面显示,就需要用物模型提供的主题
(这个会在下节使用)
3.自定义Topic是阿里云平台提供的可以发送随意消息的主题
阿里云默认提供了上面三个主题.
用户也可以点击上面的定义Topic类,添加自己的设备订阅和发布的主题
用该主题可以发送随意的消息,发送的消息在云平台上没有任何效果.
只能在调试模式下看到.这种消息需要自己去做规则处理以后才有实际的价值.(后面的章节会用到)
下面以阿里与默认提供的Topic说明
自定义topic 规定的设备订阅的主题
/${YourProductKey}/${YourDeviceName}/user/update
/${YourProductKey}/${YourDeviceName}/user/update/error
我的组合起来就是:
/a1m7er1nJbQ/Mqtt/user/update 和 /a1m7er1nJbQ/Mqtt/user/update/error
自定义topic 规定的设备发布的主题
/${YourProductKey}/${YourDeviceName}/user/get
我的组合起来就是
/a1m7er1nJbQ/Mqtt/user/get
下载测试
1.根据自己的设置以下信息
2.修改为自己的路由器信息
3.下载以后注意看打印的信息,连接了路由器,连接了MQTT,并在发布消息
4.首先去云平台先看一下上报的数据
说一下哈,咱使用的自定义发布的主题
咱的上报的数据是在设备的 日志服务 中看
5.云平台控制继电器吸合和断开
可以在设备的Topic列表中查看设备已经订阅的主题
{"data":"switch","bit":"1","status":"1"}
{"data":"switch","bit":"1","status":"0"}
程序说明
1.程序和上一节相比,增加了阿里云提供的自定义的订阅和发布的主题
2.接入服务器之后订阅主题
3.使用自定义的主题上报温湿度数据
4.解析服务器下发的数据