基于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转换。
|