记录设备接入阿里云的过程
三,下发命令
上一篇写了上传数据,今天继续分享如何从云平台下发命令控制终端设备
1,添加功能,要实现新的事件第一件事还是在阿里云添加功能
还是添加一个自定义功能,就是个开关功能选布尔型就可以
2,接下来直接就是修改代码了
设备是如何获取我们下发的命令的呢?阿里云使用的是mqtt协议,所以我们就用到了mqtt协议的一个很重要的功能--主题订阅。在阿里云里就是Topic订阅。
我们可以看到在我们的产品Topic列表里有一条是用于设备属性设置的,我们就是用这个Topic下发命令到设备,设备订阅这个Topic对消息解析即可
代码的具体修改
根据api我们可以在demo里找到如下代码,结合上面说的,我们需要修改订阅topic为我们产品的
订阅了主题接下来就是对命令解析了
问题来了,阿里云到底给我们的设备发送了什么呢?第一种方法是去翻阿里的产品文档,另一种是更直观的方法直接在产品里选择调试功能,然后云平台模拟命令下发(也就是阿里云的属性设置)
其中的MessageParams的内容就是云平台下发的数据,把转义符去一下也就是这样一条json数据,很明显我们需要的就PowerSwitch的值
MessageParams:{ "method":"thing.service.property.set", "id":"189921488", "params":{"PowerSwitch":0}, "version":"1.0.0" }"
怎么把这个值取出来呢,既然是json数据那肯定还是json数据操作
根据api修改代码
然后烧录代码,去阿里云调试设备下发开关指令,可以看到我们成功的控制了一盏灯的开关
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!