0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【技術(shù)分享】以利爾達(dá)MB960/860模組為例,教你快速接入MQTT協(xié)議(上)

利爾達(dá)科技集團 ? 2022-02-14 09:49 ? 次閱讀

LIERDA

隨著 5G 時代的來臨,萬物互聯(lián)的偉大構(gòu)想正在成為現(xiàn)實。2021年全球智能物聯(lián)網(wǎng)處于爆發(fā)式增長通道,設(shè)備數(shù)量超過250億臺。海量的設(shè)備接入和設(shè)備管理對網(wǎng)絡(luò)帶寬、通信協(xié)議以及平臺服務(wù)架構(gòu)都帶來了很大挑戰(zhàn)。

物聯(lián)網(wǎng)通信協(xié)議作為聯(lián)通物與物的橋梁,在整個架構(gòu)中起著關(guān)鍵作用。本文將以利爾達(dá)MB960/860模組為例,介紹如何接入云平臺MQTT協(xié)議搭建系統(tǒng),幫助大家快速上手。

MQTT介紹

MQTT是一種基于發(fā)布/訂閱模式實現(xiàn)一對多通信的協(xié)議。它可為深度嵌入式設(shè)備提供物聯(lián)網(wǎng)的規(guī)模和連接性,憑借簡單易實現(xiàn)、支持 QoS、報文小等特點,占據(jù)了物聯(lián)網(wǎng)協(xié)議的半壁江山

bc5b4250-8cf3-11ec-9d5f-dac502259ad0.png

MQTT由3種身份構(gòu)成,分別是中介代理(broker)、發(fā)布者(publisher)和訂閱者(subscriber)。消息的發(fā)布者和訂閱者是客戶端,中介代理是服務(wù)器,消息的發(fā)布者同時可以是訂閱者。

bc66f578-8cf3-11ec-9d5f-dac502259ad0.png

作為一種輕量級的二進制協(xié)議,MQTT協(xié)議與傳統(tǒng)HTTP相比具有一個明顯的優(yōu)勢:數(shù)據(jù)包開銷較小,數(shù)據(jù)包開銷小就意味著更容易進行網(wǎng)絡(luò)傳輸。還有一個優(yōu)勢就是MQTT在客戶端容易實現(xiàn),且具易用性,非常適合在蜂窩物聯(lián)網(wǎng)等資源有限的設(shè)備實現(xiàn)。

MQTT 重要概念

1、MQTT client
當(dāng)我們討論關(guān)于客戶端的概念時,一般指的就是MQTT Client,包含publisher和subscriber。之所以有發(fā)布者和訂閱者這個概念,其實是一種相對的概念,就是指當(dāng)前客戶端是在發(fā)布消息還是在接收消息,發(fā)布和訂閱的功能也可以由同一個 MQTT Client 實現(xiàn)。

MQTT 客戶端是指運行 MQTT 庫并通過網(wǎng)絡(luò)連接到 MQTT broker 的任何設(shè)備,這些設(shè)備可以從微控制器到成熟的服務(wù)器。基本上任何使用 TCP/IP 協(xié)議使用 MQTT 設(shè)備的都可以稱之為MQTT Client。MQTT 協(xié)議的客戶端實現(xiàn)非常簡單直接。易于實施是MQTT非常適合小型設(shè)備的原因之一。MQTT客戶端庫可用于多種編程語言,例如Android、Arduino、C、C++、C#、Go、iOS、Java、JavaScript 和 .NET。

2、MQTT broker
與 MQTT client 對應(yīng)的就是 MQTT broker,broker 是任何發(fā)布/訂閱機構(gòu)的核心,根據(jù)實現(xiàn)的不同,代理可以處理多達(dá)數(shù)百萬連接的 MQTT client。

broker 負(fù)責(zé)接收所有消息,過濾消息,確定是哪個 client 訂閱了每條消息,并將消息發(fā)送給對應(yīng)的 client,broker 還負(fù)責(zé)保存會話數(shù)據(jù),這些數(shù)據(jù)包括訂閱的和錯過的消息。broker 還負(fù)責(zé)客戶端的身份驗證和授權(quán)。

3、MQTT Connection
MQTT 是基于 TCP/IP 協(xié)議基礎(chǔ)之上的,所以 MQTT 的 client 和 broker 都需要 TCP/IP 協(xié)議的支持。

MQTT的連接總是在client和broker之間進行,client和 client之間并不會相互連接。如果要發(fā)起連接的話,那么 client就會向broker發(fā)起CONNECT消息,代理會使用 CONNACK消息和狀態(tài)碼進行響應(yīng)。一旦client和 broker的連接建立后,broker就會使客戶端的連接一直處于打開狀態(tài),直到client發(fā)出斷開命令或者連接中斷。

