前言
MQTT客户端上传数据到阿里云服务端,并且能将数据显示出来。在此之前,我们先要懂得阿里云给设备管理划分的概念。首先是产品,所以在产品里要配置内容,产品下的设备才可以使用,比如主题大类都是在产品里面就可以查看的,再由设备利用自身专属的DeviceName之类来做到每个设备通道独立。
产品是设备的集合,通常是一组具有相同功能定义的设备集合。例如,产品指同一个型号的产品,设备就是该型号下的某个设备。使用物联网平台接入设备前,您需在物联网平台控制台创建产品。本文介绍创建产品的具体操作。 ——阿里云文档
下面是阿里云官方的文档介绍,看明白了几乎就不用看我的了。
阿里云文档—模拟上报设备数据
准备材料
关于产品的创建,和产品下的设备创建就不在介绍了,默认大家都创建好了。我演示步骤中产品为 Demo
,该产品下的设备为 MQTTX
。这篇文章有部分篇章讲了产品和设备的创建【阿里云物联网】ESP01+阿里云)。当然跟着阿里云文档的教程走也是个不错的选择阿里云文档—创建产品和设备。
- MQTTX软件(代替客户端来发送消息,MQTTX下载链接)
- 需要基本了解MQTT的基础,因为有部分内容,客户端登录之类的默认大家都懂,就不在重复。
操作步骤
产品添加模块功能
-
打开
产品
信息页,进入功能定义
选项卡,点击前往编辑草稿
。 -
点击
添加自定义功能
,在输入功能名称后,如果是一些常见的模板,它也会提示是否要自动补全完其它项,不满意的话也可以在自行调整。填写完之后记得,点确定。如果也添加多个,那就重复该步骤即可。 -
目前这里的只是草稿,添加后之后,点击
发布上线
。可以先查看版本前后的比对结果,无误后在勾选,也可以直接勾选后,确定上线。这样,就能在产品下的功能定义,看到刚才添加的内容了。我们目前的添加了温度这个属性,还有记住定义的标识符为temperature
(后面在客户端在传输温度数据时会有到)
在上述的操作中,给该产品添加了温度属性,这样一来该产品下的每个设备都会有温度的模块了。
设备功能信息
-
点击到
设备
页面,确保设备是刚才所添加的属性下的产品,点击查看。在选择选择物模型数据
,就能看到温度模块在这里等待数据了(我这里有数据是因为我之前调试过了,正常的刚才是没有任何数据的) -
可以勾选上
实时刷新
,等下客户端来数据,这里就能立马刷新了。
MQTTX客户端
利用MQTTX来模拟客户端发送验证,在实际的情况中,大家可能使用单片机+联网模块来做客户端或者其它情况。
-
拿到设备信息,去MQTTX建立连接。
-
可以看到产品这里,属性要上报的主题为
/sys/k0yo34u8Cim/${deviceName}/thing/event/property/post
,因为这里是MQTTX设备要上报属性,所以发送主题应为/sys/k0yo34u8Cim/MQTTX/thing/event/property/post
。建立连接,发送信息到产品的设备属性上报主题。 -
MQTTX客户端连接(连接参数在步骤1已经配置好了),发送内容(AJSON格式,可以参考:菜鸟教程—JSON),设置属性。可以看到在客户端发送后,设备也同步更新属性了。
设备属性更新格式,基于params对象下:
{ "params": { 属性标识符1:数据1, 属性标识符2:数据2 } }
本文就这么多了,其实介绍的可能只是冰山一角吧,大家有时间也可以去探讨下,其它主题的功能和作用。和其它的功能,比如还有在线调试器之类的。也可以多看看阿里云官方的文档。