加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

解读 ARMxy 嵌入式工业计算机上 MQTT 通信协议的卓越案例

09/24 08:33
595
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

MQTT 通信协议案例

1 案例说明

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

程序流程图如下

2 案例测试

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

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

 2

服务器名称 Broker地址 TCOPP端口 web socket
HiveMQ broker.hivemq.com 1883 8000
Mosquitto test.mosquitto.org 1883 80
Eclipse mqtt.eclipseprojects.io 1883 80/443
EMQX(国内) Broker-cn.e mqx.io 1883 8083/8084

1 )Mosquitto   工具安装

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

Host#    sudo apt-get install mosquitto-clients

 

2) 设备发布/上位机订阅

设备启动,执行 node-red 程序,将上位机登录到node-red 部署系统。 node-red 自带 mqtt 通信协议模块,执行以下操作,启用mqtt 模块。

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

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

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

参数解析:

-h:  指定 MQTT 服务器;

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

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

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

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

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

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

  设备发布

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

  上位机订阅

3) 上位机订阅/设备发布

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

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

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

  上位机发布

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

  设备订

相关推荐

电子产业图谱