使用GPRS至RS485协议转换器 实现MQTT至MODBUS转换
2019-07-04 14:34:48 来源:华启易通
基于GPRS至RS485协议转换器MQTT至MODBUS转换.实现MODBUS-RTU协议的温湿度变送器接入网络平台。
前段时间有用户咨询MODBUS至MQTT协议转换,今天就把基于GPRS至RS485协议转换器实现MQTT至MODBUS转换的过程分享一下。
1.准备工作
要实现MQTT至MODBUS转换要用到的硬件设备有
a.GPRS至RS485协议转换器1台
b.遵循MODBUS协议的温湿度变送器1台
c.DC24V电源1台
d.连线若干
协议转换器和温湿度变送器连接好后实物图片如下:
2.用到的软件准备
a.GPRS至RS485协议转换器的配置程序
b.MQTT客户端测试程序MQTT.fx-1.7.0-windows
c.MQTT客户端测试程序org.eclipse.paho.mqtt.utility
d.验证数据的Python程序
3.配置协议转换的参数
我们需要使用配套的软件配置一下参数便于收发MDOBUS数据和MQTT协议数据。
这里我们使用了Eclipse公共MQTT Broker进行测试,服务器地址iot.eclipse.org,端口使用标准的1883.使用了两个主题,订阅了CR120_0571/tx,用来接收其它MQTT客户端发送的消息。发送PUB数据到CR120_0571/rx.x,下面我们配置MQTT客户端参数的时候要用到这几个参数。
4.下载和安装MQTT客户端程序
首先从以下地址下载MQTT.fx-1.7.0程序,依据使用的操作系统下载对应的版本。
下载成功后,双击安装即可。
5.使用MQTT客户端程序收发数据
打开MQTT-fx程序,并配置MQTT Broker参数,主要是地址,和端口号。
订阅对应转换器的主题。
使用MQTT客户端程序(同时打开MQTT.fx和org.eclipse.paho.mqtt.utility)收发数据,GPRS至RS485协议转换器联网后会主动发送Pub消息,当没有MODBUS数据是发送设备名称。这里显示的是CR120_0571(十六进制显示43 52 31 32 30 5F 30 35 37 31).
使用org.eclipse.paho.mqtt.utility发送温湿度变送器需要的MODBUS指令(十六进制内容:01 03 00 00 00 01 C4 0B),温湿度会把相应数据发送给转换器,转换器发送Pub消息到服务器。
下面是使用Python程序验证数据收发的记录,
这里可以看到温湿度变送的MODBUS响应数据为01 03 04 01 16 01 7c 1a 7a是完全正确的MODBUS数据,
6.总结
至此使用GPRS至RS485协议转换器实现了MQTT至MODBUS转换。
1.准备工作
要实现MQTT至MODBUS转换要用到的硬件设备有
a.GPRS至RS485协议转换器1台
b.遵循MODBUS协议的温湿度变送器1台
c.DC24V电源1台
d.连线若干
协议转换器和温湿度变送器连接好后实物图片如下:
2.用到的软件准备
a.GPRS至RS485协议转换器的配置程序
b.MQTT客户端测试程序MQTT.fx-1.7.0-windows
c.MQTT客户端测试程序org.eclipse.paho.mqtt.utility
d.验证数据的Python程序
3.配置协议转换的参数
我们需要使用配套的软件配置一下参数便于收发MDOBUS数据和MQTT协议数据。
这里我们使用了Eclipse公共MQTT Broker进行测试,服务器地址iot.eclipse.org,端口使用标准的1883.使用了两个主题,订阅了CR120_0571/tx,用来接收其它MQTT客户端发送的消息。发送PUB数据到CR120_0571/rx.x,下面我们配置MQTT客户端参数的时候要用到这几个参数。
4.下载和安装MQTT客户端程序
首先从以下地址下载MQTT.fx-1.7.0程序,依据使用的操作系统下载对应的版本。
下载成功后,双击安装即可。
5.使用MQTT客户端程序收发数据
打开MQTT-fx程序,并配置MQTT Broker参数,主要是地址,和端口号。
订阅对应转换器的主题。
使用MQTT客户端程序(同时打开MQTT.fx和org.eclipse.paho.mqtt.utility)收发数据,GPRS至RS485协议转换器联网后会主动发送Pub消息,当没有MODBUS数据是发送设备名称。这里显示的是CR120_0571(十六进制显示43 52 31 32 30 5F 30 35 37 31).
使用org.eclipse.paho.mqtt.utility发送温湿度变送器需要的MODBUS指令(十六进制内容:01 03 00 00 00 01 C4 0B),温湿度会把相应数据发送给转换器,转换器发送Pub消息到服务器。
下面是使用Python程序验证数据收发的记录,
这里可以看到温湿度变送的MODBUS响应数据为01 03 04 01 16 01 7c 1a 7a是完全正确的MODBUS数据,
6.总结
至此使用GPRS至RS485协议转换器实现了MQTT至MODBUS转换。