USR-M300连接MQTT服务器Json下发写数据示例
备注:本案例是USR-M300内置卡联网,连接MQTT服务器,JSON下发写从机寄存器地址数据。
一、资料下载
USR-M300 说明书:http://www.ybljg.com/Download/1332.html
USR-M300 规格书:http://www.ybljg.com/Download/1333.html
USR-M300 应用指导:http://www.ybljg.com/Download/1369.html
【PC端调试工具】网络调试助手 串口调试助手二合一http://www.ybljg.com/Download/27.html
MODBUS SLAVE软件、MQTTfx软件,可以自己百度下载。
二、硬件连接
1、所需物品
USR-M300 产品 1台
12V电源适配器 1个
USB-RS485串口线 1条
超五类网线 1根
笔记本电脑 1台
2、硬件连接
USR-M300 接好4G天线,电源端子接12V电源适配,注意正负极不要接反。
USR-M300 的串口1的485接USB-RS485,A接A,B接B,USB口接电脑USB口。
USR-M300 的LAN口网线直连电脑。
接好线之后,产品接12V电源适配器上电。
3、端口号
点击电脑计算机,右击点击管理,点击设备管理器,点击端口,确认USB-RS485串口线的COM口号是COM10。
三、产品参数设置
1、登陆USR-M300网页
电脑打开浏览器,输入192.168.1.1,登陆USR-M300内置网页,用户名和密码都是admin。
2、数据点位:添加从机和点位
(1)点开数据点位,在从机一栏,点击添加。
(2)从机名称:device1,采集协议:Modbus_RTU,,从机开关打开,从机地址:1。
点击确定,等设置完所有参数,最后网页重启USR-M300。
(3)从机--点位列表,点击添加
(4)点位名称:data1(和后面上报数据都点位名称保持一致),寄存器功能码04,寄存器地址1(对应实际十进制寄存器地址0),读写状态读写,点击确定。
(5)再添加第二个点位,点位名称:data2(和后面上报数据的点位名称保持一致),寄存器功能码04,寄存器地址1(对应实际十进制寄存器地址0),读写状态读写,点击确定。
(6)添加完,可以列表检查
3、边缘网关:串口管理--串口01设置
串口01,基础设置,波特率9600,数据位,8,停止位1,校验位NONE。
实际应用,串口参数需要和所接485设备的串口参数一致,如果修改USR-M300串口参数之后,点击应用。
4、边缘网关:通信链路--链路1--MQTT参数设置
(1)点击链路1,打开链路1开关。
(2)基础设置
通信协议:MQTT
协议选择:MQTT-3.1.1
服务器地址:填USR-M300 连接的MQTT服务器地址IP
客户ID:自定义填1234567890,避免和其他连接MQTT服务器的客户端ID重复冲突。
远程端口:填USR-M300 连接的MQTT服务器的端口
其他参数保持默认。
点击应用。
(3)发布设置
点击发布设置,点击编辑,主题名称填/USR-M300/update
QOS:选择QOS0,点击确定,点击应用。
(4)订阅设置
点击订阅设置,点击编辑,主题名称填/USR-M300/get
QOS:选择QOS0,点击确定,点击应用。
5、协议转换设置Json
(1)点击协议转换,点击Json,开启Json
(2)开启Json之后点击添加
(3)链路选择链路1,发布主题/USR-M300/update,订阅主题/USR-M300/get
6、最后网页点击重启,等待USR-M300重启完成。
四、MQTTfx软件设置
1、打开MQTTfx软件
2、建一个新的配置文件做另一个MQTT客户端
(1)配置文件名自定义用MQTT
(2)服务器地址填和USR-M300连接的同一个MQTT服务器地址
(3)端口填MQTT服务器端口1883
(4)Client ID(客户端ID)可以点击后面的Generate自动创建,注意和USR-M300的客户端ID不要一样,如果相同会冲突。
(5)点击User Credentials,User NAME输入MQTT服务器的用户名,Password输入MQTT服务器的密码。
(6)所有参数设置完成之后,点击Apply应用。
3、MQTT.fx软件选择新建的客户端MQTT,点击Connect连接
五、MODBUS SLAVE软件设置
1、MODBUS SLAVE软件设置
(1)在电脑上安装Modbus Slave软件,点击Setup
Slave ID:1(从机地址测试用1)
Function: 03(读寄存器功能码)
Address:0(寄存器起始地址用0)
Quantity:2(从起始地址开始寄存器地址数量)
(2)Modbus Slave软件,点击Connection,选择Serial Port,选择对应的COM口COM10,对应USR-M300的串口参数波特率9600,最后点击OK。
六、MQTT服务器JSON下发写数据
1、MQTT服务器JSON下发写寄存器地址0数据10,写寄存器地址1数据20
MQTTfx软件,点击Publish,输入主题/USR-M300/get,发送区发送JSON格式命令,改变MODBUS SLAVE软件的寄存器地址数据。
发送区按照格式输入下发JSON格式命令:
{
"rw_prot": {
"Ver": "1.0.1",
"dir": "down",
"id": "12345",
"r_data": [{
"name": "date1"
},
{
"name": "date2"
} ] ,
"w_data": [{
"name": "date1",
"value": "10"
},
{
"name": "date2",
"value": "20"
} ]
}
}
2、MQTT服务器JSON下发写寄存器地址数据之后,MQTT服务器收到回复
MQTTfx软件,点击Subscribe,输入主题/USR-M300/update,点击主题后面的Subscribe接收回复数据。
回复JSON格式内容:
{
"rw_prot": {
"dir": "up",
"Ver": "1.0.1",
"id": "12345",
"w_data": [{
"name": "date1",
"value": "10",
"err": "0"
}, {
"name": "date2",
"value": "20",
"err": "0"
}],
"r_data": [{
"name": "date1",
"value": "10",
"err": "0"
}, {
"name": "date2",
"value": "20",
"err": "0"
}]
}
}
编写人:金志方 编写日期:2024-07-17
审核人:金志方 审核日期:2024-07-17
订正版本:V1.0 订正内容:初稿