0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—MQTT通信协议案例

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-10-28 15:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MQTT通信协议简介

概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

MQTT是轻量、简单、开放和易于实现的,同时作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

wKgZPGiLCyOAds0OAADooUJlSSQ753.png图 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

wKgZPGkAbo2AXmYlAAG6iz_bCms163.png图 2

mqtt_client案例

案例说明

案例功能:使用libmosquitto(MQTT version 5.0/3.1.1)的API与MQTT代理服务器通信。基于MQTT通信协议,实现发布和订阅消息功能。

程序流程图如下图所示。

wKgZO2kAbpSAGISzAABYu4OiVW8567.png图 3

案例测试

本案例使用公网MQTTHiveMQ服务器与上位机Ubuntu Mosquitto工具通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。

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

wKgZO2kAbnaAGwVvAAAcLG33WIg054.png表 1

评估板启动,将案例bin目录下mqtt_client可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。

Target# ./mqtt_client --help

wKgZO2kAbqGAUWWoAAA30GMKPhs700.png图 4

评估板发布/上位机订阅

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

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

参数解析:

-h:指定MQTT服务器;

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

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

wKgZPGkAbqiAId31AAAfzrWilY8134.png图 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消息

wKgZO2kAbq-AeCS_AAAVRFeI44g687.png图 6 评估板发布

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

wKgZO2kAbraABf_uAAAmn1uoxBI805.png图 7 上位机订阅

评估板订阅/上位机发布

在评估板文件系统执行如下命令订阅MQTT主题。

Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M subscribe -t test/data

wKgZO2kAbr-ABgepAAAOK2xNJQM480.png图 8

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

Host# mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data -m www.tronlong.com

wKgZPGkAbsaARJ_cAAAuE_anuuE968.png图 9 上位机发布

消息发布成功后,评估板将从MQTT服务器接收到对应消息。

wKgZO2kAbtCANlw0AAAQQ7AfknE056.png图 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

wKgZO2kAbuOATuJoAACLlZvyGmM061.png图 11

修改的内容如下:

SDK_PATH = /home/tronlong/RK3588/rk3588_linux_release_v1.2.1 //设置LinuxSDK源码路径

wKgZO2kAbuqAbOafAAA4xIgek4I655.png图 12

执行如下命令,进行案例编译。编译完成后在当前目录下生成可执行文件。

Host# make CC=aarch64-linux-gnu-gcc

wKgZPGkAbvKAVCVCAAD1izCYJ9E805.png图 13

关键代码

1.创建Mosquitto实例。

wKgZO2iLC5OAKSR7AAAhBQhMBrk059.png图 14

2.设置回调函数。

wKgZPGiLC5uADjggAABIqgBm4Mc633.png图 15

3.连接MQTT服务器。

wKgZO2iLC6aAOVGfAAAqdRW6QWM976.png图 16

4.发布消息。

wKgZO2iLC8qAWclIAACEI8t_6ew838.png图 17

5.订阅主题。

wKgZPGiLC9WAM_L2AABO_K7Mv_M202.png图 18

mqtt_sinewave_pub案例

案例说明

案例功能:使用libmosquitto(MQTT version 5.0/3.1.1)的API与MQTT代理服务器通信。评估板生成正弦波数据,每秒发送512个采样点的数据至MQTT服务器;上位机通过Web页面从MQTT服务器接收到数据后,将会绘制波形。

程序流程图如下图所示。

wKgZPGkAbyCAZ_A1AACdlL7WtDw084.png图 19

案例测试

本案例使用公网MQTT HiveMQ服务器与上位机UbuntuWeb程序通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。

评估板启动,将案例bin目录下mqtt_sinewave_pub可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。

Target# ./mqtt_sinewave_pub --help

wKgZO2kAbyeAU5U1AAAmJeTA4mc040.png图 20

执行如下命令运行程序,连接MQTT服务器,并发送正弦波数据至MQTT服务器。

Target# ./mqtt_sinewave_pub -h broker.hivemq.com -p 1883

wKgZPGkAbzGACpB9AAAMkfKJhdY471.png图 21

评估板程序运行后,在上位机使用浏览器打开"toolsweb_mqtt_sub"目录下的index.html文件。在弹出的Web页面(如下图),依次输入MQTT服务器:broker.hivemq.com,端口号:8000,最后点击连接,Web页面将会从MQTT服务器获取正弦波数据并进行波形绘制。

备注:ARM端MQTT通信协议基于TCP协议,Web端MQTT通信协议基于WebSocket协议,因此使用的端口号不同。

wKgZO2iLC_qAJYCLAAAyUdltxHY440.png图 22

wKgZPGiLC_qAbsi2AAB9b8YVBpo454.png图 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

wKgZPGkAb0aAXbjFAACdltnqZj8140.png图 24

修改的内容如下:

SDK_PATH = /home/tronlong/RK3588/rk3588_linux_release_v1.2.1 //设置LinuxSDK源码路径

