<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TLT507-MQTT通信協議案例

Tronlong創龍科技 ? 來源: Tronlong創龍科技 ? 作者: Tronlong創龍科技 ? 2024-01-26 10:06 ? 次閱讀

1 MQTT 通信協議簡介

1.1 概述

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基

于發布/訂閱(Publish/Subscribe)模式的“輕量級”通訊協議,該協議構建于 TCP/IP 協議上,

由 IBM 在 1999 年發布。MQTT 最大優點在于,可以極少的代碼和有限的帶寬,為連接遠

程設備提供實時可靠的消息服務。

MQTT 是輕量、簡單、開放和易于實現的,同時作為一種低開銷、低帶寬占用的即時

通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。

wKgZomW4c9eAM7S5AABn_8pSE3Q310.png

MQTT 具有如下特點:

(1) 輕量可靠:MQTT 的報文格式精簡、緊湊,可在嚴重受限的硬件設備和低帶寬、

高延遲的網絡上實現穩定傳輸。

(2) 發布/訂閱模式(Publish/Subscribe):發布/訂閱模式的優點在于發布者與訂閱者的

解耦,實現異步協議。即訂閱者與發布者無需建立直接連接,亦無需同時在線。

(3) 為物聯網而生:提供心跳機制、遺囑消息、QoS 質量等級 + 離線消息、主題和

安全管理等全面的物聯網應用特性。

(4) 生態更完善:覆蓋范圍廣,已成為眾多云廠商物聯網平臺的標準通信協議

1.2 應用場景

MQTT 作為一種低開銷,低帶寬占用的即時通訊協議,可以極少的代碼和帶寬為聯網

設備提供實時可靠的消息服務,適用于硬件資源有限的設備及帶寬有限的網絡環境。常

見的應用場景如下:

(1) 物聯網 M2M 通信,物聯網大數據采集。

(2) 移動即時消息及消息推送。

(3) 智能硬件、智能家居、智能電器。

(4) 車聯網通信,電動車站樁采集。

(5) 智慧城市、遠程醫療、遠程教育。

(6) 電力能源、石油能源。

1.3 Mosquitto 工具安裝

Mosquitto 是一款開源的 MQTT 消息代理(服務器)軟件,提供輕量級的、支持可發

布/可訂閱的的消息推送模式。我司提供的評估板文件系統已支持 Mosquitto 工具,本文

mqtt_client 案例采用 Mosquitto 工具演示 MQTT 通信協議的通信功能。由于上位機 Ubuntu

系統作為通信對象,因此需在 Ubuntu 終端執行如下命令安裝 Mosquitto 工具。

Host# sudo apt-get install mosquitto-clients

wKgaomW4c9yAfzwjAAJI1wkMw8o824.png

2 mqtt_client 案例

2.1 案例說明

案例功能:使用 libmosquitto(MQTT version 3.1.1 client library)的 API 與 MQTT 代理服

務器通信?;?MQTT 通信協議,實現發布和訂閱消息功能。

程序流程圖如下圖所示。

wKgZomW4c-OAS8fTAAAyrfGi-t8316.png

2.2 案例測試

本案例使用公網 MQTT HiveMQ 服務器與上位機 Ubuntu Mosquitto 工具通信。請通過

網線將評估板千兆網口 ETH0 RGMII 和上位機連接至公網,確??烧TL問互聯網。

下表提供了可用的在線公共 MQTT 服務器,可根據需要自行切換。

wKgaomW4c-iAOZkyAABQU4KzreA965.png

評估板啟動,將案例 bin 目錄下 mqtt_client 可執行文件拷貝至評估板文件系統的任意

目錄下,執行如下命令查看程序參數說明。

Target#

./mqtt_client --help

wKgZomW4dAOAKAxbAAB9kbAHXQY988.png

2.2.1

評估板發布/上位機訂閱

在上位機執行如下命令,使用 mosquitto_sub 工具訂閱 MQTT 主題。

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

參數解析:

-h:指定 MQTT 服務器;

-p:指定 MQTT 服務器 TCP 端口;

-t:定義 MQTT 主題,可自定義命名。

=

wKgZomW4dAuABlMkAAAbaQ_L1xc675.png

在評估板文件系統執行如下命令發布消息至 MQTT 服務器。

Target#

./mqtt_client -h broker.hivemq.com -p 1883 -M publish -t test/data -m

'www.tronlong.com'

