RS485与MQTT透传示例
一、目标
网关开发板(内置 RS485 与以太网接口,运行网关程序)
RS485 电表 dds1079(或等效设备)
客户电脑(用于网页配置 + MQTT 客户端)
MQTT 服务器(可以是公网的 broker.emqx.io,也可以是客户自建)
二、设备连接
准备一根 RS485 通讯线 (A/B 两芯,或差分线)。
将 RS485 接线端子与网关的 RS485 接口对应连接:
电表 A ↔ 网关 A2
电表 B ↔ 网关 B2
电表GND↔ 网关GND
确认电表和网关都上电正常:
电表显示屏/指示灯正常;
网关电源指示灯、RUN 指示灯正常。
三、网口连接
先通过网线将主机和开发板连接,通过静态ip,192.168.137.81进入网址首页找到MAC地址并记住。
进入主机cmd命令端,输入命令arp -a | find /i “c6-72-27-3c-73-e1”来找到
在网站中输入命令端进入网页
三、网页配置
设备列表配置
参数说明
interface (接口名称)
含义 :该采集任务的唯一识别名。
说明 :建议设置为设备型号或安装位置(如 dds1079 ),方便在日志和数据平台中区分不同的设备。
status (启用状态)
含义 :该任务的开关。
说明 :设置为 enabled 表示立即开始采集;设置为 disabled 表示暂时停止该任务。
command (采集指令)
含义 :发送给物理设备的原始指令报文。
说明 :通常为十六进制格式(Hex)。例如,图中是一串读取电表数据的 Modbus 或 DL/T 645 协议指令。
period (采集周期)
含义 :两次采集之间的时间间隔。
说明 :单位为 毫秒 。例如设置为 1000 表示每隔 1 秒钟向设备发送一次指令。
action (处理动作)
含义 :获取到设备回传数据后的处理方式。
说明 :常用 forward (转发),表示将采集到的原始数据直接转发给服务器或云平台。
object (物理端口)
含义 :指令通过哪个硬件接口发出去。
说明 :例如 uart2 代表开发板上的第 2 个串口(通常对应板子上的 RS485 接口)。
format (数据格式)
含义 :通信时使用的数据编码形式。
说明 : hex 代表十六进制(工业设备最常用);也可以根据需求配置为 string (字符串)或 json 。
示例:
串口列表配置
参数说明
interface (接口名称)
含义 :该串口配置的内部识别名。
说明 :通常命名为 uart1 、 uart2 等,用于在其他配置中引用此串口。
status (启用状态)
含义 :是否激活该串口。
说明 : enabled 为开启, disabled 为关闭。若不使用该串口,建议关闭以节省资源。
device (设备路径)
含义 :硬件串口在 Linux 系统中的物理地址。
说明 :例如 /dev/ttyS1 。这直接对应开发板上的某个物理接线端子,通常无需用户修改。
baud_rate (波特率)
含义 :串口通信的传输速率。
说明 :必须与连接的外部设备一致。常见值有 9600 、 115200 等。
data_bits / stop_bits / parity (数据位/停止位/校验位)
含义 :串口通信的基础底层协议参数。
说明 :工业标准通常为 8 位数据位、 1 位停止位、 none (无)校验。需根据外部设备手册进行匹配。
flow_control (流控)
含义 :数据传输的流量控制方式。
说明 :通常设置为 none 。除非设备明确要求硬件或软件流控,否则不建议开启。
udelay (微秒延迟)
含义 :串口读写操作后的强制等待时间。
说明 :单位为 微秒 。用于适配一些响应较慢的老旧工业设备,通常设置为 0 。
action / object (处理动作/转发对象)
含义 :串口收到数据后的去向。
说明 :例如 action 为 forward , object 为 server1 ,表示串口收到的所有原始数据都会立即转发给配置好的服务器。
format (数据格式)
含义 :数据的表现形式。
说明 : string 代表文本字符串形式, hex 代表十六进制原始字节。
示例
MQTT列表配置
参数说明
interface (接口名称)
含义 :该 MQTT 连接的唯一识别名。
说明 :用于区分不同的云平台连接(如 mqtt1 、 mqtt2 )。
status (启用状态)
含义 :是否开启此 MQTT 连接。
说明 :设置为 enabled 后,开发板会尝试连接云端服务器。
serverURL (服务器地址)
含义 :MQTT 服务器(Broker)的域名或 IP 地址。
说明 :例如 broker.emqx.io 。这是数据上报的目的地。
clientId (客户端 ID)
含义 :开发板在云端的“身份证号”。
说明 :必须保证在同一个服务器上是唯一的,通常用于云平台识别具体的网关设备。
username / password (用户名 / 密码)
含义 :连接云平台所需的身份验证凭据。
说明 :如果服务器开启了安全认证,需在此填写正确的账号密码。
topic_sub (订阅主题)
含义 :开发板“听”哪个频道。
说明 :开发板会监听此主题,用于接收来自云端的远程控制指令。
topic_pub (发布主题)
含义 :开发板“说”哪个频道。
说明 :开发板采集到的所有数据都会通过这个主题发布到云端。
payload (测试负载)
含义 :默认的发送内容。
说明 :通常用于心跳包或测试连接是否正常。
qos (服务质量)
含义 :消息传输的可靠性等级。
说明 :可选 0 (最多一次)、 1 (至少一次)、 2 (只有一次)。工业场景建议设为 1 。
timeout (超时时间)
含义 :网络响应等待时间。
说明 :单位为 毫秒 。在网络环境较差时,可适当调大此值。
action / object / format (处理动作 / 转发对象 / 数据格式)
含义 :云端指令下发后的去向。
说明 :例如 action 为 forward , object 为 uart2 , format 为 hex 。这意味着:云端下发的 MQTT 消息会自动转换成十六进制,并从 RS485 串口发给现场设备。
示例
完成这三个列表的修改后本次示例的网页配置完成,下一步对串口调试工具进行配置
四、电脑
MQTT客户端配置
服务器地址:例如 broker.emqx.io 或客户自建 IP
Port: 1883 (若无特殊说明)
username/password:可以默认为:admin和public
Client ID:一定不要和配置文件中的clientid一致,否则开发板的clientid会被踢掉