使用MQTT.fx对接华为物联网平台——实践操作过程

网友投稿 2673 2022-05-29

根据参考文档实现,个人能力有限,如有不足或者错误之处,请批评指正。

参考文档:开发文档 。

实践简述:通过MQTT.fx工具,以MQTT协议接入华为物联网平台。给大家分享一下过程总结。

目录

一、平台创建设备

获取ip地址

创建MQTT产品

注册设备

二、安装MQTT.fx、生成连接信息

安装MQTT.fx工具

获取鉴权信息

三、与平台连接

一、平台创建设备

进入iot物联网->设备管理->立即使用,即可进入物联网平台控制台

首先查看自己的应用和设备接入地址。保存自己的MQTT的协议地址以及端口号即可。(用于建立TCP连接)


创建MQTT产品

a.在快捷操作中,点击“创建产品”进入"IoT Platform"界面

b.点击“新增产品模型”进行MQTT模型添加(即创建产品)


点击手动创建,填入自己相应的信息即可(用于测试,可以随意填入)


注册设备

在左侧导航栏中,选择设备->设备注册,在设备注册页面点击“+创建”,进行设备添加。

注意:设备识别码可以随意填入,但是要求唯一。

完成后,记得保存自己的设备ID以及密码哦。

至此,平台端设备创建完成。可在IoT Platform页面查看设备相关信息。


二、安装MQTT.fx、生成连接信息

参考:鉴权信息

安装MQTT.fx

访问 MQTT.fx下载网页,下载并安装MQTT.fx(最新版本即可)。

运行mqttfx.exe即可。


获取鉴权信息

a.通过jar工具生成

下载 工具jar包,然后在相应目录的cmd运行jar包 (java -jar 包名.jar)

填入刚刚保存的设备ID以及密码,即可生成

注意:cmd一定要是对应的jar包目录;需要java环境。

b.自己手动生成

当自己没有java环境时,可以手动生成。一定要参考官方文档。

clientId : 设备ID_0_0_当前时间戳(如:2020040821);

username :设备ID

password采用的是“HMACSHA256”加密,密钥为时间戳(如:2020040821),当然,我们设置的是不检验时间戳的正确性,但时间戳不能少。

三、与平台连接

当以及获取鉴权信息后,即可通过MQTT协议接入华为物联网平台。

打开MQTT.fx,填入相关信息。

完成后,点击Connect,即可连接。

查看平台设备信息,显示在线,成功接入。

注意:本次没有进行时间戳校验,因此接入相对简单容易。

四.Pulish

(1)Pulish,顾名思义就是发布主题。连接MQTT服务器后,发布自己的消息主题,可推送给订阅者。

(2)三种服务质量等级

注:??为16进制消息体

华为云物联网平台不支持QoS2。个人认为,应该是Qos2没有必要,占用资源多,且数据可以通过软件判断是否到达。

上报数据示例:

{     "services": [{             "service_id": "Temperature",             "properties": {                 "value": 23             },             "event_time": "20151212T121212Z"         },         {             "service_id": "Battery",             "properties": {                 "level": 80             },             "event_time": "20151212T121212Z"         }     ] }

(3)在华为云物联网平台操作注意事项

发布的topic需要有固定的开头,形式为$oc/devices/{device_id}/sys/properties/report。

device_id:设备ID

分隔符用"/"

五.Subcribe

Subcribe的操作和Pulish差不多。只不过是订阅别人的主题。当订阅的topic有消息发布时,服务器会推送给订阅者。

同理,也和publish一样有Qos0,Qos1,Qos2。

使用华为云物联网平台,订阅topic时,topic名称是$oc/devices/{device_id}/sys/command/#。

六.retain

使用MQTT.fx对接华为物联网平台——实践操作过程

注:华为物联网平台不支持retian msg

retain,即持久消息,消息一直保留在服务器上,不仅推送给当前订阅者,且当此后有新的订阅者订阅时,也是推送此消息。

也就是可以让新的订阅者获取上一次的topic信息。

七.will

注:华为物联网平台不支持will

will,遗嘱。

当设备与服务器建立连接时约定好了遗嘱消息,服务器会存储此消息。当客户端异常断开(非自动断开)时,会向服务端发送约定好的遗嘱消息。

最后,再说一遍(踩坑经验),设备通过MQTT协议接入华为IoTDA后,topic格式需要是固定的,用户不能自定义,不然设备订阅/发布topic时会出错。

设备接入 IoTDA IoT 设备管理 IoTDM

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:css选择器
下一篇:SVG精髓阅读笔记
相关文章