wKgaomW4dBqAA-npAAGt6gj3ttI735.png

2.3 案例編譯

將案例 src 文件夾拷貝至 Ubuntu 工作目錄下,請先確保已參考 Linux 系統使用手冊編

譯過 LinuxSDK,構建 T507 處理器對應的 GCC 編譯器。進入 src 目錄執行如下命令,使用

LinuxSDK 開發包目錄下的 GCC 編譯器進行案例編譯。編譯完成后,將在當前目錄下生成

可執行文件。

Host# CC=/home/tronlong/T507/LinuxSDK/out/t507/tlt507-evm/longan/buildroot/host/usr

/bin/aarch64-linux-gnu-gcc make

wKgZomW4jRaAXeyHAACrFnaa4wU405.png

2.4 關鍵代碼

(1) 創建 Mosquitto 實例。

wKgaomW4jSSAMJmrAAApA7B7rPE205.png

(2) 設置回調函數。

wKgZomW4jSqAJrZGAABJ3ZrE4Yc124.png

(3) 連接 MQTT 服務器。

wKgaomW4j4iADBK4AABLXL1Ep3I970.png

(4) 發布消息。

wKgaomW4j4-AaekcAABtEKeemCo315.png

(5) 訂閱主題

wKgaomW4j6iAR2J7AABfyq-jQoY252.png

3 mqtt_sinewave_pub 案例

3.1 案例說明

案例功能:使用 libmosquitto(MQTT version 3.1.1 client library)的 API 與 MQTT 代理服

務器通信。評估板生成正弦波數據,每秒發送 512 個采樣點的數據至 MQTT 服務器;上

位機通過 Web 頁面從 MQTT 服務器接收到數據后,將會繪制波形。

程序流程圖如下圖所示。

wKgZomW4j7GAG2nLAACgR6TM4Fg446.png

3.2 案例測試

本案例使用公網 MQTT HiveMQ 服務器與上位機 Ubuntu Web 程序通信。請通過網線

將評估板千兆網口 ETH0 RGMII 和上位機連接至公網,確??烧TL問互聯網。

評估板啟動,將案例 bin 目錄下 mqtt_sinewave_pub 可執行文件拷貝至評估板文件系

統的任意目錄下,執行如下命令查看程序參數說明。

Target#

./mqtt_sinewave_pub --help

wKgZomW4j76AXp8XAABSTdUR1Xw313.png

執行如下命令運行程序,連接 MQTT 服務器,并發送正弦波數據至 MQTT 服 務器。

Target#

./mqtt_sinewave_pub -h broker.hive

mq.com -p 1883

wKgZomW4j86AIelZAAAvnyJss2k565.png

評估板程序運行后,將案例"toolsweb_mqtt_sub"目錄下 index.html 文件,使用上位

機瀏覽器打開。在彈出的 Web 頁面(如下圖),依次輸入 MQTT 服務器:broker.hivemq.com,

端口號:8000,最后點擊連接,Web 頁面將會從 MQTT 服務器獲取正弦波數據并進行波

形繪制。

備注:ARM 端 MQTT 通信協議基于 TCP 協議,Web 端 MQTT 通信協議基于 WebSocket 協

議,因此使用的端口號不同。

wKgZomW4j9SAA5LiAAAa5J1_IoQ615.pngwKgaomW4j92AHlq6AABIarcJExo989.png

3.3 案例編譯

將案例 src 文件夾拷貝至 Ubuntu 工作目錄下,請先確保已參考 Linux 系統使用手冊編

譯過 LinuxSDK,構建 T507 處理器對應的 GCC 編譯器。進入 src 目錄執行如下命令,使用

LinuxSDK 開發包目錄下的 GCC 編譯器進行案例編譯。編譯完成后,將在當前目錄下生成

可執行文件。

Host# CC=/home/tronlong/T507/LinuxSDK/out/t507/tlt507-evm/longan/buildroot/host/usr

/bin/aarch64-linux-gnu-gcc make

wKgZomW4j_KAF1zZAAC91vaPX7U815.png

3.4 關鍵代碼

(1) 創建 Mosquitto 實例。

wKgZomW4kIqAA-SxAABps7FhyoM311.png

(2) 設置回調函數。

wKgZomW4kJWAAh4NAAA6N2cwriI284.png

(3) 連接 MQTT 服務器。

wKgaomW4kJ-AUFIBAAA0esHKr4g185.png