wKgZO2kAb0yABApvAAA43d5YdSA142.png图 25

执行如下命令,进行案例编译。编译完成后在当前目录下生成可执行文件。

Host# make CC=aarch64-linux-gnu-gcc

wKgZPGkAb1OAfH0uAAEPatcbp8I924.png图 26

关键代码

1.创建Mosquitto实例。

wKgZO2iLDBOAN2EWAABNqkC4ans553.png图 27

2.设置回调函数。

wKgZPGiLDBqAGVWNAAA2mLgg9UA618.png图 28

3.连接MQTT服务器。

wKgZO2iLDCGAETMzAAAqoeSLLd0043.png图 29

4.发送数据。

wKgZPGiLDCiAJdHvAACCB3KY_0U284.png图 30


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    26

    文章

    6525

    浏览量

    121405
  • 瑞芯微
    +关注

    关注

    27

    文章

    909

    浏览量

    54746
  • mqtt通讯协议

    关注

    0

    文章

    15

    浏览量

    3055
  • RK3588
    +关注

    关注

    8

    文章

    606

    浏览量

    7747
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3588开发板RK3588 EVB和RK3588S EVB解读

    RK3588开发板RK3588 EVB和RK3588
    的头像 发表于 09-22 15:54 2.4w次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b><b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解读

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器
    的头像 发表于 02-19 18:25 4665次阅读
    Banana Pi开源社区基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3588</b><b class='flag-5'>开发板</b>,DeepSeek<b class='flag-5'>开发</b>利器

    迅为RK3588开发板运行openkylin麒麟系统

    Android13系统 性能强--iTOP-3588开发板采用RK3588处理器,是全新一
    发表于 08-19 10:38

    迅为RK35883588S如何选型硬件区别

    S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片,搭载
    发表于 09-11 11:31

    探索巅峰性能 |迅为RK3588开发板/核心深度剖析

    基于RK3588处理器的开发板RK3588强悍的性能基础之上又做了哪些赋能?为什么会成为广大用户心中的首选? RK3588处理器-性能巅峰的心脏 ■ 极致的处理效能 基于先进架构设计
    发表于 09-25 11:15

    迅为RK3588开发板深度剖析丨首选的性能

    基于RK3588处理器的开发板RK3588强悍的性能基础之上又做了哪些赋能?为什么会成为广大用户心中的首选? RK3588处理器-性能巅峰的心脏 ■ 极致的处理效能 基于先进架构设计
    发表于 10-17 10:49

    迅为RK35883588S开发板/核心选型硬件的区别

    S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片,搭载
    发表于 12-20 15:40

    Banana Pi开源社区基于RK3588开发板,DeepSeek开发利器

    BPI-AIM7采用 RK3588,新一代旗舰64位处理器,主频高达
    发表于 02-19 18:27

    迅为iTOP-RK3588S开发板/核心RK3588S处理器6TOPS算力内置NPU

    性能强 iTOP-3588S开发板采用RK3588S处理器,是全新一代AloT高端应用芯片
    发表于 04-10 11:13

    迅为iTOP-3588开发板/核心

    性能强 iTOP-3588开发板采用RK3588处理器,是全新- -代AloT高端 应用芯
    发表于 04-16 17:02

    重磅!基于RK3588旗舰芯片打造的MinipcRK3588面世

    2.4GHz,集成高性能的CPU,极致性强。拥有强大的硬解码能力,强大的显示接口性能,以及多种网络连接方式。精湛工艺,稳定可靠,支持多操作系统,拥有丰富的扩展接口,搭配高性能RK3588
    发表于 04-04 17:14

    香蕉派 BPI-W3采用RK3588开源硬件开发板开发

    香蕉派 BPI-W3采用RK3588开源硬件开发板开发售 香蕉派BPI-W3
    发表于 04-24 09:29

    国产RK35882.4GHzAI 6T NPU 8K麒麟)工业核心规格书

    核心简介龙科技SOM-TL3588是一款基于RK3
    的头像 发表于 03-11 09:12 3758次阅读
    全<b class='flag-5'>国产</b>!<b class='flag-5'>RK3588</b>(<b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b>AI 6T NPU 8K麒麟)<b class='flag-5'>工业</b>核心<b class='flag-5'>板</b>规格书

    RK3588 国产2.4GHz 工业开发板—调试工具安装

    本文围绕龙科技研发的 RK3588 工业开发板
    的头像 发表于 09-16 14:35 1391次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—调试工具安装

    RK3588 国产2.4GHz 工业开发板—视频图像处理框架

    龙科技研发的 TL3588-EVM 评估依托 RK3588/RK3588J SoC 强大的视频图像处理能力,可满足多场景图像应用需求。为
    的头像 发表于 10-16 11:45 1896次阅读
    <b class='flag-5'>创</b><b class='flag-5'>龙</b> <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>国产</b><b class='flag-5'>2.4GHz</b><b class='flag-5'>八</b><b class='flag-5'>核</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—视频图像处理框架