物聯網在使用商業以及工業方向上,可以被劃分為IoT(物聯網)和IIoT(工業物聯網),二者在使用上存在著些許區別:
IoT可用于很多細分市場,包括消費品、農業、制造業和醫療等;而IIoT主要面向工業應用,比如制造和能源行業。IoT涉及的范圍比IIoT更廣。IIoT更加側重于對數據的訪問,以便工業領域可以及時的調整相應的制作流程。
了解了IoT和IIoT的區別,現在讓我們來了解MQTT。
首先,要了解MQTT是什么,我們可以從它的名稱入手,既MQTT是哪些單詞的縮寫:
消息(Message ):簡單來講,MQTT包括一個數據源,它會向“代理”(Broker)發布消息,然后由代理將消息推送給所有已經訂閱了該主題的設備或終端。
隊列(Queue或Queuing):盡管名字中包含“隊列”一詞,但MQTT并不是一種基于隊列的協議,顯然這一項在整個協議更多過程中都沒有使用過。
遙測(Telemetry):IoT(物聯網)和IIoT(工業物聯網)的關鍵,數據傳輸是遙測技術的核心。
傳輸(Transport):通過中央集線器或代理進行點到點的數據傳輸。
MQTT是一個簡單的中心輻射型系統:傳感器、應用和設備之間的通信是通過運行在數據中心的中央代理來實現的。從處理需求的角度來看,這些設備也不會嘗試彼此通信,因為所有數據都通過一個中央代理來實現的。MQTT是輕量級的,因此它可以用于帶寬和延遲受限的網絡環境中的各種應用。MQTT簡單快捷,整個操作分為:連接、身份驗證、通信和終止。隨著數據量的增加,MQTT協議的簡單性和輕量級使得它具有很強的可擴展性。MQTT協議非常適合于涉及許多傳感器的大型遠程網絡系統,如輸電線、管道、油井等。
上面,我們介紹了工業物聯網(IIoT)和物聯網(IoT)之間的區別,以及MQTT的含義。接下來,我們將介紹MQTT協議的應用。
除了能夠監控長距離石油管道和其他能源傳輸場景監控數據傳輸之外,MQTT精簡的低帶寬特性使其適合于許多其他應用。家庭自動化應用包括供暖、通風、空調(HVAC)、照明、智能設備和安全系統。例如,在家庭園藝中,光、溫、濕度傳感器將采集到的實時數據傳輸到相應的接收端,然后根據這些數據自動遠程澆水,實現高科技管理。醫療監測、交通網絡監測、資產跟蹤、環境狀況監測、氣候數據記錄和自動報亭監測等,這些環境同樣也在使用MQTT協議。
家庭自動化 — MQTT協議的一種應用
MQTT在協議設計時就考慮到了不同設備的計算性能的差異,所以所有的協議采用二進制格式編解碼,并且編解碼格式都非常易于開發和實現。最小的數據包只有2個字節,對于低功耗低速網絡也有很好的適應性。同時,MQTT占用極少的帶寬,使得在進行長距離數據傳輸的時候能夠將數據響應延遲的問題降低到很小,使得數據、指令的傳輸更加的迅速。
Mqtt的優點
1、Mqtt有許多優點
1.mqtt的獨特功能是每個消息頭可以縮短為2個字節。對于HTTP,為每個新請求消息重新建立HTTP連接會產生相當大的開銷。MQ和mqtt使用的持久連接可以極大地減少這種開銷。
2.遏制不穩定網絡。Mqtt和MQ可以從諸如斷開連接之類的故障中恢復,而無需進壹步的代碼要求。但是,HTTP本身無法實現這壹目標,客戶端必須重試編碼,這將增
加身份問題。
3.低功耗mqtt設計用于低功耗。
HTTP設計中未考慮此因素,這將增加功耗。
4.當連接數百萬個客戶端時,在HTTP堆棧中維護數百萬個并發連接需要大量工作來提供支持。
盡管這種支持是可行的,但大多數商業產品都經過優化,以處理此訂單上的持久連接。可以通過mqtt處理多達壹百萬個并發設備。相比之下,MQ不是為許多同時出現的客戶設計的。
5.推送通知。
您需要能夠及時向客戶發送通知。為此,應使用常規輪詢或推送方法。就電池、系統負載和帶寬而言,推送是最好的解決方案。
6.客戶端平臺之間的差異。HTTP和mqtt客戶端都在許多平臺上實現。mqtt的簡單性幫助您在其他客戶機上以最小的工作量實現mqtt。
7.防火墻容錯。某些公司防火墻將出站連接限制為某些預定義端口。這些端口通常限于HTTP(端口80)、HTTPS(端口443)等。HTTP顯然在這種情況下起作用。Mqtt封裝在WebSockets連接中,并顯示為HTTP升級請求,因此它可以在這種情況下運行。
mqtt的缺點
事實上,mqtt被廣泛使用,幾乎可以在任何大型硬件和互聯網公司中找到,如Facebook、BP、阿里巴巴和百度。
由于mqtt的技術優勢,越來越多的公司選擇mqtt作為物聯網產品通信的標準協議。因此,工程師們逐漸意識到mqtt協議的功能需要通過大規模商業化來改進。例如:
1.如果沒有完整的SDK,則需要不同異構設備的軟件SDK包與mqtt服務器(如MCU、Linux、Android、IOS、web)進行通信,實現互聯互通。
2.不支持文件和AV。在壹些應用場景中,要傳輸的信息可能不限于需要通過AV與文件通信的指令,例如語音和視頻信號。
3.不支持與第叁方HTTP集成。Mqtt協議優于傳統的HTTP協議,但基于傳統HTTP協議的Web服務器在主流市場上仍占據主導地位。這些服務器應與mqtt協議互連,以降低升級成本。
4.不支持負載分配。負載分布服務器對于高并發性和防止惡意攻擊也至關重要。
5.不支持用戶管理界面。這在用戶分析設備行為數據時尤為重要。在工業4.0和大數據時代,這是壹種必然的需求。
6.設備脫機后,不支持脫機消息來補償從mqtt服務器到設備的控制信息丟失。
7.不支持點對點通信,使用標準mqtt協議。理論上,點對點通信可以通過相互訂閱來實現,但邏輯相對復雜,涉及設備安全。
8、不支持集團溝通和集團管理,實現集團成員的管理。團隊成員可以交換消息,如果壹臺設備由多人控制或多臺設備由一人控制,這一點尤其有用。