在工业物联网(IIoT)和边缘计算场景中,MQTT(Message Queuing Telemetry Transport)协议以轻量、低延迟、高可靠性著称,被广泛应用于设备与云端之间的消息通信。本案例将结合BL118 边缘计算网关、Node-RED与libmosquitto客户端库,通过实战演示帮助你掌握 MQTT 的发布和订阅功能,并搭建网关与上位机之间的双向通信系统。
案例概览
使用 Node-RED 与 libmosquitto API 连接 MQTT Broker;在BL118 边缘计算网关和上位机之间实现消息的发布与订阅;熟悉 MQTT 主题配置、消息格式、客户端参数及调试方法。通过本案例,你可以快速了解 MQTT 在工业边缘计算中的应用方式,为后续 IoT 项目和数据采集系统开发奠定基础。
程序流程图
流程概览:BL118 通过 Node-RED 发布消息 → MQTT Broker 转发 → 上位机订阅消息,或反向操作。
测试环境准备
硬件环境
BL118 边缘计算网关:运行 Node-RED,支持以太网接口(ETH0 RGMII);上位机:Ubuntu 系统,安装 Mosquitto 客户端。
网络环境
使用网线将 BL118 千兆网口和上位机连接到同一局域网;确保网络可访问公网,用于连接公共 MQTT Broker。
公共 MQTT Broker 推荐
为了快速测试,可以使用以下在线 MQTT 服务器:
提示:不同 Broker 对 WebSocket 支持和安全证书策略不同,实际部署时可根据需求选择。
安装 Mosquitto 工具
Mosquitto是开源 MQTT 消息代理(Broker)软件,提供发布/订阅模式,支持轻量级消息推送。在 Ubuntu 系统上执行以下命令安装客户端工具:sudo apt-get install mosquitto-clients安装完成后,系统将具备 mosquitto_pub(发布消息)和 mosquitto_sub(订阅消息)命令,便于快速进行 MQTT 通信测试。
Node-RED 配置与导入节点
Node-RED 是一款图形化编程工具,适合 IoT 边缘计算和工业设备的数据流控制。
启动 MQTT 模块
打开 Node-RED,展开节点选项,找到mqtt模块;默认情况下,mqtt 模块已启动,如未启动,请手动启用。
导入示例节点文件
node-red-demos\node_red_mqtt\mqtt.json在 Node-RED 界面点击“菜单 → 导入 → 文件”,选择上述文件;
提示:导入节点前,请确保 Node-RED 已安装 MQTT 节点插件,否则导入会失败。
BL118 发布 / 上位机订阅
上位机订阅命令示例
mosquitto_sub -h broker.hivemq.com -p1883-t test/data-t:订阅主题,可自定义,例如 test/data。
发布消息
在 Node-RED 界面点击发布节点,BL118 向 test/data 主题发送消息;上位机将从 MQTT Broker 收到消息并在终端显示内容。
提示:消息格式支持文本、JSON 或二进制,根据需求选择合适类型。
上位机发布 / BL118 订阅
同样可以实现反向通信:上位机发布消息,BL118 订阅接收。
上位机发布命令示例
mosquitto_pub -h broker.hivemq.com -p1883-t test/data2 -m beilai
注意:BL118 订阅节点的主题需设置为 test/data2,否则无法接收消息。
通过此方式,BL118 即可接收到上位机发送的消息,实现双向数据通信。
常见问题与调试技巧
连接失败
消息无法接收
消息格式问题
案例总结
BL118 发布/订阅与上位机订阅/发布的双向通信;公共 MQTT Broker 的使用方法及调试技巧;
本案例适合用于物联网设备数据采集、工业网关开发及实时监控系统的验证和调试。
✅ 文章已详细说明环境搭建、命令解析、Node-RED 配置、发布/订阅流程及常见问题处理