MQTT – 消息隊列遙測傳輸
MQTT(消息隊列遙測傳輸)是一種用于受限低帶寬網(wǎng)絡和極高延遲物聯(lián)網(wǎng)設備的消息傳遞協(xié)議。由于消息隊列遙測傳輸專用于低帶寬、高延遲環(huán)境,因此它是機器對機器 (M2M) 通信的理想協(xié)議。
MQTT 按照發(fā)布者/訂閱者原則工作,并通過中央代理進行操作。這意味著發(fā)送方和接收方?jīng)]有直接連接。數(shù)據(jù)源通過發(fā)布報告他們的數(shù)據(jù),并且所有對某些消息感興趣的接收者(“由主題標記”)都會獲得傳遞的數(shù)據(jù),因為他們已經(jīng)注冊為訂閱者。
在 IoT 和 IIoT 中,MQTT 一直用于連接云環(huán)境。在我們以工業(yè)為重點的實踐說明中,了解您需要了解的有關使用 MQTT 的所有信息。在我們的實際示例和工業(yè)解釋中發(fā)現(xiàn)您需要了解的有關使用MQTT 的所有信息。您可以訪問我們的教程流
,找到有關此主題的專門視頻。
1. MQTT 是什么意思?
MQTT 代表消息隊列遙測傳輸。它是一種極其簡單和輕量級的消息傳遞協(xié)議(訂閱和發(fā)布),專為具有高延遲、低帶寬或不可靠網(wǎng)絡的有限設備和網(wǎng)絡而設計。其設計原則旨在降低設備的網(wǎng)絡帶寬和資源需求,并確保供應安全。此外,這些原則有利于 M2M(機器對機器)或物聯(lián)網(wǎng)設備,因為電池性能和帶寬非常重要。
2.什么是MQTT主題?
借助MQ Telemetry Transport,資源受限的 IoT 設備可以將有關特定主題的信息發(fā)送或發(fā)布到充當MQTT 消息代理的服務器。經(jīng)紀人然后將信息傳輸給那些先前訂閱了客戶主題的客戶。對人來說,主題看起來像分層文件路徑。客戶可以訂閱主題的特定層級或使用通配符訂閱多個級別。
MQTT協(xié)議對于由于偶爾的帶寬限制或不可靠的連接而具有不同延遲的無線網(wǎng)絡是一個不錯的選擇。如果從訂閱客戶端到代理的連接中斷,代理會緩沖消息并在訂閱者重新在線時將它們發(fā)送給訂閱者。如果從發(fā)布客戶端到 Broker 的連接在沒有通知的情況下斷開,則 Broker 可以斷開連接并向訂閱者發(fā)送一條緩存的消息,其中包含來自發(fā)布者的指令。
3. 什么是 MQTT 服務器?
MQTT 代理是每個發(fā)布/訂閱協(xié)議的中心。根據(jù)實施情況,代理可以管理多達數(shù)千個同時連接的MQTT 客戶端。代理負責接收所有消息、過濾消息、確定誰訂閱了每條消息并將消息發(fā)送給那些訂閱的客戶端。Broker 還持有所有持久客戶端的會話,包括訂閱和錯過的消息。Broker 的另一個任務是客戶端的認證和授權。通常代理是可擴展的,這有助于自定義身份驗證、授權以及與后端系統(tǒng)的集成。集成尤為重要,因為Broker往往是直接暴露在互聯(lián)網(wǎng)上的組件,服務于眾多客戶端,需要將消息轉發(fā)給下游的分析處理系統(tǒng)。簡而言之,Broker 是中心樞紐,每條消息都必須通過它進行路由。因此,重要的是您的經(jīng)紀人具有高度可擴展性,
4. 什么是 MQTT 負載?
消息通過使用MQTT的代理與其他設備或軟件共享。每條消息都有一個主題,Broker可以根據(jù)該主題進一步處理消息。_ 此外,每條消息都包含一個消息內容,即所謂的有效負載。MQTT負載未綁定到一定的結構,可以自由設計。然而,為消息內容指定一個特定的結構是有幫助的,這樣它就可以被其他設備或軟件讀取。_ 潛在的消息結構是JSON、XML或OPC UA。定義的結構使一旦所有設備和軟件以相同的結構進行通信,內部通信就會順暢。
5. 什么是 MQTT 客戶端,它是如何工作的?
所有以某種方式連接到代理的設備和軟件,例如 OPC Router,都稱為 MQTT 客戶端。客戶端可以向代理發(fā)送消息(發(fā)布)并從代理接收消息(訂閱)。向代理發(fā)送消息時,必須指定 MQTT 主題,可用于進一步處理消息。可以使用不同的服務質量 (QoS) 發(fā)送消息:
- 服務質量 0:客戶端的消息只發(fā)送一次,無論它是否已到達代理。
- 服務質量 1:客戶的消息被一遍又一遍地發(fā)送,直到經(jīng)紀人以確認接收的方式響應。這可能導致消息多次到達代理。
- 服務質量 2:客戶端發(fā)送一次消息,同時確保它已到達代理。服務質量 2 通信需要比服務質量 0 或 1 更多的帶寬。
同時,客戶端可以在代理處訂閱一個 MQTT 主題,以便代理自動接收所有到達代理的帶有此 MQTT 主題的信息。例如,plant1 / hall1 / temperature。使用通配符,客戶端可以從代理接收多條信息。例如,它從列表 plant1 / hall1 接收 MQTT 主題 plant1 / hall1 / # 的所有條目。使用主題 plant1 / + / temperature 發(fā)送來自 plant1 的所有溫度條目。
最后,MQTT 客戶端具有“Last Will”功能。如果與代理的連接丟失,則會發(fā)送最后一條消息,以便代理注意到連接錯誤并可以將其傳遞給用戶。
6. 什么時候應該使用 MQ 遙測傳輸,什么時候不應該?
使用消息隊列遙測傳輸,數(shù)據(jù)從大量機器發(fā)送到一個目的地——云——在那里可以分析、解釋和轉發(fā)數(shù)據(jù)。
云托管一個MQTT 代理——機器與其他機器和/或人之間的中介。這是一個重要的區(qū)別,因為機器之間不直接通信,而是通過代理進行通信。
MQTT使用“主題”的概念來組織其數(shù)據(jù),并使用發(fā)布/訂閱模型通過云將主題傳達給其他各方。
例如:空調系統(tǒng)將有關其壓縮機“健康”的數(shù)據(jù)發(fā)送(或發(fā)布)到云端。所有具有批準憑據(jù)的相關方——機器或人——都可以訂閱該主題以接收信息。
訂戶可以是維護工程師(人)、零件采購系統(tǒng)(軟件/機器)或維護計劃系統(tǒng)(軟件/機器)。
突然間,機器生命周期的每個方面都可供審查,這代表了一個令人興奮的深刻機會,可以連接這些信息來發(fā)現(xiàn)缺陷、節(jié)省成本、提高效率,并為物聯(lián)網(wǎng)制定計劃。
7. IoT(物聯(lián)網(wǎng))中的 MQ 遙測傳輸有什么用?
Topic 一詞指的是一個 UTF-8 字符串,代理使用該字符串為每個連接的客戶端過濾消息。主題由一個或多個主題級別組成。每個主題級別由正斜杠(主題級別分隔符)分隔。與消息隊列相比,MQTT 主題非常簡單。客戶端不必在發(fā)布或訂閱之前創(chuàng)建所需的主題。代理接受任何有效主題而無需事先初始化。請注意,每個主題必須至少包含一個字符,并且主題字符串允許有空格。主題區(qū)分大小寫。例如 _myhome / temperature 和 _MyHome / Temperature 是兩個不同的主題。此外,斜杠本身就是一個有效的主題。
通常,您可以隨意命名 MQTT 主題。但是,有一個例外:__ 以 $ 符號開頭的主題有不同的用途。__ 如果您訂閱多級占位符作為主題 (#),則這些主題不是訂閱的一部分。$ 符號主題保留用于MQTT 代理的內部統(tǒng)計。客戶不能就這些主題發(fā)布消息。目前沒有針對此類主題的官方標準。通常 $SYS/ 用于以下所有信息,但經(jīng)紀人的實現(xiàn)各不相同。$ SYS 主題的建議是 MQTT-GitHub wiki。
8.如何輕松上手MQ Telemetry Transport?
為了確保輕松開始,建議使用 HiveMQ 作為 MQTT 代理。HiveMQ 是一個基于開放物聯(lián)網(wǎng)標準的代理。因此,它提供了對范圍廣泛的 MQTT 客戶端的訪問。它專為在連接的設備和服務器之間快速、高效和可靠地傳輸數(shù)據(jù)而構建。
MQTT 協(xié)議提供了一種使用發(fā)布/訂閱模型執(zhí)行消息傳遞的簡單方法。這使得它特別適合物聯(lián)網(wǎng)和云應用,例如低功耗傳感器或手機、嵌入式計算機或微控制器等移動設備。
結合 OPC Router,可以輕松查詢連接。并自行測試。
簡單的MQTT通信實踐
MQTT 消息協(xié)議特別適用于低帶寬和高延遲環(huán)境,例如機器對機器 (M2M) 通信。因此,通過中央代理操作的發(fā)布和訂閱原則在物聯(lián)網(wǎng)中非常流行。
通過 MQTT 通信的實際好處是它減輕了內部網(wǎng)絡的負擔,并且仍然可以與任意數(shù)量的不同系統(tǒng)進行通信。使用特殊軟件,例如OPC Router,可以將數(shù)據(jù)發(fā)布到其他系統(tǒng)。這種系統(tǒng)可以是,例如,SAP、OPC UA、SQL或REST。來自不支持 MQTT 的來源的數(shù)據(jù)可以傳輸?shù)狡渌到y(tǒng)以作為發(fā)布者進行進一步處理。可靠的消息協(xié)議 MQTT 可以加速內部通信并創(chuàng)造帶寬容量。
這可能也讓你感興趣
REST 架構模型已成為系統(tǒng)集成的領先標準。通過 REST 的系統(tǒng)連接既有效又簡單。由于 REST 的無狀態(tài)性,可以輕松擴展,因此 REST 在業(yè)界得到廣泛應用。我們在知識庫中為您提供有關 REST 和 REST API 的必要基礎知識。
隨著互聯(lián)網(wǎng)和計算機系統(tǒng)的一般聯(lián)網(wǎng),對數(shù)據(jù)交換的需求增加了。對于 web 系統(tǒng),平臺獨立性在這里非常重要。JSON 是一種節(jié)省資源、人類和機器可讀的數(shù)據(jù)格式,為此目的而建立起來。您可以在此處找到有關 JSON 的實用基礎知識及其使用技巧。
OPC UA支持對工業(yè) 4.0 中的機器、設備和其他系統(tǒng)的標準化訪問,從而確保獨立于制造商的數(shù)據(jù)交換。在我們的知識庫中,您將找到工業(yè) 4.0 和工業(yè)物聯(lián)網(wǎng) (IIoT) 最重要的通信協(xié)議的功能和術語的概述。
在我們的知識庫中,您將找到與我們的MQTT 插件連接的詳細分步說明,適用于以下領域:Amazon AWS IoT Cloud、Microsoft Azure IoT Hub、IBM Watson、Google IoT Core和Siemens MindSphere IoT。
讓您的系統(tǒng)通過 MQTT 相互通信
現(xiàn)在可以免費且無義務地使用 MQTT 插件測試 OPC Router,或者注冊我們的時事通訊并隨時了解變化和新聞。