在阿里云物联网平台,设备被称作物模型,物模型包含了属性、事件和服务,我们希望上传的数据可以划分到属性里,然后采用物模型通信即可实现相关数据上传。有关物模型通信相关的官方介绍在https://help.aliyun.com/document_detail/127991.html
第一步,定义物模型属性
这个就是咱们希望上传什么数据,就去物模型里面自定义,官方给了很多模板,但是我还是喜欢在其基础上自定义一些的。上次在另一个文章我定义了的,大家可以参考那边的吧。今天咱们就直接用了,先用温度、湿度、信号强度三个数据实验。
https://developer.aliyun.com/article/769008?spm=a2c6h.13148508.0.0.53bc4f0euVDb6C
第二步,封装发送数据的topic
在产品详情里面有关于各个topic的简单说明,我们这里需要用到的只是第一个,设备属性上报。
原始格式:/sys/a1Dx4cundNG/${deviceName}/thing/event/property/post,类似于上次封装connect报文一样,这里需要简单修改替换一下里面的${deviceName},最后得到
/sys/a1Dx4cundNG/Liu_test_2/thing/event/property/post
第三步,封装上行数据内容
阿里物联网平台是按照(Alink JSON)格式上传数据的,有关这个格式说明我研究了好久才弄明白,大家可以参考这个。
https://help.aliyun.com/document_detail/89301.html
我先简单封装了一个温度上传的报文,大家测试的时候先别改,免得出错。
{
"method":"thing.event.property.post",
"params":{
"Temperature":27.84
}
}
第四步,导入MQTT.fx测试
首先按照上一篇笔记的方法登录,看到圆点变绿色,设备上线。然后在MQTT.fx客户端切换到publish界面,输入前两步获取到的topic和温度报文,点击publish就可以了。
同时在设备详情页面,打开“实时刷新”开关,可以看到温度数据变了,这就实现了一个数据上传了。
第五步,测试一次多个数据发送
在实际产品运行时,会有多个数据需要同时发送的,这个就是在报文里不断增加就可以了,刚刚我们实现了温度,接下来我们增加湿度和信号看看。
{
"method":"thing.event.property.post",
"params":{
"Temperature":27.84,
"Humidity":49.93,
"Rssi":23
}
}
看到规律了吧,就是在后面按照相同的格式增加就可以了,就是增加“名称:值”这样的组合就可以了,用逗号隔开。
发送后,在页面可以看到这三个数据同时更新了,成功。