创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—MQTT通信协议案例
MQTT通信协议简介
概述
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
MQTT是轻量、简单、开放和易于实现的,同时作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
图 1
MQTT具有如下特点:
1.轻量可靠:MQTT的报文格式精简、紧凑,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。
2.发布/订阅模式(Publish/Subscribe):发布/订阅模式的优点在于发布者与订阅者的解耦,实现异步协议。即订阅者与发布者无需建立直接连接,亦无需同时在线。
3.为物联网而生:提供心跳机制、遗嘱消息、QoS质量等级 + 离线消息、主题和安全管理等全面的物联网应用特性。
4.生态更完善:覆盖范围广,已成为众多云厂商物联网平台的标准通信协议。
应用场景
MQTT作为一种低开销,低带宽占用的即时通讯协议,可以极少的代码和带宽为联网设备提供实时可靠的消息服务,适用于硬件资源有限的设备及带宽有限的网络环境。常见的应用场景如下:
1.物联网M2M通信,物联网大数据采集。
2.移动即时消息及消息推送。
3.智能硬件、智能家居、智能电器。
4.车联网通信,电动车站桩采集。
5.智慧城市、远程医疗、远程教育。
6.电力能源、石油能源。
Mosquitto工具安装
Mosquitto是一款开源的MQTT消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模式。我司提供的评估板文件系统已支持Mosquitto工具,本文mqtt_client案例采用Mosquitto工具演示MQTT通信协议的通信功能。由于上位机Ubuntu系统作为通信对象,因此需在Ubuntu终端执行如下命令安装Mosquitto工具,出现提示时输入"Y"并按下回车即可。
Host# sudo apt-get install mosquitto-clients
图 2
mqtt_client案例
案例说明
案例功能:使用libmosquitto(MQTT version 5.0/3.1.1)的API与MQTT代理服务器通信。基于MQTT通信协议,实现发布和订阅消息功能。
程序流程图如下图所示。
图 3
案例测试
本案例使用公网MQTTHiveMQ服务器与上位机Ubuntu Mosquitto工具通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。
下表提供了可用的在线公共MQTT服务器,可根据需要自行切换。
表 1
评估板启动,将案例bin目录下mqtt_client可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。
Target# ./mqtt_client --help
图 4
评估板发布/上位机订阅
在上位机执行如下命令,使用mosquitto_sub工具订阅MQTT主题。
Host# mosquitto_sub -h broker.hivemq.com -p 1883 -t test/data
参数解析:
-h:指定MQTT服务器;
-p:指定MQTT服务器TCP端口;
-t:定义MQTT主题,可自定义命名。
图 5
在评估板文件系统执行如下命令发布消息至MQTT服务器。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M publish -t test/data -m 'www.tronlong.com'
参数解析:
-h:MQTT服务器
-p:MQTT服务器端口
-M:模式,publish为发布,subscribe为订阅
-t:MQTT主题,可随便命名
-m:发布的MQTT消息
图 6 评估板发布
消息发布成功后,上位机将从MQTT服务器接收到对应的消息。
图 7 上位机订阅
评估板订阅/上位机发布
在评估板文件系统执行如下命令订阅MQTT主题。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M subscribe -t test/data
图 8
在上位机执行如下命令发布消息至MQTT服务器。
Host# mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data -m www.tronlong.com
图 9 上位机发布
消息发布成功后,评估板将从MQTT服务器接收到对应消息。
图 10 评估板订阅
案例编译
将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考《Debian系统使用手册》编译过LinuxSDK。在案例src目录执行如下命令,配置交叉编译工具链环境变量,并修改Makefile文件。
Host# export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH
Host# vimMakefile
图 11
修改的内容如下:
SDK_PATH = /home/tronlong/RK3588/rk3588_linux_release_v1.2.1 //设置LinuxSDK源码路径
图 12
执行如下命令,进行案例编译。编译完成后在当前目录下生成可执行文件。
Host# make CC=aarch64-linux-gnu-gcc
图 13
关键代码
1.创建Mosquitto实例。
图 14
2.设置回调函数。
图 15
3.连接MQTT服务器。
图 16
4.发布消息。
图 17
5.订阅主题。
图 18
mqtt_sinewave_pub案例
案例说明
案例功能:使用libmosquitto(MQTT version 5.0/3.1.1)的API与MQTT代理服务器通信。评估板生成正弦波数据,每秒发送512个采样点的数据至MQTT服务器;上位机通过Web页面从MQTT服务器接收到数据后,将会绘制波形。
程序流程图如下图所示。
图 19
案例测试
本案例使用公网MQTT HiveMQ服务器与上位机UbuntuWeb程序通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。
评估板启动,将案例bin目录下mqtt_sinewave_pub可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。
Target# ./mqtt_sinewave_pub --help
图 20
执行如下命令运行程序,连接MQTT服务器,并发送正弦波数据至MQTT服务器。
Target# ./mqtt_sinewave_pub -h broker.hivemq.com -p 1883
图 21
评估板程序运行后,在上位机使用浏览器打开"toolsweb_mqtt_sub"目录下的index.html文件。在弹出的Web页面(如下图),依次输入MQTT服务器:broker.hivemq.com,端口号:8000,最后点击连接,Web页面将会从MQTT服务器获取正弦波数据并进行波形绘制。
备注:ARM端MQTT通信协议基于TCP协议,Web端MQTT通信协议基于WebSocket协议,因此使用的端口号不同。
图 22
图 23
案例编译
将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考《Debian系统使用手册》编译过LinuxSDK。在案例src目录执行如下命令,配置交叉编译工具链环境变量,并修改Makefile文件。
Host# export PATH=/home/tronlong/RK3588/rk3588_linux_release_v1.2.1/extra-tools/gcc-linaro-10.2.1-2021.01-x86_64_aarch64-linux-gnu/bin:$PATH
Host# vimMakefile
图 24
修改的内容如下:
SDK_PATH = /home/tronlong/RK3588/rk3588_linux_release_v1.2.1 //设置LinuxSDK源码路径
图 25
执行如下命令,进行案例编译。编译完成后在当前目录下生成可执行文件。
Host# make CC=aarch64-linux-gnu-gcc
图 26
关键代码
1.创建Mosquitto实例。
图 27
2.设置回调函数。
图 28
3.连接MQTT服务器。
图 29
4.发送数据。
图 30
审核编辑 黄宇
- 创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—MQTT通信协议案例
- 详解示波器的三大关键指标
- 中微爱芯开漏输出比较器AiP322X系列产品概述
- 闲鱼平台获取商品详情API接口
- AutoSec Europe 2026 第二届欧洲汽车网络安全与数据安全峰会启动报名!
- 中国移动董事长杨杰:聚力“人工智能+”行动,赋能新型工业化发展
- 从井下5.5G到DeepSeek矿山安全大模型 中国电信携前沿科技亮相第十九届煤博会
- 我国生成式人工智能用户规模实现翻一番
- 从概念愿景到工程就绪:维谛携手NVIDIA推进800 VDC 平台设计,助力下一代AI工厂建设
- 中兴通讯亮相2025PT展,以全栈创新筑基数智未来
- 终端未来的秘方就是你,高通为你构造专属生态系统
- 信通院发布《量子计算发展态势研究报告(2025年)》
- 移路有AI | 移远通信亮相中国移动合作伙伴大会,联合发布多项5G-A×AI创新成果
- 中国移动携中试基地(制造领域汽车方向)
- OpenAI 携手博通打造首款自研 AI 芯片:算力达 10 吉瓦级,2026 年下半年开始推进研发
- 解决罗德与施瓦茨MXO44示波器新探头量程不匹配的实用指南