什麼是物聯網?常見IoT 物聯網協議最全講解

推薦語:這是一本從技術原理、工程實踐、設計模式和最佳實踐4個維度講解物聯網系統開發的著作,是作者10餘年實踐經驗的總結。

付強,某智慧社區企業的聯合創始人兼CTO,資深IoT技術專家,有10餘年從業經驗,專注於物聯網平臺和產品的設計與開發,非常熟悉各種物聯網協議和物聯網系統的架構與開發。

一、什麼是物聯網?

物聯網(Internet of Things)這個概念讀者應該不會陌生。物聯網的概念最早於1999年被提出來,曾被稱爲繼計算機、互聯網之後,世界信息產業發展的第三次浪潮,到現在已經發展了20餘年。如今,在日常生活中,我們已經可以接觸到非常多的物聯網產品,例如各種智能家電、智能門鎖等,這些都是物聯網技術比較成熟的應用。

物聯網最早的定義是:把所有物品通過射頻識別等信息傳感設備與互聯網連接起來,實現智能化識別和管理。當然,物聯網發展到今天,它的定義和範圍已經有了擴展與變化,下面是現代物聯網具有的特點。

1.1 物聯網也是互聯網

物聯網,即物的互聯網,屬於互聯網的一部分。物聯網將互聯網的基礎設施作爲信息傳遞的載體,即現代的物聯網產品一定是“物”通過某種方式接入了互聯網,而“物”通過互聯網上傳/下載數據,以及與人進行交互。

舉個通過手機App遠程啓動汽車的例子,當用戶通過App完成啓動操作時,指令從已接入互聯網的手機發送到雲端平臺,雲端平臺找到已接入互聯網的車端電腦,然後下發指令,車端電腦執行啓動命令,並將執行的結果反饋到雲端平臺;同時,用戶的這次操作被記錄在雲端,用戶可以隨時從App上查詢遠程開鎖記錄歷史。**

這就是一個典型的物聯網場景,它是屬於互聯網應用的一種。“物”接入互聯網,數據和信息通過互聯網交互,同時數據和其他互聯網應用一樣匯聚到了雲端。

1.2 物聯網的主體是“物”

前面說現代物聯網應用是一種互聯網應用,但是物聯網應用和傳統互聯網應用又有一個很大的不同,那就是傳統互聯網生產和消費數據的主體是人,而現代物聯網生產和消費數據的主體是物。

在現代物聯網的應用場景下,數據的生產方是“物”,比如智能設備或者傳感器,數據的消費者往往也是“物”。

在智慧農業的應用中,孵化室中的溫度傳感器將孵化室中的溫度週期性地上傳到控制中心。當溫度低於一定閾值時,中心按照預設的規則遠程打開加溫設備。在這一場景中,數據的生產者是溫度傳感器,數據的消費者是加溫設備,二者都是“物”,人並沒有直接參與其中。

物聯網和傳統互聯網最大的不同:數據的生產者和消費者主要是物,數據內容也是和“物”息息相關的。

1.3 物聯網和人工智能

人工智能可謂近年來IT領域最火的詞語之一。縱觀人工智能的發展路線,我們可以看到,人工智能的發展之所以能夠突飛猛進,主要有以下兩個原因。

  • 硬件的發展使得深度學習神經網絡的學習時間迅速縮短。
  • 在大數據的時代,獲取大量數據的成本變低。

事實上,第二個原因尤爲重要,神經網絡由於其特性,需要海量的數據進行學習,可供學習的有效數據量往往決定了最後訓練出的神經網絡的效果,甚至算法的重要性都可以排在數據量之後。

而物聯網設備,比如智能家電、可穿戴設備等,每天都在產生海量的數據,這些數據經過處理和清洗後,都可以作爲不錯的訓練數據反哺神經網絡。同時,訓練出來的神經網絡又可以重新應用到物聯網設備中,進而形成一個良性循環。

image

圖1-1所示爲物聯網應用人工智能方法進行數據採集-迭代的循環。通過物聯網設備採集並訓練數據,在數據中心完成訓練後,將模型應用到物聯網設備,並評估效果進行下一次迭代。

物聯網是人工智能落地的一個非常好的應用場景。隨着人工智能的迅速發展,物聯網這個同樣在很多年前就提出的理論和技術,也會迎來新的春天。

目前,互聯網數據入口漸漸朝幾大巨頭(例如阿里、騰訊)匯聚,規模較小的公司獲取數據的代價越來越高,物聯網這塊還未完全開發的數據領域就顯得尤爲重要。

