电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>电子资料>全志T3开发板 ARM CortexA7——MQTT通信协议

全志T3开发板 ARM CortexA7——MQTT通信协议

2022-06-09 | rar | 1.01 MB | 次下载 | 免费

资料介绍

本文主要介绍基于T3处理器的MQTT通信协议开发案例,讲解内容主要包括了MQTT通信协议简介、概述、应用场景以及Mosquitto工具安装、mqtt_client案例和mqtt_sinewave_pub案例等。

 

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

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

虚拟机:VMware15.1.0

Linux开发环境:Ubuntu18.04.4 64bit

U-Boot:U-Boot-2014.07

Kernel:Linux-3.10.65

LinuxSDK:LinuxSDK_AA_BB_CC_DD(基于T3_LinuxSDK_V1.3_20190122)

 

本次测试板卡为基于创龙科技TLT3-EVM是一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz。

评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485通信接口,板载Bluetooth、WIFI、4G(选配)模块,同时引出MIPI LCD、LVDS LCD、TFT LCD、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、1080P@45fps H.264视频硬件编解码,并支持SATA大容量存储接口。

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工具。

Host# sudo apt-get install mosquitto-clients

图 2

mqtt_client案例

案例说明

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

程序流程图如下图所示。

图 3

案例测试

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

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

表 1

服务器名称

Broker地址

TCP端口

WebSocket

HiveMQ

broker.hivemq.com

1883

8000

Mosquitto

test.mosquitto.org

1883

80

Eclipse

mqtt.eclipseprojects.io

1883

80/443

EMQ X(国内)

broker-cn.emqx.io

1883

8083/8084

评估板启动,将案例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'

图 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工作目录下,请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T3处理器对应的GCC编译器。进入src目录执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。

Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make

图 11

 

关键代码

创建Mosquitto实例。

图 12

设置回调函数。

图 13

连接MQTT服务器。

图 14

发布消息。

图 15

订阅主题。

图 16

mqtt_sinewave_pub案例

案例说明

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

程序流程图如下图所示。

图 17

案例测试

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

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

Target# ./mqtt_sinewave_pub --help

图 18

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

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

图 19

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

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

图 20

 

图 21

案例编译

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

Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make

图 22

想要获取mqtt_sinewave_pub案例的关键代码以及更多测试案例详细说明,欢迎评论区留言~

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

  • --
    文章
  • --
    阅读
  • --
    粉丝

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费