MQTT – 消息隊(duì)列遙測(cè)傳輸

MQTT(消息隊(duì)列遙測(cè)傳輸)是一種用于受限低帶寬網(wǎng)絡(luò)和極高延遲物聯(lián)網(wǎng)設(shè)備的消息傳遞協(xié)議。由于消息隊(duì)列遙測(cè)傳輸專用于低帶寬、高延遲環(huán)境,因此它是機(jī)器對(duì)機(jī)器 (M2M) 通信的理想協(xié)議。

MQTT 按照發(fā)布者/訂閱者原則工作,并通過(guò)中央代理進(jìn)行操作。這意味著發(fā)送方和接收方?jīng)]有直接連接。數(shù)據(jù)源通過(guò)發(fā)布報(bào)告他們的數(shù)據(jù),并且所有對(duì)某些消息感興趣的接收者(“由主題標(biāo)記”)都會(huì)獲得傳遞的數(shù)據(jù),因?yàn)樗麄円呀?jīng)注冊(cè)為訂閱者。

在 IoT 和 IIoT 中,MQTT 一直用于連接云環(huán)境。在我們以工業(yè)為重點(diǎn)的實(shí)踐說(shuō)明中,了解您需要了解的有關(guān)使用 MQTT 的所有信息。在我們的實(shí)際示例和工業(yè)解釋中發(fā)現(xiàn)您需要了解的有關(guān)使用MQTT 的所有信息。您可以訪問(wèn)我們的教程流 ,找到有關(guān)此主題的專門視頻。

1. MQTT 是什么意思?

MQTT 代表消息隊(duì)列遙測(cè)傳輸。它是一種極其簡(jiǎn)單和輕量級(jí)的消息傳遞協(xié)議(訂閱和發(fā)布),專為具有高延遲、低帶寬或不可靠網(wǎng)絡(luò)的有限設(shè)備和網(wǎng)絡(luò)而設(shè)計(jì)。其設(shè)計(jì)原則旨在降低設(shè)備的網(wǎng)絡(luò)帶寬和資源需求,并確保供應(yīng)安全。此外,這些原則有利于 M2M(機(jī)器對(duì)機(jī)器)或物聯(lián)網(wǎng)設(shè)備,因?yàn)殡姵匦阅芎蛶挿浅V匾?/font>

2.什么是MQTT主題?

借助MQ Telemetry Transport,資源受限的 IoT 設(shè)備可以將有關(guān)特定主題的信息發(fā)送或發(fā)布到充當(dāng)MQTT 消息代理的服務(wù)器。經(jīng)紀(jì)人然后將信息傳輸給那些先前訂閱了客戶主題的客戶。對(duì)人來(lái)說(shuō),主題看起來(lái)像分層文件路徑。客戶可以訂閱主題的特定層級(jí)或使用通配符訂閱多個(gè)級(jí)別。
MQTT協(xié)議對(duì)于由于偶爾的帶寬限制或不可靠的連接而具有不同延遲的無(wú)線網(wǎng)絡(luò)是一個(gè)不錯(cuò)的選擇。如果從訂閱客戶端到代理的連接中斷,代理會(huì)緩沖消息并在訂閱者重新在線時(shí)將它們發(fā)送給訂閱者。如果從發(fā)布客戶端到 Broker 的連接在沒(méi)有通知的情況下斷開(kāi),則 Broker 可以斷開(kāi)連接并向訂閱者發(fā)送一條緩存的消息,其中包含來(lái)自發(fā)布者的指令。

3. 什么是 MQTT 服務(wù)器?

MQTT Broker / MQTT 客戶端結(jié)構(gòu)

