資料介紹
本文主要介紹基于T3處理器的MQTT通信協(xié)議開(kāi)發(fā)案例,講解內(nèi)容主要包括了MQTT通信協(xié)議簡(jiǎn)介、概述、應(yīng)用場(chǎng)景以及Mosquitto工具安裝、mqtt_client案例和mqtt_sinewave_pub案例等。
本指導(dǎo)文檔適用開(kāi)發(fā)環(huán)境:
Windows開(kāi)發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
虛擬機(jī):VMware15.1.0
Linux開(kāi)發(fā)環(huán)境: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)
本次測(cè)試板卡為基于創(chuàng)龍科技TLT3-EVM是一款基于全志科技T3處理器設(shè)計(jì)的4核ARM Cortex-A7高性能低功耗國(guó)產(chǎn)評(píng)估板,每核主頻高達(dá)1.2GHz。
評(píng)估板接口資源豐富,引出雙路網(wǎng)口、雙路CAN、雙路USB、雙路RS485等通信接口,板載Bluetooth、WIFI、4G(選配)模塊,同時(shí)引出MIPI LCD、LVDS LCD、TFT LCD、CVBS OUT、CAMERA、LINE IN、H/P OUT等音視頻多媒體接口,支持雙屏異顯、1080P@45fps H.264視頻硬件編解碼,并支持SATA大容量存儲(chǔ)接口。
MQTT通信協(xié)議簡(jiǎn)介
概述
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(Publish/Subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。
MQTT是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,同時(shí)作為一種低開(kāi)銷、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。
圖 1
MQTT具有如下特點(diǎn):
- 輕量可靠:MQTT的報(bào)文格式精簡(jiǎn)、緊湊,可在嚴(yán)重受限的硬件設(shè)備和低帶寬、高延遲的網(wǎng)絡(luò)上實(shí)現(xiàn)穩(wěn)定傳輸。
- 發(fā)布/訂閱模式(Publish/Subscribe):發(fā)布/訂閱模式的優(yōu)點(diǎn)在于發(fā)布者與訂閱者的解耦,實(shí)現(xiàn)異步協(xié)議。即訂閱者與發(fā)布者無(wú)需建立直接連接,亦無(wú)需同時(shí)在線。
- 為物聯(lián)網(wǎng)而生:提供心跳機(jī)制、遺囑消息、QoS質(zhì)量等級(jí) + 離線消息、主題和安全管理等全面的物聯(lián)網(wǎng)應(yīng)用特性。
- 生態(tài)更完善:覆蓋范圍廣,已成為眾多云廠商物聯(lián)網(wǎng)平臺(tái)的標(biāo)準(zhǔn)通信協(xié)議。
應(yīng)用場(chǎng)景
MQTT作為一種低開(kāi)銷,低帶寬占用的即時(shí)通訊協(xié)議,可以極少的代碼和帶寬為聯(lián)網(wǎng)設(shè)備提供實(shí)時(shí)可靠的消息服務(wù),適用于硬件資源有限的設(shè)備及帶寬有限的網(wǎng)絡(luò)環(huán)境。常見(jiàn)的應(yīng)用場(chǎng)景如下:
- 物聯(lián)網(wǎng)M2M通信,物聯(lián)網(wǎng)大數(shù)據(jù)采集。
- 移動(dòng)即時(shí)消息及消息推送。
- 智能硬件、智能家居、智能電器。
- 車聯(lián)網(wǎng)通信,電動(dòng)車站樁采集。
- 智慧城市、遠(yuǎn)程醫(yī)療、遠(yuǎn)程教育。
- 電力能源、石油能源。
Mosquitto工具安裝
Mosquitto是一款開(kāi)源的MQTT消息代理(服務(wù)器)軟件,提供輕量級(jí)的、支持可發(fā)布/可訂閱的的消息推送模式。我司提供的評(píng)估板文件系統(tǒng)已支持Mosquitto工具,本文mqtt_client案例采用Mosquitto工具演示MQTT通信協(xié)議的通信功能。由于上位機(jī)Ubuntu系統(tǒng)作為通信對(duì)象,因此需在Ubuntu終端執(zhí)行如下命令安裝Mosquitto工具。
Host# sudo apt-get install mosquitto-clients
圖 2
mqtt_client案例
案例說(shuō)明
案例功能:使用libmosquitto(MQTT version 3.1.1 client library)的API與MQTT代理服務(wù)器通信?;贛QTT通信協(xié)議,實(shí)現(xiàn)發(fā)布和訂閱消息功能。
程序流程圖如下圖所示。
圖 3
案例測(cè)試
本案例使用公網(wǎng)MQTT HiveMQ服務(wù)器與上位機(jī)Ubuntu Mosquitto工具通信。請(qǐng)通過(guò)網(wǎng)線將評(píng)估板千兆網(wǎng)口RGMII ETH和上位機(jī)連接至公網(wǎng),確??烧TL問(wèn)互聯(lián)網(wǎng)。
下表提供了可用的在線公共MQTT服務(wù)器,可根據(jù)需要自行切換。
表 1
服務(wù)器名稱 | Broker地址 | TCP端口 | WebSocket |
HiveMQ | broker.hivemq.com | 1883 | 8000 |
Mosquitto | test.mosquitto.org | 1883 | 80 |
Eclipse | mqtt.eclipseprojects.io | 1883 | 80/443 |
EMQ X(國(guó)內(nèi)) | broker-cn.emqx.io | 1883 | 8083/8084 |
評(píng)估板啟動(dòng),將案例bin目錄下mqtt_client可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng)的任意目錄下,執(zhí)行如下命令查看程序參數(shù)說(shuō)明。
Target# ./mqtt_client --help
圖 4
評(píng)估板發(fā)布/上位機(jī)訂閱
在上位機(jī)執(zhí)行如下命令,使用mosquitto_sub工具訂閱MQTT主題。
Host# mosquitto_sub -h broker.hivemq.com -p 1883 -t test/data
參數(shù)解析:
-h:指定MQTT服務(wù)器;
-p:指定MQTT服務(wù)器TCP端口;
-t:定義MQTT主題,可自定義命名。
圖 5
在評(píng)估板文件系統(tǒng)執(zhí)行如下命令發(fā)布消息至MQTT服務(wù)器。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M publish -t test/data -m 'www.tronlong.com'
圖 6 評(píng)估板發(fā)布
消息發(fā)布成功后,上位機(jī)將從MQTT服務(wù)器接收到對(duì)應(yīng)的消息。
圖 7 上位機(jī)訂閱
評(píng)估板訂閱/上位機(jī)發(fā)布
在評(píng)估板文件系統(tǒng)執(zhí)行如下命令訂閱MQTT主題。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M subscribe -t test/data
圖 8
在上位機(jī)執(zhí)行如下命令發(fā)布消息至MQTT服務(wù)器。
Host# mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data -m www.tronlong.com
圖 9 上位機(jī)發(fā)布
消息發(fā)布成功后,評(píng)估板將從MQTT服務(wù)器接收到對(duì)應(yīng)消息。
圖 10 評(píng)估板訂閱
案例編譯
將案例src文件夾拷貝至Ubuntu工作目錄下,請(qǐng)先確保已參考Linux系統(tǒng)使用手冊(cè)編譯過(guò)LinuxSDK,構(gòu)建T3處理器對(duì)應(yīng)的GCC編譯器。進(jìn)入src目錄執(zhí)行如下命令,使用LinuxSDK開(kāi)發(fā)包目錄下的GCC編譯器進(jìn)行案例編譯。編譯完成后,將在當(dāng)前目錄下生成可執(zhí)行文件。
Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make
圖 11
關(guān)鍵代碼
創(chuàng)建Mosquitto實(shí)例。
圖 12
設(shè)置回調(diào)函數(shù)。
圖 13
連接MQTT服務(wù)器。
圖 14
發(fā)布消息。
圖 15
訂閱主題。
圖 16
mqtt_sinewave_pub案例
案例說(shuō)明
案例功能:使用libmosquitto(MQTT version 3.1.1 client library)的API與MQTT代理服務(wù)器通信。評(píng)估板生成正弦波數(shù)據(jù),每秒發(fā)送512個(gè)采樣點(diǎn)的數(shù)據(jù)至MQTT服務(wù)器;上位機(jī)通過(guò)Web頁(yè)面從MQTT服務(wù)器接收到數(shù)據(jù)后,將會(huì)繪制波形。
程序流程圖如下圖所示。
圖 17
案例測(cè)試
本案例使用公網(wǎng)MQTT HiveMQ服務(wù)器與上位機(jī)Ubuntu Web程序通信。請(qǐng)通過(guò)網(wǎng)線將評(píng)估板千兆網(wǎng)口RGMII ETH和上位機(jī)連接至公網(wǎng),確??烧TL問(wèn)互聯(lián)網(wǎng)。
評(píng)估板啟動(dòng),將案例bin目錄下mqtt_sinewave_pub可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng)的任意目錄下,執(zhí)行如下命令查看程序參數(shù)說(shuō)明。
Target# ./mqtt_sinewave_pub --help
圖 18
執(zhí)行如下命令運(yùn)行程序,連接MQTT服務(wù)器,并發(fā)送正弦波數(shù)據(jù)至MQTT服務(wù)器。
Target# ./mqtt_sinewave_pub -h broker.hivemq.com -p 1883
圖 19
評(píng)估板程序運(yùn)行后,將案例"tools\web_mqtt_sub"目錄下index.html文件,使用上位機(jī)瀏覽器打開(kāi)。在彈出的Web頁(yè)面(如下圖),依次輸入MQTT服務(wù)器:broker.hivemq.com,端口號(hào):8000,最后點(diǎn)擊連接,Web頁(yè)面將會(huì)從MQTT服務(wù)器獲取正弦波數(shù)據(jù)并進(jìn)行波形繪制。
備注:ARM端MQTT通信協(xié)議基于TCP協(xié)議,Web端MQTT通信協(xié)議基于WebSocket協(xié)議,因此使用的端口號(hào)不同。
圖 20
圖 21
案例編譯
將案例src文件夾拷貝至Ubuntu工作目錄下,請(qǐng)先確保已參考Linux系統(tǒng)使用手冊(cè)編譯過(guò)LinuxSDK,構(gòu)建T3處理器對(duì)應(yīng)的GCC編譯器。進(jìn)入src目錄執(zhí)行如下命令,使用LinuxSDK開(kāi)發(fā)包目錄下的GCC編譯器進(jìn)行案例編譯。編譯完成后,將在當(dāng)前目錄下生成可執(zhí)行文件。
Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make
圖 22
想要獲取mqtt_sinewave_pub案例的關(guān)鍵代碼以及更多測(cè)試案例詳細(xì)說(shuō)明,歡迎評(píng)論區(qū)留言~
- 全志T3評(píng)估板數(shù)據(jù)手冊(cè)
- 全志XR806開(kāi)發(fā)板原理圖
- 全志V853開(kāi)發(fā)板原理圖20220624
- 全志V853開(kāi)發(fā)板雙目攝像頭模組原理圖20220624
- 全志20210520位號(hào)圖D1-H哪吒開(kāi)發(fā)板
- 全志20210520原理圖D1-H哪吒開(kāi)發(fā)板
- 全志20210520定位圖D1哪吒開(kāi)發(fā)板
- 全志H6開(kāi)發(fā)板原理圖 33次下載
- 全志T3開(kāi)發(fā)板——系統(tǒng)啟動(dòng)階段LOGO顯示
- 全志T3開(kāi)發(fā)板4核ARM Cortex-A7——視頻開(kāi)發(fā)案例
- 全志T3國(guó)產(chǎn)開(kāi)發(fā)板(4核ARM Cortex-A7)-規(guī)格書(shū)
- 全志A40i國(guó)產(chǎn)核心板(4核ARM CortexA7)規(guī)格書(shū)
- 全志A40i國(guó)產(chǎn)評(píng)估板(4核ARM CortexA7)規(guī)格書(shū)
- 全志T3國(guó)產(chǎn)核心板(4核ARM Cortex-A7)-規(guī)格書(shū)
- 全志T3國(guó)產(chǎn)評(píng)估板(4核ARM Cortex-A7)資料
- 通過(guò)物聯(lián)網(wǎng)管理多臺(tái)MQTT設(shè)備-基于米爾T527開(kāi)發(fā)板 505次閱讀
- G2D圖像處理硬件調(diào)用和測(cè)試-基于米爾-全志T113-i開(kāi)發(fā)板 441次閱讀
- DIY個(gè)人的Linux開(kāi)發(fā)板教程 1371次閱讀
- 全志h3與全志h8有什么區(qū)別 2563次閱讀
- 基于全志XR806開(kāi)發(fā)板的家用環(huán)境監(jiān)測(cè)傳感器設(shè)計(jì) 559次閱讀
- 小成本的V853 AI小開(kāi)發(fā)板DIY設(shè)計(jì) 2248次閱讀
- 小凌派RK2206開(kāi)發(fā)板:實(shí)現(xiàn)基于OpenHarmony的本地MQTT協(xié)議 4567次閱讀
- 基于全志F1C200s芯片的Linux開(kāi)發(fā)板設(shè)計(jì) 7577次閱讀
- 飛凌嵌入式FETT3-C核心板介紹 3376次閱讀
- 飛凌嵌入式OKT3-C開(kāi)發(fā)板簡(jiǎn)介 3444次閱讀
- 銳爾威視科技全志A20雙核 CloverBox方案板/開(kāi)發(fā)板介紹 4056次閱讀
- 銳爾威視科技全志A33四核Vstar開(kāi)發(fā)板規(guī)格 3082次閱讀
- 分析ARM開(kāi)發(fā)板哪家好 1.8w次閱讀
- 新手入門應(yīng)如何選擇ARM開(kāi)發(fā)板_選擇開(kāi)發(fā)板的注意事項(xiàng) 4.3w次閱讀
- arm開(kāi)發(fā)板與樹(shù)莓派有什么區(qū)別 5.7w次閱讀
-
--文章
-
--閱讀
-
--粉絲
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多