現在網上讨論的有關物聯網的文章非常之多,但大部分都是介紹理論或者有關硬體,通訊相關的問題,比如物聯網子產品,物聯網通訊協定MQTT、XMPP、NB_IOT等,個人認為這些隻是物聯網中一部分,而涉及到物聯網的裝置如何管理,使用者如何管理,資料包如何解析,大資料如何展示等也是物聯網子產品中非常重要的部分,是以作者就根據自身工作中總結出來的建構在雲端的物聯網平台基本架構分享給大家,并基于此架構如何一步一步來開發一套物聯網平台。
物聯網平台,應該是基于現在的網際網路,通訊技術來建構,而不依賴與特定的硬體子產品,使用者可以基于自身的裝置技術架構,簡單輕松接入物聯網。下圖是物聯網的核心架構:

1. 四大核心子產品
在物聯網中存在4大核心子產品,那就是裝置管理,使用者管理,資料傳輸管理,資料管理,隻有具備了這四大核心子產品,才能認為是一個完整的物聯網平台,而所有其他的功能子產品都是基于此四大功能子產品的延展。
1.1 裝置管理
裝置類型管理:定義裝置的類型,此功能一般由裝置的制造商來定義,一種裝置類型最重要的是關聯到一套獨有的資料解析方法,資料的存儲方法,已經裝置規格等資料,也隻有裝置的制造商才可以編輯有關裝置類型的資料,而裝置的使用者隻能浏覽裝置類型的相關資訊
裝置管理:裝置管理定義裝置相關資訊,每個裝置必須定義其裝置類型,裝置類型有使用者屬性,裝置在完成銷售,并被使用者激活後裝置就屬于裝置使用者了,這時候裝置使用者對裝置有完全的控制權,可以控制裝置的哪些資料可以被制造商檢視,可以被哪些使用者檢視等權限
1.2 使用者管理
組織管理:在物聯網平台中一個很重要的觀念就是組織,所有的裝置,使用者,資料都是基于組織的管理的,裝置制造商是一個組織,裝置的使用者是一個組織,家庭都可以是一個組織。
使用者管理:使用者是基于一個組織下的人員構成,每個組織下面都有管理者角色,管理者可以為其服務的組織添加不通的使用者,并配置設定每個使用者不同的權限。一個使用者也可以屬于多個不同的組織,并且扮演不同的組織
使用者組:一組使用者,也是基于組織的使用者組管理,同一使用者組的使用者擁有相同的權限
權限管理:同樣是基于組織的權限管理,主要是針對對象級别的權限細分,如裝置的浏覽權限,可以控制每個使用者是否看到這個裝置;裝置資料浏覽權限定義是否可以檢視裝置的運作資料
1.3 資料傳輸管理
1.31 基本格式
資料傳輸管理,定義針對一類型裝置的資料傳輸協定,基本格式是:
每一個裝置有廠商唯一的序列号,因為每個制造商有自己的編碼格式,固此序列号沒有固定格式。
指令碼,為此條資料的作用,比如是上傳資料,或者伺服器下發給裝置的指令等,一般采用2位數字編碼00~99
資料,此部分是此條封包,所包含的資料部分,每個協定可以定義不同的解析方式,比如伺服器在收到資料包後,會根據預先定義好的解析方式解析資料字段,并按照規則存儲
1.32 資料解析定義
每種裝置類型可以定義多條指令,每個指令都有自己不同的解析方式,組織的管理者可以為自己的裝置類型定義解析方式
伺服器接收到資料後,會自動根據預先定義的解析方式解析資料字段
裝置開發者要根據在IOT平台定義的資料格式,自行開發自己裝置的解析代碼
資料字段都按照HEX方式收發
1.33 資料的存儲
存儲要支援分布式架構,可以為每個裝置定義不同的存儲位置,在diego iot中資料存儲使用mysql資料庫,實作不同的裝置存儲在不同的mysql資料庫中
每條資料定義生命周期,在生命結束後,系統将自動删除
1.4 資料管理
權限管理,資料的權限在物聯網平台中是至關重要,資料屬于誰是一個非常重要的概念,隻有裝置的擁有者才能定義資料可以給誰看
大資料,物聯網資料本身就是海量的資料,我們可以借助一些開源的大資料平台來實作資料的可視化分析,隻有經過分析的資料才是有價值的資料
資料的導出,使用者可以導出資料到本地做分析
2.網絡通訊
現在所有的雲端的物聯網平台和裝置之間的通訊,本質上都是建構在TCP/IP協定之上的,隻是對資料包的再封裝而已,基于此我們可以是用wifi,4g來實作裝置和雲平台的通訊,不過裝置與裝置之間的通訊,可以有wifi,Bluetooth,zigbee等,下面介紹幾種常用的通訊架構
2.1 基于移動3/4G通訊
此架構是最簡單的架構,裝置就如同我們的手機,基于移動通訊來上網,其主要需要考慮如下幾點
每個裝置都需要一個SIM卡,可以到移動伺服器商辦理專門針對物聯網的SIM卡
資料流量問題,這種架構完全是走資料流量,如果有視訊資料,将會産生比較大的流量費用,這都是要考慮的
通訊品質問題,這完全依賴于移動服務商的網絡覆寫狀況,就如同我們手機一樣,在有些環境下是沒有信号的,也就沒辦法收發資料
2.2 基于wifi區域網路
此中架構,适合于所有的物聯網裝置都是運作在一個局部環境中,裝置通過wifi或者有線連接配接到路由器,而由路由器統一連接配接的物聯網伺服器,就如同我們家中裝一個wifi路由器上網一樣的架構,需要注意的事項:
-
- 區域網路内的智能裝置,是沒有公網獨立的ip的,隻有一個區域網路内的ip,帶來的問題就是,裝置可以直接給物聯網伺服器發送資料包,而物聯網伺服器是不能直接給裝置發送資料包,就因為裝置沒有公網獨立ip
- 功耗問題,對于使用wifi接入的裝置,最好不是電池供電,因為wifi的功耗比較大
-
幹擾問題,如果在大型的廠房部署這種架構,一定要考慮,廠房内是否有強幹擾源,如電磁幹擾,可以考慮采用工業級的無線路由器,一般抗幹擾能力比較強
2.3 基于藍牙通訊
一般的基于藍牙的物聯網,會考慮通過藍牙網關來部署
藍牙由于其點對點的通訊方式,是以要考慮如下問題:
-
- 藍牙網關的容量問題,也就是一個藍牙網關能接入幾個藍牙裝置,這取決于藍牙網關中使用了多少個藍牙裝置
藍牙的配對問題,藍牙裝置直接的通訊都首先配對才能通訊,如果實作自動配對,如果不能自動配對,大規模部署,将是一個很麻煩的事情
還有一種場景是針對不需要一直線上的物聯網裝置,而隻是在某種特殊需求的情況下,需要連上伺服器,這中場景下,我們可以通過手機的藍牙功能來讓裝置接入物聯網
藍牙手環是這種架構的一種典型應用模式
2.4 基于zigbee
ZigBee也是一種流行的組網模式,zigbee本身設計是針對傳感器之間的聯網,具有非常強的低功耗能力
zigbee接入網絡也依賴于zigbee網關,網關本身也是一個zigbee裝置,zigbee裝置是自組網的,在使用過程中注意的問題有
資料量的問題,裝置能力和功耗本身是自相沖突的,由于ZigBee是超低功耗方案,固在通信能力上也是打折扣的,很适合一些傳感器資料的采集,如溫度濕度,但如果對大資料量的視訊類的就不适用了