MQTT 代理是每個(gè)發(fā)布/訂閱協(xié)議的中心。根據(jù)實(shí)施情況,代理可以管理多達(dá)數(shù)千個(gè)同時(shí)連接的MQTT 客戶端。代理負(fù)責(zé)接收所有消息、過(guò)濾消息、確定誰(shuí)訂閱了每條消息并將消息發(fā)送給那些訂閱的客戶端。Broker 還持有所有持久客戶端的會(huì)話,包括訂閱和錯(cuò)過(guò)的消息。Broker 的另一個(gè)任務(wù)是客戶端的認(rèn)證和授權(quán)。通常代理是可擴(kuò)展的,這有助于自定義身份驗(yàn)證、授權(quán)以及與后端系統(tǒng)的集成。集成尤為重要,因?yàn)锽roker往往是直接暴露在互聯(lián)網(wǎng)上的組件,服務(wù)于眾多客戶端,需要將消息轉(zhuǎn)發(fā)給下游的分析處理系統(tǒng)。簡(jiǎn)而言之,Broker 是中心樞紐,每條消息都必須通過(guò)它進(jìn)行路由。因此,重要的是您的經(jīng)紀(jì)人具有高度可擴(kuò)展性,

4. 什么是 MQTT 負(fù)載?

消息通過(guò)使用MQTT的代理與其他設(shè)備或軟件共享。每條消息都有一個(gè)主題,Broker可以根據(jù)該主題進(jìn)一步處理消息。_ 此外,每條消息都包含一個(gè)消息內(nèi)容,即所謂的有效負(fù)載。MQTT負(fù)載未綁定到一定的結(jié)構(gòu),可以自由設(shè)計(jì)。然而,為消息內(nèi)容指定一個(gè)特定的結(jié)構(gòu)是有幫助的,這樣它就可以被其他設(shè)備或軟件讀取。_ 潛在的消息結(jié)構(gòu)是JSON、XMLOPC UA。定義的結(jié)構(gòu)使一旦所有設(shè)備和軟件以相同的結(jié)構(gòu)進(jìn)行通信,內(nèi)部通信就會(huì)順暢。

5. 什么是 MQTT 客戶端,它是如何工作的?

所有以某種方式連接到代理的設(shè)備和軟件,例如 OPC Router,都稱為 MQTT 客戶端。客戶端可以向代理發(fā)送消息(發(fā)布)并從代理接收消息(訂閱)。向代理發(fā)送消息時(shí),必須指定 MQTT 主題,可用于進(jìn)一步處理消息。可以使用不同的服務(wù)質(zhì)量 (QoS) 發(fā)送消息:

  • 服務(wù)質(zhì)量 0:客戶端的消息只發(fā)送一次,無(wú)論它是否已到達(dá)代理。
  • 服務(wù)質(zhì)量 1:客戶的消息被一遍又一遍地發(fā)送,直到經(jīng)紀(jì)人以確認(rèn)接收的方式響應(yīng)。這可能導(dǎo)致消息多次到達(dá)代理。
  • 服務(wù)質(zhì)量 2:客戶端發(fā)送一次消息,同時(shí)確保它已到達(dá)代理。服務(wù)質(zhì)量 2 通信需要比服務(wù)質(zhì)量 0 或 1 更多的帶寬。

同時(shí),客戶端可以在代理處訂閱一個(gè) MQTT 主題,以便代理自動(dòng)接收所有到達(dá)代理的帶有此 MQTT 主題的信息。例如,plant1 / hall1 / temperature。使用通配符,客戶端可以從代理接收多條信息。例如,它從列表 plant1 / hall1 接收 MQTT 主題 plant1 / hall1 / # 的所有條目。使用主題 plant1 / + / temperature 發(fā)送來(lái)自 plant1 的所有溫度條目。

最后,MQTT 客戶端具有“Last Will”功能。如果與代理的連接丟失,則會(huì)發(fā)送最后一條消息,以便代理注意到連接錯(cuò)誤并可以將其傳遞給用戶。

6. 什么時(shí)候應(yīng)該使用 MQ 遙測(cè)傳輸,什么時(shí)候不應(yīng)該?

