ARMxy 嵌入式工业计算机中 MQTT 通信协议的典型案例文档

MQTT   通信协议案例

1   案例说明

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

程序流程图如下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2   案例测试

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

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

  2

服务器名称

Broker地址

T COPP端口

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 i nstall 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-red\node_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 服务器接收到对应消息。

 

    设备订



请使用浏览器的分享功能分享到微信等