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

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

3天内不再提示

国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—MQTT通信协议案例

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-07-31 14:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本指导文档适用开发环境:

Windows开发环境:Windows 7 64bit、Windows 10 64bit

虚拟机:VMware15.5.5

Linux开发环境:Ubuntu18.04.4 64bit

LinuxSDK:T113_Tina5.0-V1.0(Linux)

U-Boot:U-Boot-2018.07

Kernel:Linux-5.4.61、Linux-RT-5.4.61

本文主要介绍创龙科技TLT113-EVM评估板基于MQTT通信协议开发案例,主要包括mqtt_client案例和mqtt_sinewave_pub案例,位于产品资料“4-软件资料Demomqtt-demos”目录下。

MQTT通信协议简介

概述

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

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

wKgZPGiLCyOAds0OAADooUJlSSQ753.png

图 1

MQTT具有如下特点:

轻量可靠:MQTT的报文格式精简、紧凑,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。

发布/订阅模式(Publish/Subscribe):发布/订阅模式的优点在于发布者与订阅者的解耦,实现异步协议。即订阅者与发布者无需建立直接连接,亦无需同时在线。

为物联网而生:提供心跳机制、遗嘱消息、QoS质量等级 + 离线消息、主题和安全管理等全面的物联网应用特性。

生态更完善:覆盖范围广,已成为众多云厂商物联网平台的标准通信协议。

应用场景

MQTT作为一种低开销,低带宽占用的即时通讯协议,可以极少的代码和带宽为联网设备提供实时可靠的消息服务,适用于硬件资源有限的设备及带宽有限的网络环境。常见的应用场景如下:

物联网M2M通信,物联网大数据采集。

移动即时消息及消息推送。

智能硬件智能家居、智能电器。

车联网通信,电动车站桩采集。

智慧城市、远程医疗、远程教育。

电力能源、石油能源。

Mosquitto工具安装

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

Host#sudo apt-get install mosquitto-clients

wKgZPGiLCy2AOd6AAANcSWKGDfg831.png

图 2

mqtt_client案例

案例说明

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

程序流程图如下图所示。

wKgZO2iLCzeAdhYjAABRUsL04kU330.png

图 3

案例测试

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

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

wKgZPGiLC0OADY7VAAAaBGHjeY8539.png

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

Target#./mqtt_client --help

wKgZPGiLC0uAGCw2AAA7O2QmpBo254.png

图 4

评估板发布/上位机订阅

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

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

参数解析:

-h:指定MQTT服务器;

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

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

wKgZPGiLC1WACiUOAAAeIYvRriQ558.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消息

wKgZO2iLC2GAWt-xAAAT1DtLqGY850.png

图 6评估板发布

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

wKgZO2iLC2yAV9sRAAAlvwTPvvY497.png

图 7上位机订阅

评估板订阅/上位机发布

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

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

wKgZO2iLC3SAQhmxAAALyM983eQ492.png图 8

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

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

wKgZPGiLC3yAHcrbAAAwoDyJ17g241.png

图 9上位机发布

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

wKgZO2iLC4OABJfWAAAOMeqbRDM541.png图 10 评估板订阅

案例编译

将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T113-i处理器对应的GCC编译器。在案例src目录执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。

备注:若使用eMMC配置评估板,请将命令中的"tlt113-evm-nand"修改为"tlt113-evm-emmc"。

Host#CC=/home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-gcc make

wKgZO2iLC4qANFwNAADbH3XLF7M525.png

图 11

关键代码

创建Mosquitto实例。

wKgZO2iLC5OAKSR7AAAhBQhMBrk059.png

图 12

设置回调函数。

wKgZPGiLC5uADjggAABIqgBm4Mc633.png

图 13

连接MQTT服务器。

wKgZO2iLC6aAOVGfAAAqdRW6QWM976.png

图 14

发布消息。

wKgZO2iLC8qAWclIAACEI8t_6ew838.png

图 15

订阅主题。

wKgZPGiLC9WAM_L2AABO_K7Mv_M202.png

图 16

mqtt_sinewave_pub案例

案例说明

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

程序流程图如下图所示。

wKgZO2iLC92ACQvWAAA5oAsyIaA908.png

图 17

案例测试

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

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

Target#./mqtt_sinewave_pub --help

wKgZO2iLC-SAEdCdAAAgjUyJkZk791.png

图 18

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

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

wKgZPGiLC-2AOTAJAAANCrlNy90079.png图 19

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

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

wKgZO2iLC_qAJYCLAAAyUdltxHY440.png

图 20

wKgZPGiLC_qAbsi2AAB9b8YVBpo454.png

图 21

案例编译

将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T113-i处理器对应的GCC编译器。进入案例src目录执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。

备注:若使用eMMC配置评估板,请将命令中的"tlt113-evm-nand"修改为"tlt113-evm-emmc"。

Host#CC=/home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-gcc make

wKgZO2iLDAuAALJCAAD1c2_NxEQ448.png

图 22

关键代码

创建Mosquitto实例。

wKgZO2iLDBOAN2EWAABNqkC4ans553.png

图 23

设置回调函数。

wKgZPGiLDBqAGVWNAAA2mLgg9UA618.png

图 24

连接MQTT服务器。

wKgZO2iLDCGAETMzAAAqoeSLLd0043.png

图 25

发送数据。

wKgZPGiLDCiAJdHvAACCB3KY_0U284.png

图 26