bc954536-8cf3-11ec-9d5f-dac502259ad0.png

MQTT基于主題(Topic)消息路由

1、主題(Topic)

MQTT協(xié)議基于主題(Topic)進行消息路由,主題(Topic)類似URL路徑,例如:
chat/room/1
sensor/10/temperature
sensor/+/temperature
$SYS/broker/metrics/packets/received
$SYS/broker/metrics/#
主題(Topic)通過’/’分割層級,支持’+’, ‘#’通配符:
'+': 表示通配一個層級,例如a/+,匹配a/x, a/y
'#': 表示通配多個層級,例如a/#,匹配a/x, a/b/c/d
訂閱者與發(fā)布者之間通過主題路由消息進行通信,例如采用mosquitto命令行發(fā)布訂閱消息:
mosquitto_sub -t a/b/+ -q 1
mosquitto_pub -t a/b/c -m hello -q 1
注解:
訂閱者可以訂閱含通配符主題,但發(fā)布者不允許向含通配符主題發(fā)布消息。

2、MQTT消息QoS

MQTT發(fā)布消息QoS保證不是端到端的,是客戶端與服務(wù)器之間的。訂閱者收到MQTT消息的QoS級別,最終取決于發(fā)布消息的QoS和主題訂閱的QoS。

發(fā)布消息的QoS主題訂閱的QoS接收消息的QoS
000
010
020
100
111
121
200
211
222

Qos0消息發(fā)布訂閱

bcaac4ec-8cf3-11ec-9d5f-dac502259ad0.png

Qos1消息發(fā)布訂閱

bcb87ed4-8cf3-11ec-9d5f-dac502259ad0.png

Qos2消息發(fā)布訂閱

bcffeb0c-8cf3-11ec-9d5f-dac502259ad0.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    653

    瀏覽量

    22658