(4) 發送數據。

wKgZomW4kAeAQ2nIAACW3Db1t7Y810.png



審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信協議
    +關注

    關注

    28

    文章

    752

    瀏覽量

    39916
  • MQTT
    +關注

    關注

    5

    文章

    550

    瀏覽量

    22089
收藏 人收藏

    評論

    相關推薦

    通信協議解讀:CoAP/LWM2M協議MQTT協議

    本文將分別解讀CoAP/LWM2M協議MQTT協議,希望能幫助您了解這些協議,并選擇最適合您的設備的通信協議。
    的頭像 發表于 12-04 14:09 ?1.2w次閱讀
    <b class='flag-5'>通信協議</b>解讀:CoAP/LWM2M<b class='flag-5'>協議</b>和<b class='flag-5'>MQTT</b><b class='flag-5'>協議</b>

    RK3568-MQTT通信協議案

    RK3568-MQTT通信協議案
    的頭像 發表于 01-19 15:31 ?1226次閱讀
    RK3568-<b class='flag-5'>MQTT</b><b class='flag-5'>通信協議案</b>例

    TLT507-Linux應用開發手冊

    TLT507-Linux應用開發手冊
    的頭像 發表于 01-26 09:34 ?413次閱讀
    <b class='flag-5'>TLT507</b>-Linux應用開發手冊

    TLT507-Qt工程編譯說明

    TLT507-Qt工程編譯說明
    的頭像 發表于 01-26 09:37 ?538次閱讀
    <b class='flag-5'>TLT507</b>-Qt工程編譯說明

    TLT507-Linux-RT應用開發案例

    TLT507-Linux-RT應用開發案例
    的頭像 發表于 01-26 09:46 ?410次閱讀
    <b class='flag-5'>TLT507</b>-Linux-RT應用開發案例

    TLT507-Ubuntu系統使用說明

    TLT507-Ubuntu系統使用說明
    的頭像 發表于 01-26 09:58 ?488次閱讀
    <b class='flag-5'>TLT507</b>-Ubuntu系統使用說明

    TLT507-物聯網模塊開發案例

    TLT507-物聯網模塊開發案例
    的頭像 發表于 01-26 10:26 ?717次閱讀
    <b class='flag-5'>TLT507</b>-物聯網模塊開發案例

    TLT507-視頻開發案例

    TLT507-視頻開發案例
    的頭像 發表于 01-26 10:50 ?740次閱讀
    <b class='flag-5'>TLT507</b>-視頻開發案例

    TLT507-ARM + FPGA通信案例

    TLT507-ARM + FPGA通信案例
    的頭像 發表于 01-26 11:05 ?742次閱讀
    <b class='flag-5'>TLT507</b>-ARM + FPGA<b class='flag-5'>通信</b>案例

    TLT507-多通道AD采集開發案例

    TLT507-多通道AD采集開發案例
    的頭像 發表于 01-26 11:28 ?832次閱讀
    <b class='flag-5'>TLT507</b>-多通道AD采集開發案例

    全志科技T3開發板(4核ARM Cortex-A7)——MQTT通信協議案

    本文主要介紹基于T3處理器的MQTT通信協議開發案例,講解內容主要包括了MQTT通信協議簡介、概述、應用場景以及Mosquitto工具安裝、mqtt
    發表于 06-09 14:55

    全志T3+Logos FPGA開發板——MQTT通信協議案

    遇到不少人新手小白問,能不能分享MQTT通信協議案例,做開發等等一系列的問題。應廣大用戶朋友需求號召,今天分享基于創龍科技的TLT3F-EVM開發板,它是一款基于全志科技T3四核ARM
    發表于 03-31 15:35

    mqtt-v3.1.1版協議

    mqtt-v3.1.1版協議,英文版,時間2014.10.29,物聯網通信協議MQTT
    發表于 10-29 11:22 ?0次下載

    全志T3開發板 ARM CortexA7——MQTT通信協議

    本文主要介紹基于T3處理器的MQTT通信協議開發案例,講解內容主要包括了MQTT通信協議簡介、概述、應用場景以及Mosquitto工具安裝、mqtt
    發表于 06-09 14:50 ?6次下載

    TLT507-Android開發環境搭建

    TLT507-Android開發環境搭建
    的頭像 發表于 01-26 17:03 ?304次閱讀
    <b class='flag-5'>TLT507</b>-Android開發環境搭建
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>