审核编辑 黄宇

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

    关注

    28

    文章

    1094

    浏览量

    42336
  • 开发板
    +关注

    关注

    26

    文章

    6405

    浏览量

    120537
  • MQTT
    +关注

    关注

    5

    文章

    737

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    国产T113-i Cortex-A7@1.2GHz 工业开发板—双屏异显方案演示

    本文主要演示基于TLT113-EVM评估的双屏异显方案,适用开发环境如下。
    的头像 发表于 09-10 17:02 1229次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—双屏异显方案演示

    国产T113-i Cortex-A7@1.2GHz 工业开发板—eMMC配置核心使用说明(二)

    本文为创龙科技eMMC 配置核心官方使用指南,聚焦 Linux 系统在该核心上的应用。主要内容包括启动卡与 “量产卡” 制作、两种 eMMC 固化方式、分区与 OTA 升级说明、量及局部镜像编译、eMMC 读写性能测试,以
    的头像 发表于 09-10 10:55 746次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—eMMC配置核心<b class='flag-5'>板</b>使用说明(二)

    国产T113-i Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(三)

    本文档详细介绍了T113开发板的Linux环境搭建与系统编译流程。主要内容包括:1)开发环境要求(Windows/VMware/Ubuntu版本);2)Linux SDK安装步骤(依赖软件安装、源码
    的头像 发表于 09-04 14:56 838次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—Linux系统使用手册(三)

    国产T113-i Cortex-A7@1.2GHz 工业开发板—Linux系统使用手册(二)

    本文档详细介绍了T113开发板的Linux环境搭建与系统编译流程。主要内容包括:1)开发环境要求(Windows/VMware/Ubuntu版本);2)Linux SDK安装步骤(依赖软件安装、源码
    的头像 发表于 09-02 16:36 832次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—Linux系统使用手册(二)

    国产T113-i Cortex-A7@1.2GHz 工业开发板—视频开发案例

    本文主要介绍基于创龙科技TLT113-EVM评估的视频开发案例,适用开发环境如下。
    的头像 发表于 08-26 14:35 1369次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—视频<b class='flag-5'>开发</b>案例

    国产T113-i Cortex-A7@1.2GHz 工业开发板—ARM + FPGA通信案例

    本文主要介绍基于科技T113与FPGA的通信案例,适用开发环境如下。
    的头像 发表于 08-19 11:16 1499次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—ARM + FPGA<b class='flag-5'>通信</b>案例

    国产T113-i Cortex-A7@1.2GHz 工业开发板—ARM + DSP、RISC-V通信开发案例

    本文档主要介绍T113-i处理器的ARM + DSP、RISC-V通信开发案例,演示T113-i处理器ARM
    的头像 发表于 08-18 14:03 1099次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—ARM + DSP、RISC-V<b class='flag-5'>核</b>间<b class='flag-5'>通信</b><b class='flag-5'>开发</b>案例

    国产T113-i Cortex-A7@1.2GHz 工业开发板—RISC-V案例开发手册(上)

    本文档主要介绍T113-i处理器的RISC-V案例开发,演示RISC-V核心RTOS案例的编译与加载方法。适用开发环境如下。
    的头像 发表于 08-13 11:34 14.3w次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—RISC-V案例<b class='flag-5'>开发</b>手册(上)

    国产T113-i Cortex-A7@1.2GHz 工业开发板—DSP案例开发手册

    本文档主要介绍T113-i处理器的HiFi4 DSP核心开发案例,演示HiFi4 DSP核心RTOS案例的工程编译、程序固化和工程调试的方法。适用开发环境如下。
    的头像 发表于 08-12 11:37 991次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—DSP案例<b class='flag-5'>开发</b>手册

    国产T113-i Cortex-A7@1.2GHz 工业开发板—物联网模块开发案例(上)

    本文档主要介绍基于TLT113-EVM评估的物联网模块开发案例。
    的头像 发表于 08-07 14:47 1138次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—物联网模块<b class='flag-5'>开发</b>案例(上)

    【创龙TLT113-MiniEVM开发板试用体验】开箱评测

    T113-iCortex-A7@1.2GHz + 玄铁C906 RISC-V@1
    发表于 08-05 19:59

    国产T113-i Cortex-A7@1.2GHz 工业开发板—GDB程序调试方法说明

    前  言 本指导文档适用开发环境:   Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境
    的头像 发表于 08-05 15:33 686次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—GDB程序调试方法说明

    国产T113-i Cortex-A7@1.2GHz 工业开发板—IgH EtherCAT主站开发案例

    本文档主要演示TLT113-EVM评估基于IgH EtherCAT控制伺服电机。
    的头像 发表于 08-04 15:48 996次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—IgH EtherCAT主站<b class='flag-5'>开发</b>案例

    国产T113-i Cortex-A7@1.2GHz 工业开发板—Linux-RT应用开发案例

    ​ 前  言 本文适用开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware15.5.5 Linux开发环境
    的头像 发表于 07-30 10:33 944次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b> <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—Linux-RT应用<b class='flag-5'>开发</b>案例

    国产T113-i Cortex-A7@1.2GHz 工业开发板—LVGL应用开发案例

    本文主要演示基于TLT113-EVM评估的LVGL官方案例以及应用开发案例
    的头像 发表于 07-29 10:06 1207次阅读
    <b class='flag-5'>国产</b>!<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b>  <b class='flag-5'>双</b><b class='flag-5'>核</b><b class='flag-5'>Cortex-A7@1.2GHz</b> <b class='flag-5'>工业</b><b class='flag-5'>开发板</b>—LVGL应用<b class='flag-5'>开发</b>案例