ARMxy工控机使用Node-Red教程:通过MQTT发布订阅到EMQX、Mosquitto(7)

  1. MQTT 通信协议案例

6.1 案例说明

案例功能:使用node-red工具与libmosquitto(MQTT version 3.1.1 client library) 的API通过MQTT代理服务器通信。基于MQTT通信协议,实现发布和订阅消息功能。

程序流程图如下图所示。

图 86

6.2 案例测试

本案例使用设备node-red工具与上位机 Ubuntu Mosquitto 工具通信。请通过网线将设备ETH1、上位机连接至公网,确保可正常访问互联网。

下表提供了可用的在线公共 MQTT 服务器,可根据需要自行切换。

表 2

服务器名称

Broker 地址

TCP 端口

WebSocket

HiveMQ

broker.hivemq.com

1883

8000

Mosquitto

test.mosquitto.org

1883

80

Eclipse

mqtt.eclipseprojects.io

1883

80/443

EMQ X(国内)

Broker-cn.e mqx.io

1883

8083/8084

6.2.1 Mosquitto 工具安装

Mosquitto 是一款开源的 MQTT 消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模式。本文node_mqtt.json案例采用node-red与 Mosquitto 工具演示 MQTT 通信协议的通信功能。由于上位机 Ubuntu系统作为通信对象,因此需在 Ubuntu 终端执行如下命令安装 Mosquitto 工具。

Host# sudo apt-get install mosquitto-clients

图 87

6.2.2 设备发布/上位机订阅

设备启动,执行node-red程序,将上位机登录到node-red部署系统。

node-red自带mqtt通信协议模块,执行以下操作,启用mqtt模块。

图 88

展开节点选项,往下拉启动mqtt模块。(默认启动)

图 89

图 90

在上位机执行如下命令,使用mosquitto_sub工具订阅MQTT主题。

Host# mosquitto_sub -h broker.hivemq.com -p 1883 -t test/data

参数解析:

-h: 指定 MQTT 服务器;

-p: 指定 MQTT 服务器 TCP 端口;

-t: 定义 MQTT 主题,可自定义命名。

图 91

为便于测试,我司提供的经验证的 MQTT通信协议为案例“ node-red\node_red_mqtt\ ”目录下的 mqtt.json 文件。请参考上方“导入节点文件”步骤导入对应节点文件。

导入文件成功后,点击右上角部署按钮,启动程序。

图 92

成功连接上设备后,显示设备已连接。

图 93

执行以下操作,发布消息至 MQTT 服务器。

图 94 设备发布

消息发布成功后,上位机将从 MQTT 服务器接收到对应的消息。

图 95 上位机订阅

6.2.3 上位机订阅/设备发布

在上位机执行如下命令发布消息至 MQTT 服务器。

Host# mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data2 -m beilai

备注:订阅主题更改为test/data2。

图 96 上位机发布

消息发布成功后,node-red将从 MQTT 服务器接收到对应消息。

图97 设备订阅

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值