什麼是物聯網?常見 IoT 協議最全講解
**導讀:**本文介紹物聯網基礎知識:什麼是物聯網,以及常見的物聯網協議。
作者:付強
來源:IoT 物聯網技術(ID:IoT-Tech-Expo)
01 什麼是物聯網?
物聯網(Internet of Things)這個概念讀者應該不會陌生。物聯網的概念最早於 1999 年被提出來,曾被稱爲繼計算機、互聯網之後,世界信息產業發展的第三次浪潮,到現在已經發展了 20 餘年。
如今,在日常生活中,我們已經可以接觸到非常多的物聯網產品,例如各種智能家電、智能門鎖等,這些都是物聯網技術比較成熟的應用。
物聯網最早的定義是:**把所有物品通過射頻識別等信息傳感設備與互聯網連接起來,實現智能化識別和管理。**當然,物聯網發展到今天,它的定義和範圍已經有了擴展與變化,下面是現代物聯網具有的特點。
1. 物聯網也是互聯網
物聯網,即物的互聯網,屬於互聯網的一部分。物聯網將互聯網的基礎設施作爲信息傳遞的載體,即現代的物聯網產品一定是 “物” 通過某種方式接入了互聯網,而 “物” 通過互聯網上傳 / 下載數據,以及與人進行交互。
舉個通過手機 App 遠程啓動汽車的例子,當用戶通過 App 完成啓動操作時,指令從已接入互聯網的手機發送到雲端平臺,雲端平臺找到已接入互聯網的車端電腦,然後下發指令,車端電腦執行啓動命令,並將執行的結果反饋到雲端平臺;同時,用戶的這次操作被記錄在雲端,用戶可以隨時從 App 上查詢遠程開鎖記錄歷史。
這就是一個典型的物聯網場景,它是屬於互聯網應用的一種。“物” 接入互聯網,數據和信息通過互聯網交互,同時數據和其他互聯網應用一樣匯聚到了雲端。
2. 物聯網的主體是 “物”
前面說現代物聯網應用是一種互聯網應用,但是物聯網應用和傳統互聯網應用又有一個很大的不同,那就是傳統互聯網生產和消費數據的主體是人,而現代物聯網生產和消費數據的主體是物。
在現代物聯網的應用場景下,數據的生產方是 “物”,比如智能設備或者傳感器,數據的消費者往往也是 “物”。
在智慧農業的應用中,孵化室中的溫度傳感器將孵化室中的溫度週期性地上傳到控制中心。當溫度低於一定閾值時,中心按照預設的規則遠程打開加溫設備。在這一場景中,數據的生產者是溫度傳感器,數據的消費者是加溫設備,二者都是 “物”,人並沒有直接參與其中。
物聯網和傳統互聯網最大的不同:數據的生產者和消費者主要是物,數據內容也是和 “物” 息息相關的。
3. 物聯網和人工智能
人工智能可謂近年來 IT 領域最火的詞語之一。縱觀人工智能的發展路線,我們可以看到,人工智能的發展之所以能夠突飛猛進,主要有以下兩個原因。
-
硬件的發展使得深度學習神經網絡的學習時間迅速縮短。
-
在大數據的時代,獲取大量數據的成本變低。
事實上,第二個原因尤爲重要,神經網絡由於其特性,需要海量的數據進行學習,可供學習的有效數據量往往決定了最後訓練出的神經網絡的效果,甚至算法的重要性都可以排在數據量之後。
而物聯網設備,比如智能家電、可穿戴設備等,**每天都在產生海量的數據,這些數據經過處理和清洗後,都可以作爲不錯的訓練數據反哺神經網絡。**同時,訓練出來的神經網絡又可以重新應用到物聯網設備中,進而形成一個良性循環。
圖 1-1 所示爲物聯網應用人工智能方法進行數據採集 - 迭代的循環。通過物聯網設備採集並訓練數據,在數據中心完成訓練後,將模型應用到物聯網設備,並評估效果進行下一次迭代。
物聯網是人工智能落地的一個非常好的應用場景。隨着人工智能的迅速發展,物聯網這個同樣在很多年前就提出的理論和技術,也會迎來新的春天。
目前,互聯網數據入口漸漸朝幾大巨頭(例如阿里、騰訊)匯聚,規模較小的公司獲取數據的代價越來越高,物聯網這塊還未完全開發的數據領域就顯得尤爲重要。
前端設備最終會趨於相同,出現同質化競爭,而如何採集和使用好設備產生的海量數據,纔是你是否具有競爭優勢的決定性因素。
4. 物聯網的現狀與前景
隨着 5G 時代的來臨,物聯網的發展將會非常迅速。同時,物聯網方向的新增融資也一直處於上升趨勢。下面再從應用場景角度來談一下物聯網行業的發展前景。
物聯網的應用場景非常廣泛,包括:
-
智慧城市
-
智慧建築
-
車聯網
-
智慧社區
-
智能家居
-
智慧醫療
-
工業物聯網
在不同的場景下,物聯網應用的差異非常大,終端和網絡架構的異構性強,這意味着在物聯網行業存在足夠多的細分市場,這就很難出現一家在市場份額上具有統治力的公司,同時由於市場夠大,所以能夠讓足夠多的公司存活。這種情況在互聯網行業是不常見的,互聯網行業的頭部效應非常明顯,市場絕大部分份額往往被頭部的兩三家公司佔據。
物聯網模式相對於互聯網模式來說更 “重” 一些。物聯網的應用總是伴隨着前端設備,這也就意味着用戶的切換成本相對較高,畢竟拆除設備、重新安裝設備比動動手指重新下載一個應用要複雜不少。
這也就意味着,資本的推動力在物聯網行業中相對更弱。如果你取得了先發優勢,那麼後來者想光靠資本的力量趕上或者將你擠出市場,那他付出的代價要比在互聯網行業中大得多。
所以說,物聯網行業目前仍然是一片藍海,小規模公司在這個行業中也完全有能力和大規模公司同臺競爭。在 AI 和區塊鏈的熱度冷卻後,物聯網很有可能會成爲下一個風口。作爲程序員,在風口來臨之前,提前進行一些知識儲備是非常有必要的。
02 常見的物聯網協議
1. MQTT 協議
MQTT 協議(Message Queue Telemetry Transport,消息隊列遙測傳輸協議)是 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 於 1999 年爲了一個通過衛星網絡連接輸油管道的項目開發的。爲了滿足低電量消耗和低網絡帶寬的需求,MQTT 協議在設計之初就包含了以下幾個特點:
-
實現簡單
-
提供數據傳輸的 QoS
-
輕量、佔用帶寬低
-
可傳輸任意類型的數據
-
可保持的會話(Session)
隨着多年的發展,MQTT 協議的重點不再只是嵌入式系統,而是更廣泛的物聯網世界。
簡單來說,MQTT 協議有以下特性:
-
基於 TCP 協議的應用層協議
-
採用 C/S 架構
-
使用訂閱 / 發佈模式,將消息的發送方和接受方解耦
-
提供 3 種消息的 QoS(Quality of Service):至多一次、最少一次、只有一次
-
收發消息都是異步的,發送方不需要等待接收方應答
MQTT 協議的架構由 Broker 和連接到 Broker 的多個 Client 組成,如圖 2-1 所示。
**MQTT 協議可以爲大量的低功率、工作網絡環境不可靠的物聯網設備提供通信保障。**而它在移動互聯網領域也大有作爲,很多 Android App 的推送功能都是基於 MQTT 協議實現的,一些 IM 的實現也是基於 MQTT 協議的。
2. MQTT-SN 協議
MQTT-SN(MQTT for Sensor Network)協議是 MQTT 協議的傳感器版本。MQTT 協議雖然是輕量的應用層協議,但是 MQTT 協議是運行於 TCP 協議棧之上的,TCP 協議對於某些計算能力和電量非常有限的設備來說,比如傳感器,就不太適用了。
MQTT-SN 運行在 UDP 協議上,同時保留了 MQTT 協議的大部分信令和特性,如訂閱和發佈等。MQTT-SN 協議引入了 MQTT-SN 網關這一角色,網關負責把 MQTT-SN 協議轉換爲 MQTT 協議,並和遠端的 MQTT Broker 進行通信。MQTT-SN 協議支持網關的自動發現。MQTT-SN 協議的通信模型如圖 2-2 所示。
3. CoAP 協議
CoAP(Constrained Application Protocol)協議是一種運行在資源比較緊張的設備上的協議。CoAP 協議通常也是運行在 UDP 協議上的。
**CoAP 協議設計得非常小巧,最小的數據包只有 4 個字節。**CoAP 協議採用 C/S 架構,使用類似於 HTTP 協議的請求 - 響應的交互模式。設備可以通過類似於 coap://192.168.1.150:5683/2ndfloor/temperature 的 URL 來標識一個實體,並使用類似於 HTTP 的 PUT、GET、POST、DELET 請求指令來獲取或者修改這個實體的狀態。
同時,CoAP 提供一種觀察模式,觀察者可以通過 OBSERVE 指令向 CoAP 服務器指明觀察的實體對象。當實體對象的狀態發生變化時,觀察者就可以收到實體對象的最新狀態,類似於 MQTT 協議中的訂閱功能。CoAP 協議的通信模型如圖 2-3 所示。
4. LwM2M 協議
LwM2M( Lightweight Machine-To-Machine )協議是由 Open Mobile Alliance(OMA)定義的一套適用於物聯網的輕量級協議。它使用 RESTful 接口,提供設備的接入、管理和通信功能,也適用於資源比較緊張的設備。LwM2M 協議的架構如圖 2-4 所示。
LwM2M 協議底層使用 CoAP 協議傳輸數據和信令。而在 LwM2M 協議的架構中,CoAP 協議可以運行在 UDP 或者 SMS(短信)之上,通過 DTLS(數據報傳輸層安全)來實現數據的安全傳輸。
LwM2M 協議架構主要包含 3 種實體——LwM2M Bootstrap Server、LwM2M Server 和 LwM2M Client。
LwM2M Bootstrap Server 負責引導 LwM2M Client 註冊並接入 LwM2M Server,之後 LwM2M Server 和 LwM2M Client 就可以通過協議指定的接口進行交互了。
5. HTTP 協議
正如我們之前所講,物聯網也是互聯網,HTTP 這個在互聯網中廣泛應用的協議,在合適的環境下也可以應用到物聯網中。
在一些計算和硬件資源比較充沛的設備上,比如運行安卓操作系統的設備,完全可以使用 HTTP 協議上傳和下載數據,就好像在開發移動應用一樣。設備也可以使用運行在 HTTP 協議上的 WebSocket 主動接收來自服務器的數據。
6. LoRaWAN 協議
LoRaWAN 協議是由 LoRa 聯盟提出並推動的一種低功率廣域網協議,它和我們之前介紹的幾種協議有所不同。MQTT 協議、CoAP 協議都是運行在應用層,底層使用 TCP 協議或者 UDP 協議進行數據傳輸,整個協議棧運行在 IP 網絡上。而 LoRaWAN 協議則是物理層 / 數據鏈路層協議,它解決的是設備如何接入互聯網的問題,並不運行在 IP 網絡上。
LoRa(Long Range)是一種無線通信技術,**它具有使用距離遠、功耗低的特點。**在上面的場景下,用戶就可以使用 LoRaWAN 技術進行組網,在工程設備上安裝支持 LoRa 的模塊。
通過 LoRa 的中繼設備將數據發往位於隧道外部的、有互聯網接入的 LoRa 網關,LoRa 網關再將數據封裝成可以在 IP 網絡中通過 TCP 協議或者 UDP 協議傳輸的數據協議包(比如 MQTT 協議),然後發往雲端的數據中心。
7. NB-IoT 協議
NB-IoT(Narrow Band Internet of Things)協議和 LoRaWAN 協議一樣,是將設備接入互聯網的物理層 / 數據鏈路層的協議。
與 LoRA 不同的是,NB-IoT 協議構建和運行在蜂窩網絡上,消耗的帶寬較低,可以直接部署到現有的 GSM 網絡或者 LTE 網絡。設備安裝支持 NB-IoT 的芯片和相應的物聯網卡,然後連接到 NB-IoT 基站就可以接入互聯網。而且 NB-IoT 協議不像 LoRaWAN 協議那樣需要網關進行協議轉換,接入的設備可以直接使用 IP 網絡進行數據傳輸。
NB-IoT 協議相比傳統的基站,增益提高了約 20dB,可以覆蓋到地下車庫、管道、地下室等之前信號難以覆蓋的地方。
更多關於從 0 到 1 搭建物聯網平臺的方法,推薦閱讀《物聯網系統開發:從 0 到 1 構建物聯網 IoT 平臺》。
本文摘編自《物聯網系統開發:從 0 到 1 構建 IoT 平臺》,經出版方授權發佈。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/50dPMXmddKGsJPxlThY0ng