收藏 人收藏

    評論

    相關(guān)推薦

    模組Locator應(yīng)用指導(dǎo)——以NT26U

    Locator是一種高效定位技術(shù),該功能通過移動網(wǎng)絡(luò)小區(qū)的信息實現(xiàn)定位功能。本文將以利爾達(dá)NT26U模組,詳細(xì)介紹Locator相關(guān)的A
    的頭像 發(fā)表于 11-29 01:02 ?319次閱讀
    <b class='flag-5'>模組</b>Locator應(yīng)用指導(dǎo)——以NT26U<b class='flag-5'>為</b><b class='flag-5'>例</b>

    Air780E模組AT指令下的MQTT應(yīng)用:技術(shù)指南

    今天我要講的是Air780E模組AT指令下的MQTT應(yīng)用,希望對大家有所幫助。
    的頭像 發(fā)表于 11-07 14:02 ?458次閱讀
    Air780E<b class='flag-5'>模組</b>AT指令下的<b class='flag-5'>MQTT</b>應(yīng)用:<b class='flag-5'>技術(shù)</b>指南

    白嫖篇:4G 模組 MQTT 通信功能!

    今天我們白嫖的是4G 模組 MQTT 通信功能!以AIR708E開發(fā)板MQTT介紹,演示功能概述,準(zhǔn)備硬件環(huán)境,準(zhǔn)備軟件環(huán)境,
    的頭像 發(fā)表于 10-30 14:53 ?1413次閱讀
    白嫖篇:4G <b class='flag-5'>模組</b> <b class='flag-5'>MQTT</b> 通信功能!

    【教程】設(shè)備通過MQTT協(xié)議接入OneNET平臺,建立可視化界面

    在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信、信息的收集以及MQTT協(xié)議都是可以考慮的方案之一。MQTT通常用于需要低功耗和低帶寬的場景,如物聯(lián)網(wǎng)設(shè)備、傳感器網(wǎng)絡(luò)、移動應(yīng)用等。它的輕量級和高效特性使其非常適合
    的頭像 發(fā)表于 10-25 08:06 ?1082次閱讀
    【教程】設(shè)備通過<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>接入</b>OneNET平臺,建立可視化界面

    MQTT.fx 連接Onenet 多協(xié)議接入平臺 MQTT協(xié)議(舊版)詳解

    此文檔可以作為中間態(tài)MQTT版本,默認(rèn)參數(shù)獲取教程 多協(xié)議接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的頭像 發(fā)表于 09-30 15:20 ?975次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接Onenet 多<b class='flag-5'>協(xié)議</b><b class='flag-5'>接入</b>平臺 <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>(舊版)詳解

    MQTT協(xié)議網(wǎng)關(guān)的工作原理及功能特性

    在物聯(lián)網(wǎng)的快速發(fā)展中,MQTT協(xié)議網(wǎng)關(guān)作為連接物聯(lián)網(wǎng)設(shè)備與消息代理服務(wù)器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發(fā)布/訂閱模式的輕量級通信
    的頭像 發(fā)表于 09-18 17:00 ?600次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)的工作原理及功能特性

    鋇錸PLC網(wǎng)關(guān)快速實現(xiàn)三菱、西門子PLC轉(zhuǎn)MQTT協(xié)議

    PLC轉(zhuǎn)MQTT網(wǎng)關(guān)BL102是一款專為PLC聯(lián)網(wǎng)和遠(yuǎn)程PLC程序上傳下載調(diào)試而研發(fā)的,下行采集協(xié)議支持三菱、西門子、歐姆龍、臺達(dá)、施耐德等PLC協(xié)議,上行傳輸協(xié)議支持
    的頭像 發(fā)表于 07-31 17:00 ?515次閱讀
    鋇錸PLC網(wǎng)關(guān)<b class='flag-5'>快速</b>實現(xiàn)三菱、西門子PLC轉(zhuǎn)<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    鋇錸技術(shù)Modbus轉(zhuǎn)MQTT網(wǎng)關(guān):橋接Modbus協(xié)議MQTT協(xié)議

    在現(xiàn)今的工業(yè)物聯(lián)網(wǎng)時代,如何高效地將傳統(tǒng)工業(yè)設(shè)備與云端平臺連接起來,實現(xiàn)數(shù)據(jù)的實時監(jiān)控與分析,成為了許多企業(yè)關(guān)注的焦點問題。鋇錸技術(shù)推出的Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)BL101,正是針對這一需求,
    的頭像 發(fā)表于 07-30 16:28 ?440次閱讀
    鋇錸<b class='flag-5'>技術(shù)</b>Modbus轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān):橋接Modbus<b class='flag-5'>協(xié)議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    利爾達(dá)NB模組搜網(wǎng)機制,看這一篇就夠了!

    本文檔主要介紹了利爾達(dá)NB860&MB960&MB260模組搜網(wǎng)策略及相關(guān)的AT命令,并給出了網(wǎng)絡(luò)搜索和注冊流程,旨在幫助客戶了解
    的頭像 發(fā)表于 07-12 08:14 ?2078次閱讀
    <b class='flag-5'>利爾達(dá)</b>NB<b class='flag-5'>模組</b>搜網(wǎng)機制,看這一篇就夠了!

    打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法

    (Ai-WB2 或者Ai-M6x等模組接入服務(wù)器必定要使用網(wǎng)絡(luò)協(xié)議,而MQTT 是這些網(wǎng)絡(luò)協(xié)議中最常用的。例如:阿里云的物聯(lián)網(wǎng)平臺,例如米
    的頭像 發(fā)表于 06-07 09:36 ?1681次閱讀
    打卡智能家居之旅(2):設(shè)備<b class='flag-5'>接入</b>HomeAssistant的方法

    如何在AT COMMAND的方式下快速的完成Lierda NB861/MB961/MB261模組與OneNET平臺的對接工作?

    在AT COMMAND的方式下快速的完成Lierda NB861/MB961/MB261模組與OneNET平臺的對接工作
    發(fā)表于 06-04 07:17

    如何使用NB860/MB960/MB260模組實現(xiàn)用戶設(shè)備與OneNET(Studio)平臺的連接?

    如何使用NB860/MB960/MB260模組實現(xiàn)用戶設(shè)備與OneNET(Studio)平臺的連接
    發(fā)表于 06-04 07:15

    以太網(wǎng)設(shè)備如何接入標(biāo)準(zhǔn)MQTT協(xié)議

    本次展示億佰特以太網(wǎng)類產(chǎn)品接入標(biāo)準(zhǔn)MQTT協(xié)議教程,以E90-DTU(900SL30)E,其他產(chǎn)品可參照本教程?!咀ⅰ窟B接前需要得到服務(wù)
    的頭像 發(fā)表于 05-24 08:20 ?506次閱讀
    以太網(wǎng)設(shè)備如何<b class='flag-5'>接入</b>標(biāo)準(zhǔn)<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>?

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    MQTT協(xié)議和TCP協(xié)議在設(shè)計和應(yīng)用上存在以下主要區(qū)別: 1. 起源與設(shè)計:MQTT協(xié)議誕生于1999年互聯(lián)網(wǎng)初期,而TCP
    的頭像 發(fā)表于 04-01 09:15 ?1731次閱讀

    MQTT協(xié)議網(wǎng)關(guān)解決方案設(shè)計與實施

    的主要功能包括協(xié)議轉(zhuǎn)換、消息過濾、安全認(rèn)證、負(fù)載均衡等,以確保消息的可靠傳輸和系統(tǒng)的穩(wěn)定運行。隨著物聯(lián)網(wǎng)技術(shù)快速發(fā)展,MQTT協(xié)議作為一種
    的頭像 發(fā)表于 03-11 14:07 ?549次閱讀