資料介紹
本文主要介紹基于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具有如下特點:
- 輕量可靠:MQTT的報文格式精簡、緊湊,可在嚴重受限的硬件設備和低帶寬、高延遲的網絡上實現穩定傳輸。
- 發布/訂閱模式(Publish/Subscribe):發布/訂閱模式的優點在于發布者與訂閱者的解耦,實現異步協議。即訂閱者與發布者無需建立直接連接,亦無需同時在線。
- 為物聯網而生:提供心跳機制、遺囑消息、QoS質量等級 + 離線消息、主題和安全管理等全面的物聯網應用特性。
- 生態更完善:覆蓋范圍廣,已成為眾多云廠商物聯網平臺的標準通信協議。
應用場景
MQTT作為一種低開銷,低帶寬占用的即時通訊協議,可以極少的代碼和帶寬為聯網設備提供實時可靠的消息服務,適用于硬件資源有限的設備及帶寬有限的網絡環境。常見的應用場景如下:
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代理服務器通信?;贛QTT通信協議,實現發布和訂閱消息功能。
程序流程圖如下圖所示。
圖 3
案例測試
本案例使用公網MQTT HiveMQ服務器與上位機Ubuntu Mosquitto工具通信。請通過網線將評估板千兆網口RGMII ETH和上位機連接至公網,確??烧TL問互聯網。
下表提供了可用的在線公共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和上位機連接至公網,確??烧TL問互聯網。
評估板啟動,將案例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案例的關鍵代碼以及更多測試案例詳細說明,歡迎評論區留言~
- 全志T3評估板數據手冊
- 全志XR806開發板原理圖
- 全志V853開發板原理圖20220624
- 全志V853開發板雙目攝像頭模組原理圖20220624
- 全志20210520位號圖D1-H哪吒開發板
- 全志20210520原理圖D1-H哪吒開發板
- 全志20210520定位圖D1哪吒開發板
- 全志H6開發板原理圖 33次下載
- 全志T3開發板——系統啟動階段LOGO顯示
- 全志T3開發板4核ARM Cortex-A7——視頻開發案例
- 全志T3國產開發板(4核ARM Cortex-A7)-規格書
- 全志A40i國產核心板(4核ARM CortexA7)規格書
- 全志A40i國產評估板(4核ARM CortexA7)規格書
- 全志T3國產核心板(4核ARM Cortex-A7)-規格書
- 全志T3國產評估板(4核ARM Cortex-A7)資料
- ARM開發板與樹莓派的比較 562次閱讀
- 通過物聯網管理多臺MQTT設備-基于米爾T527開發板 730次閱讀
- G2D圖像處理硬件調用和測試-基于米爾-全志T113-i開發板 727次閱讀
- DIY個人的Linux開發板教程 2201次閱讀
- 全志h3與全志h8有什么區別 3860次閱讀
- 基于全志XR806開發板的家用環境監測傳感器設計 693次閱讀
- 小凌派RK2206開發板:實現基于OpenHarmony的本地MQTT協議 4966次閱讀
- 基于全志F1C200s芯片的Linux開發板設計 7963次閱讀
- 飛凌嵌入式FETT3-C核心板介紹 3526次閱讀
- 飛凌嵌入式OKT3-C開發板簡介 3590次閱讀
- 銳爾威視科技全志A20雙核 CloverBox方案板/開發板介紹 4320次閱讀
- 銳爾威視科技全志A33四核Vstar開發板規格 3659次閱讀
- 分析ARM開發板哪家好 1.8w次閱讀
- 新手入門應如何選擇ARM開發板_選擇開發板的注意事項 4.3w次閱讀
- arm開發板與樹莓派有什么區別 5.7w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多