使用消息隊(duì)列遙測(cè)傳輸,數(shù)據(jù)從大量機(jī)器發(fā)送到一個(gè)目的地——云——在那里可以分析、解釋和轉(zhuǎn)發(fā)數(shù)據(jù)。
云托管一個(gè)MQTT 代理——機(jī)器與其他機(jī)器和/或人之間的中介。這是一個(gè)重要的區(qū)別,因?yàn)闄C(jī)器之間不直接通信,而是通過(guò)代理進(jìn)行通信。
MQTT使用“主題”的概念來(lái)組織其數(shù)據(jù),并使用發(fā)布/訂閱模型通過(guò)云將主題傳達(dá)給其他各方。
例如:空調(diào)系統(tǒng)將有關(guān)其壓縮機(jī)“健康”的數(shù)據(jù)發(fā)送(或發(fā)布)到云端。所有具有批準(zhǔn)憑據(jù)的相關(guān)方——機(jī)器或人——都可以訂閱該主題以接收信息。
訂戶可以是維護(hù)工程師(人)、零件采購(gòu)系統(tǒng)(軟件/機(jī)器)或維護(hù)計(jì)劃系統(tǒng)(軟件/機(jī)器)。
突然間,機(jī)器生命周期的每個(gè)方面都可供審查,這代表了一個(gè)令人興奮的深刻機(jī)會(huì),可以連接這些信息來(lái)發(fā)現(xiàn)缺陷、節(jié)省成本、提高效率,并為物聯(lián)網(wǎng)制定計(jì)劃。

讓您的系統(tǒng)通過(guò) MQTT 相互通信。

立即使用 MQTT 插件測(cè)試 OPC Router,免費(fèi)且無(wú)義務(wù)。

免費(fèi)測(cè)試 MQTT 連接

7. IoT(物聯(lián)網(wǎng))中的 MQ 遙測(cè)傳輸有什么用?

Topic 一詞指的是一個(gè) UTF-8 字符串,代理使用該字符串為每個(gè)連接的客戶端過(guò)濾消息。主題由一個(gè)或多個(gè)主題級(jí)別組成。每個(gè)主題級(jí)別由正斜杠(主題級(jí)別分隔符)分隔。與消息隊(duì)列相比,MQTT 主題非常簡(jiǎn)單。客戶端不必在發(fā)布或訂閱之前創(chuàng)建所需的主題。代理接受任何有效主題而無(wú)需事先初始化。請(qǐng)注意,每個(gè)主題必須至少包含一個(gè)字符,并且主題字符串允許有空格。主題區(qū)分大小寫。例如 _myhome / temperature 和 _MyHome / Temperature 是兩個(gè)不同的主題。此外,斜杠本身就是一個(gè)有效的主題。
通常,您可以隨意命名 MQTT 主題。但是,有一個(gè)例外:__ 以 $ 符號(hào)開(kāi)頭的主題有不同的用途。__ 如果您訂閱多級(jí)占位符作為主題 (#),則這些主題不是訂閱的一部分。$ 符號(hào)主題保留用于MQTT 代理的內(nèi)部統(tǒng)計(jì)。客戶不能就這些主題發(fā)布消息。目前沒(méi)有針對(duì)此類主題的官方標(biāo)準(zhǔn)。通常 $SYS/ 用于以下所有信息,但經(jīng)紀(jì)人的實(shí)現(xiàn)各不相同。$ SYS 主題的建議是 MQTT-GitHub wiki。

8.如何輕松上手MQ Telemetry Transport?

為了確保輕松開(kāi)始,建議使用 HiveMQ 作為 MQTT 代理。HiveMQ 是一個(gè)基于開(kāi)放物聯(lián)網(wǎng)標(biāo)準(zhǔn)的代理。因此,它提供了對(duì)范圍廣泛的 MQTT 客戶端的訪問(wèn)。它專為在連接的設(shè)備和服務(wù)器之間快速、高效和可靠地傳輸數(shù)據(jù)而構(gòu)建。
MQTT 協(xié)議提供了一種使用發(fā)布/訂閱模型執(zhí)行消息傳遞的簡(jiǎn)單方法。這使得它特別適合物聯(lián)網(wǎng)和云應(yīng)用,例如低功耗傳感器或手機(jī)、嵌入式計(jì)算機(jī)或微控制器等移動(dòng)設(shè)備。
結(jié)合 OPC Router,可以輕松查詢連接。并自行測(cè)試。

簡(jiǎn)單的MQTT通信實(shí)踐

MQTT 消息協(xié)議特別適用于低帶寬和高延遲環(huán)境,例如機(jī)器對(duì)機(jī)器 (M2M) 通信。因此,通過(guò)中央代理操作的發(fā)布和訂閱原則在物聯(lián)網(wǎng)中非常流行。 

通過(guò) MQTT 通信的實(shí)際好處是它減輕了內(nèi)部網(wǎng)絡(luò)的負(fù)擔(dān),并且仍然可以與任意數(shù)量的不同系統(tǒng)進(jìn)行通信。使用特殊軟件,例如OPC Router,可以將數(shù)據(jù)發(fā)布到其他系統(tǒng)。這種系統(tǒng)可以是,例如,SAPOPC UA、SQLREST。來(lái)自不支持 MQTT 的來(lái)源的數(shù)據(jù)可以傳輸?shù)狡渌到y(tǒng)以作為發(fā)布者進(jìn)行進(jìn)一步處理。可靠的消息協(xié)議 MQTT 可以加速內(nèi)部通信并創(chuàng)造帶寬容量。 

