GPRS连接阿里云物联网平台三

记录设备接入阿里云的过程

三,下发命令

上一篇写了上传数据,今天继续分享如何从云平台下发命令控制终端设备

1,添加功能,要实现新的事件第一件事还是在阿里云添加功能

还是添加一个自定义功能,就是个开关功能选布尔型就可以

GPRS连接阿里云物联网平台三_第1张图片

2,接下来直接就是修改代码了

设备是如何获取我们下发的命令的呢?阿里云使用的是mqtt协议,所以我们就用到了mqtt协议的一个很重要的功能--主题订阅。在阿里云里就是Topic订阅。

GPRS连接阿里云物联网平台三_第2张图片

我们可以看到在我们的产品Topic列表里有一条是用于设备属性设置的,我们就是用这个Topic下发命令到设备,设备订阅这个Topic对消息解析即可

代码的具体修改

GPRS连接阿里云物联网平台三_第3张图片

根据api我们可以在demo里找到如下代码,结合上面说的,我们需要修改订阅topic为我们产品的

 

GPRS连接阿里云物联网平台三_第4张图片

订阅了主题接下来就是对命令解析了

问题来了,阿里云到底给我们的设备发送了什么呢?第一种方法是去翻阿里的产品文档,另一种是更直观的方法直接在产品里选择调试功能,然后云平台模拟命令下发(也就是阿里云的属性设置)

GPRS连接阿里云物联网平台三_第5张图片

其中的MessageParams的内容就是云平台下发的数据,把转义符去一下也就是这样一条json数据,很明显我们需要的就PowerSwitch的值

 

MessageParams:{
"method":"thing.service.property.set",
"id":"189921488",
"params":{"PowerSwitch":0},
"version":"1.0.0"
}"

怎么把这个值取出来呢,既然是json数据那肯定还是json数据操作

GPRS连接阿里云物联网平台三_第6张图片

根据api修改代码

GPRS连接阿里云物联网平台三_第7张图片

然后烧录代码,去阿里云调试设备下发开关指令,可以看到我们成功的控制了一盏灯的开关

GPRS连接阿里云物联网平台三_第8张图片

你可能感兴趣的:(阿里云)