這也是本書側重於物聯網平臺開發而略過前端設備開發的原因,因爲前端設備最終會趨於相同,出現同質化競爭,而如何採集和使用好設備產生的海量數據,纔是你是否具有競爭優勢的決定性因素。

1.4 物聯網的現狀與前景

隨着5G時代的來臨,物聯網的發展將會非常迅速。同時,物聯網方向的新增融資也一直處於上升趨勢。下面再從應用場景角度來談一下物聯網行業的發展前景。
物聯網的應用場景非常廣泛,包括:

  • 智慧城市
  • 智慧建築
  • 車聯網
  • 智慧社區
  • 智能家居
  • 智慧醫療
  • 工業物聯網

在不同的場景下,物聯網應用的差異非常大,終端和網絡架構的異構性強,這意味着在物聯網行業存在足夠多的細分市場,這就很難出現一家在市場份額上具有統治力的公司,同時由於市場夠大,所以能夠讓足夠多的公司存活。這種情況在互聯網行業是不常見的,互聯網行業的頭部效應非常明顯,市場絕大部分份額往往被頭部的兩三家公司佔據。

物聯網模式相對於互聯網模式來說更“重”一些。物聯網的應用總是伴隨着前端設備,這也就意味着用戶的切換成本相對較高,畢竟拆除設備、重新安裝設備比動動手指重新下載一個應用要複雜不少。這也就意味着,資本的推動力在物聯網行業中相對更弱。如果你取得了先發優勢,那麼後來者想光靠資本的力量趕上或者將你擠出市場,那他付出的代價要比在互聯網行業中大得多。

所以說,物聯網行業目前仍然是一片藍海,小規模公司在這個行業中也完全有能力和大規模公司同臺競爭。在AI和區塊鏈的熱度冷卻後,物聯網很有可能會成爲下一個風口。作爲程序員,在風口來臨之前,提前進行一些知識儲備是非常有必要的。

二、常見的物聯網協議

2.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所示。

image

MQTT協議可以爲大量的低功率、工作網絡環境不可靠的物聯網設備提供通信保障。而它在移動互聯網領域也大有作爲,很多Android App的推送功能都是基於MQTT協議實現的,一些IM的實現也是基於MQTT協議的。

2.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所示。

image

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所示。

image

2.4 LwM2M協議
LwM2M( Lightweight Machine-To-Machine )協議是由Open Mobile Alliance(OMA)定義的一套適用於物聯網的輕量級協議。它使用RESTful接口,提供設備的接入、管理和通信功能,也適用於資源比較緊張的設備。LwM2M協議的架構如圖2-4所示。

image

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就可以通過協議指定的接口進行交互了。

2.5 HTTP協議
正如我們之前所講,物聯網也是互聯網,HTTP這個在互聯網中廣泛應用的協議,在合適的環境下也可以應用到物聯網中。在一些計算和硬件資源比較充沛的設備上,比如運行安卓操作系統的設備,完全可以使用HTTP協議上傳和下載數據,就好像在開發移動應用一樣。設備也可以使用運行在HTTP協議上的WebSocket主動接收來自服務器的數據。

2.6 LoRaWAN協議
LoRaWAN協議是由LoRa聯盟提出並推動的一種低功率廣域網協議,它和我們之前介紹的幾種協議有所不同。MQTT協議、CoAP協議都是運行在應用層,底層使用TCP協議或者UDP協議進行數據傳輸,整個協議棧運行在IP網絡上。而LoRaWAN協議則是物理層/數據鏈路層協議,它解決的是設備如何接入互聯網的問題,並不運行在IP網絡上。

LoRa(Long Range)是一種無線通信技術,它具有使用距離遠、功耗低的特點。在上面的場景下,用戶就可以使用LoRaWAN技術進行組網,在工程設備上安裝支持LoRA的模塊。通過LoRa的中繼設備將數據發往位於隧道外部的、有互聯網接入的LoRa網關,LoRa網關再將數據封裝成可以在IP網絡中通過TCP協議或者UDP協議傳輸的數據協議包(比如MQTT協議),然後發往雲端的數據中心。

2.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平臺》。

image

推薦語:這是一本從技術原理、工程實踐、設計模式和最佳實踐4個維度講解物聯網系統開發的著作,是作者10餘年實踐經驗的總結。

首先,通過代碼實例循序漸進、深入淺出地介紹了物聯網協議的原理與實踐;然後,以一個功能完備的綜合性物聯網平臺的搭建過程爲例,講解了如何從0到1搭建一個物聯網平臺;最後,總結了物聯網平臺開發中常用的設計模式和最佳實踐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章