這可能也讓你感興趣

什么是休息?

REST 架構(gòu)模型已成為系統(tǒng)集成的領(lǐng)先標(biāo)準(zhǔn)。通過(guò) REST 的系統(tǒng)連接既有效又簡(jiǎn)單。由于 REST 的無(wú)狀態(tài)性,可以輕松擴(kuò)展,因此 REST 在業(yè)界得到廣泛應(yīng)用。我們?cè)谥R(shí)庫(kù)中為您提供有關(guān) REST 和 REST API 的必要基礎(chǔ)知識(shí)。

什么是 JSON?

隨著互聯(lián)網(wǎng)和計(jì)算機(jī)系統(tǒng)的一般聯(lián)網(wǎng),對(duì)數(shù)據(jù)交換的需求增加了。對(duì)于 web 系統(tǒng),平臺(tái)獨(dú)立性在這里非常重要。JSON 是一種節(jié)省資源、人類和機(jī)器可讀的數(shù)據(jù)格式,為此目的而建立起來(lái)。您可以在此處找到有關(guān) JSON 的實(shí)用基礎(chǔ)知識(shí)及其使用技巧。

什么是 OPC UA?

OPC UA支持對(duì)工業(yè) 4.0 中的機(jī)器、設(shè)備和其他系統(tǒng)的標(biāo)準(zhǔn)化訪問(wèn),從而確保獨(dú)立于制造商的數(shù)據(jù)交換。在我們的知識(shí)庫(kù)中,您將找到工業(yè) 4.0 和工業(yè)物聯(lián)網(wǎng) (IIoT) 最重要的通信協(xié)議的功能和術(shù)語(yǔ)的概述。

OPC Router的 MQTT 客戶端插件

在我們的知識(shí)庫(kù)中,您將找到與我們的MQTT 插件連接的詳細(xì)分步說(shuō)明,適用于以下領(lǐng)域:Amazon AWS IoT Cloud、Microsoft Azure IoT HubIBM Watson、Google IoT CoreSiemens MindSphere IoT。

讓您的系統(tǒng)通過(guò) MQTT 相互通信

現(xiàn)在可以免費(fèi)且無(wú)義務(wù)地使用 MQTT 插件測(cè)試 OPC Router,或者注冊(cè)我們的時(shí)事通訊并隨時(shí)了解變化和新聞。

MQTT插件詳情
測(cè)試 MQTT 連接
訂閱時(shí)事通訊