— 掃描二維碼 —加入架構集結群
對技術感興趣的同學可進群(備註:Java)
現在網上討論的有關物聯網的帖子非常之多,但大部分都是介紹理論或者有關硬體,通訊相關的問題,比如物聯網模塊,物聯網通訊協議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設備是自組網的,在使用過程中注意的問題有
這裡主要介紹了,幾種常用的物聯網部署架構,至於物聯網協議,這裡就不多介紹,網上文章非常多。
3.智能設備
diego iot設計的初衷是讓智能設備開發者擺脫對特殊模塊的依賴,對於智能設備的開發,只要具備聯網功能即可,沒有特別多的要求。
點好看的同學,今年加薪^-^↓