MQTT网关连接华为云物联网平台应用
ZLAN5143D是一款专门为工业环境设计的RS485设备数据采集器/物联网网关,兼具串口服务器、Modbus网关、MQTT网关、RS485转JSON等多种功能于一体。如图 1所示,可以连接华为云的还有MQTT网关5144J、8308、8305、8305L、7144等型号
华为云物联网平台
设备接入服务(IoTDA)是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务。如图2所示:
进入华为云官网后,点击产品选项,下拉找到IoT物联网,选择物联网云服务,双击设备接入IoTDA,进入下一个页面
正常使用的时候需要购买使用,本次测试直接选择立即使用进入下一页面
这个页面主要需要的是产品,设备,平台接入地址,首先通过平台接入地址得到华为云mqtt服务器的域名和端口,得到域名为xxxxxx.iot-mqtts.cn-north-4.myhuaweicloud.com,(不同账号不同)端口号为1883;
域名,端口如图所示:
通过上一张图我们看到还需要设置的还有产品,设备两个选项,首先设置产品,点击创建产品,参数设置如图所示:
点击确定以后,出现产品列表,点击产品后面的查看按钮,出现如下页面:模型定义,在线调试,Topic管理,首先第一步需要自定义模型
添加服务,服务id等于说物模型id,这边我们设置的是wenshidu,是温湿度的拼音,服务类型和服务描述任意填
在刚刚添加的服务ID:wenshidu里面新增2个属性,因为采集的是温湿度,所以分别新增2个属性,分别是温度,湿度,2条属性详细设置如图所示
2条属性配置完以后,物模型已基本设置完毕,下面进入Topic管理页面
首先我们调用物模型的使用,需要用到的是设备属性相关Topic里面的$oc/devices/{device_id}/sys/properties/report,即设备上报属性数据,可以自定义topic,但是自定义主题无法调用物模型,不建议使用
到这步为止,产品相关的配置已完成,下面进入设备配置
选择单设备注册,相关配置如下图所示,务必记住密钥一定要保存好!!!
新建的设备如图所示,设备影子类似于物模型状态,消息跟踪类似于消息追踪,可以看到消息日志
使用VIRCOM软件点击设备管理,自动搜索到设备以后双击,进入如下页面,ip模式选择动态获取,工作模式选择TCP客户端,目的ip和端口为华为云物联网平台的ip和端口,具体的域名在第五页有!!不设置也没关系,设置mqtt参数就可以,然后点击固件与配置
首先需要新建文件夹,新建后配置mqtt参数和json配置,
服务器域名或者IP::xxxxxxxxx.iot-mqtts.cn-north-4.myhuaweicloud.com
具体的域名在第五页有!!!设备ID和密钥在第九页!!!
服务器mqtt端口:1883
用户名:通过设备ID和密钥计算
密码:通过设备ID和密钥计算
客户端ID:通过设备ID和密钥计算
订阅主题:$oc/devices/{device_id}/sys/properties/set/request_id={request_id}
发布主题:$oc/devices/{device_id}/sys/properties/report
{device_id}由实际的设备ID来代替!!!
下面为计算网页地址
https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
第一页总体设置如图所示:
具体配置页面JSON嵌套
固定字符串
上发josn格式示例:
{"services":[{"service_id":"wenshidu","properties":{"Temperature":23,"humidity":54},"eventTime":"2021-04-30 14:42:50"}]}
通过modbus slave模拟下位机温湿度传感器数据,站地址为1,寄存器是40001,40002,40001存放的温度的数据,40002存放的是湿度的数据
配置完成后,请点击下载,确保文件夹已经下载,观察指示灯状态LINK灯蓝色,ACTIVE灯闪烁
点击消息跟踪刷新后可以看到,平台收到设备的属性上报,并且影子刷新成功!!
通过概述页面可以看到最新的上报数据,温度为23度,湿度为54%,上报刷新间隔为6秒,可以通过我们的json里面的配置页面自定义!!!
JSON格式CSV格式
业务详情上发:
Device Id is:608b6b0ba6467502c03a7dc4_zlan000001,
topic is : $oc/devices/608b6b0ba6467502c03a7dc4_zlan000001/sys/properties/report, DatatoStringis
:{"services":[{"service_id":"wenshidu","properties":{"Temperature":23,"humidity":54},"eventTime":"2021-04-30 15:12:38"}]}