玩轉OneNET物聯網平臺之簡介

1.前言

    在進入OneNet系列之前,我們先來了解一下OneNet平臺。讀者可以自行閱讀OneNet官方文檔,博哥這裏只是做到拋磚引玉的作用。

2.OneNET物聯網平臺簡介

    OneNET定位爲PaaS服務,即在物聯網應用和真實設備之間搭建高效、穩定、安全的應用平臺

  • 面向設備,適配多種網絡環境和常見傳輸協議(包括我們講的MQTT、HTTP等),提供各類硬件終端的快速接入方案和設備管理服務;
  • 面向企業應用,提供豐富的API和數據分發能力以滿足各類行業應用系統的開發需求,使物聯網企業可以更加專注於自身應用的開發,而不用將工作重心放在設備接入層的環境搭建上,從而縮短物聯網系統的形成周期,降低企業研發、運營和運維成本。

    簡單理解爲:放心用,OneNet平臺爲你考慮了方方面面。

3.OneNET物聯網平臺架構

image

    可以通過上圖去理解整個OneNet平臺的設計架構,對於我們來說,比較關注以下幾點:

3.1 設備接入

    OneNET提供安全穩定的設備接入服務,支持包括LWM2M(CoAP)、MQTT、Modbus、HTTP、TCP等在內的多種協議:

  • 在考慮低功耗以及廣覆蓋的場景,建議使用CoAP協議接入
  • 在工業modbus通信場景,建議使用DTU+Modbus協議接入
  • 在需要與設備實時通信的場景,建議採用MQTT協議接入
  • 在設備單純上報數據的場景,可以使用HTTP/HTTPS協議接入
  • 在用戶需要自定義協議接入的場景,建議採用TCP+腳本的方式接入

具體參考 設備開發協議,大家可以點擊下載具體的協議文檔以便學習查閱。

3.2 設備管理

    OneNET平臺針對不同的使用場景,提供關於設備的包括生命週期管理、在線狀態監測、在線調試、數據管理等功能在內的豐富的設備管理功能。

具體參考 入門手冊

3.3 API列表

    OneNET提供開放的、豐富的、基於HTTP/HTTPS的API接口,用戶可以使用API進行設備管理,數據查詢,設備命令交互等操作,在API的基礎上,根據自己的個性化需求指定搭建上層應用。

    具體參考 API列表,作爲開發者的我們需要根據產品接入協議來選擇不同的API。

    平臺提供的API列表如下:

3.3.1 設備管理相關 —— 重要

API 請求方式 說明
新增設備 POST 供應用層使用
註冊設備 POST 用於設備自行註冊場景
更新設備信息 PUT 用於更新設備屬性
查詢設備詳情 GET 用於查詢設備屬性,包括設備在線狀態
批量查詢設備信息 GET
批量查詢設備狀態 GET
刪除設備 DELETE

3.3.2 數據流管理相關 —— 重要

API 請求方式 說明
新增數據流 POST 建立某設備獨有的數據屬性,產品內建議使用數據流模板替代
更新數據流屬性 PUT
查詢數據流狀態 GET 可用於查詢數據流配置以及最新數據點
刪除數據流 DELETE

3.3.3 數據管理相關 —— 重要

API 請求方式 說明
查詢設備歷史數據 GET
批量查詢設備最新數據 GET
上傳數據點 POST 設備/應用服務器均可通過HTTP/HTTPS方式上傳數據
上傳文件 POST 可用於設備上傳原始數據、圖片、文件等
獲取文件 GET

3.3.4 設備命令相關

API 請求方式 說明
下發命令 POST 平臺主動發送數據至設備
查詢命令狀態 GET 用於查詢某條命令的執行情況
查詢命令響應 GET 設備收到命令時需要設備發送命令響應
查詢設備歷史命令 GET

3.3.5 觸發器相關

API 請求方式 說明
新增觸發器 POST
更新觸發器 PUT
查詢觸發器詳情 GET
刪除觸發器 DELETE

3.3.6 apikey相關

API 請求方式 說明
新增apikey POST 新增的apikey只具有設備級的權限
更新apikey PUT
查詢apikey GET
刪除apikey DELETE

3.3.7 topic相關(限MQTT設備使用)

API 請求方式 說明
發佈消息 POST 發佈消息到topic
查詢訂閱設備列表 GET 查詢訂閱某個topic的設備列表
查詢設備訂閱詳情 GET 查詢設備的topic訂閱列表
查詢topic列表 GET

3.4 HTTP推送

    針對某些實時性要求較高的場景,OneNET提供數據推送功能,可以過濾掉設備端頻繁的週期性上報數據,將用戶關心的實時性較高的數據,通過HTTP/HTTPS的方式推送到用戶的應用服務器上。

具體參考 HTTP推送

3.5 安全認證

    OneNET提供用戶資源訪問安全認證機制,提供產品級以及設備級的不同粒度的密鑰,並支持用戶自定義密鑰訪問權限,最大限度保證用戶設備以及應用層接入的安全性。

具體參考 安全鑑權 以及 API鑑權

4.資源模型

    OneNET資源模型如下圖:

image

4.1 用戶(user) —— OneNet平臺賬號

    理解爲每一個OneNet平臺賬號

4.2 產品(product) —— 具體項目

    用戶的最大資源集爲產品,產品下資源包括設備、設備數據、設備權限、數據觸發服務以及基於設備數據的應用等多種資源,用戶可以創建多個產品。理解爲用戶下的每一個項目,比如博哥建立一個溫溼度監控系統

4.3 設備(device) —— 項目涉及到的物理設備

    設備爲真實終端在平臺的映射,真實終端連接平臺時,需要與平臺設備建立一一對應關係,終端上傳的數據被存儲在數據流中,設備可以擁有一個或者多個數據流。比如每一個溫溼度模塊+8266可組成一個設備。

4.4 數據流與數據點 —— 物理設備上傳的數據

    數據流用於存儲設備的某一類屬性數據,例如溫度,溼度,座標等信息;平臺要求設備上傳並存儲數據時,必須以key-value的格式上傳數據,其中key即爲數據流名稱,value爲實際存儲的數據點,value格式可以爲int、float、string、json等多種自定義格式。比如溫溼度數據。

4.5 APIkey —— 用戶校驗標識

    APIkey爲用戶進行API調用時的密鑰,用戶訪問產品資源時,必須使用該產品目錄下對應的APIkey。其實跟買車票一樣,有身份證才讓上車。

4.6 觸發器(trigger) —— 報警服務

    觸發器爲產品目錄下的消息服務,可以進行基於數據流的簡單邏輯判斷並觸發HTTP請求或者郵件。跟報警機制有點類似,觸發了報警機制(比如溫度超過多少),就做一些用戶提示操作。

4.7 應用(application) —— OneNet自帶UI展示

    應用編輯服務,支持用戶以拖拽控件並關聯設備數據流的方式,生成簡易網頁展示應用。比如,溫溼度控制系統,我們可以拉取控件展示溫度折線圖。

5.術語解釋

在開發OneNet項目之前,我們需要了解OneNet常用術語:

image

6.OneNet開發準備

    理解了OneNet基本知識之後,我們就可以開始建造我們自己的項目(博主不會教你怎麼去註冊OneNet,請自行註冊登錄)。

6.1 創建產品

    登錄後進入開發者中心,創建不同協議下的產品(項目),博主在這裏先創建三個不同協議的產品(項目,後面的案例會基於這三個產品進行)。

image

它們分別對應以下產品配置:

image

image

image

    其中最重要的信息就是“設備接入協議”,協議適用場景請見 協議簡介

image

    每種協議對應自己的開發方式以及調試工具,開發者可以自行查閱官方文檔。

6.2 創建設備

    創建產品後會提示立即添加設備,而創建設備又有多種方式。

6.2.1 創建單個設備 —— 手動創建

    創建產品後會提示立即添加設備,我們在提前預知設備的前提下推薦採用此種方式。具體可看成官方文檔 創建單個設備

手動創建使用場景

  • 提前預知設備,比如溫溼度控制系統上傳數據節點,我們可以提前預知設備信息以及設備數量。

6.2.2 批量創建設備 —— 手動創建

    除了單個創建設備外,平臺還提供批量創建設備的功能。具體可看成官方文檔 批量創建設備

手動創建使用場景

  • 提前預知設備,比如多點溫溼度控制系統上傳數據節點,我們可以提前預知設備信息以及設備數量。

6.2.3 自動創建設備 —— API創建

    在無法提前知道設備的場景下,我們無法提前去創建設備節點,推薦的做法是設備自動往OneNet平臺註冊。比如,智能家居LED系統中,我們無法提前預知家裏會安裝多少LED設備,這個時候就需要設備可以自動註冊綁定系統。在後面OneNet Mqtt中我們會講解這一點,屬於常用功能。具體API可以參考 API列表開發者需要注意不同協議下使用不同的API

6.3 數據流與數據點

    創建完設備之後,我們就可以開始處理數據了。
    OneNet平臺通過數據流與數據點來組織設備上行數據,如下圖所示:
image

    設備上傳並存儲數據時,必須以key-value的格式上傳數據,其中key即爲數據流(stream)名稱,value爲實際存儲的數據點(point),value格式可以爲int、float、string、json等多種自定義格式。
    在實際應用中,數據流可以被用於分類描述設備的某一類屬性數據,例如溫度,溼度,座標等信息,用戶可以自定義數據流的數據範圍,將相關性較高的數據歸類爲一個數據流。
    數據流中的數據在存儲的同時可以“流向”後續服務,數據流是平臺後續數據服務(規則、觸發器、消息隊列等)的服務對象,後續數據服務支持用戶通過選擇數據流的方式選擇服務的數據來源
    數據流中的數據平臺會默認以時序存儲,用戶可以查詢數據流中的不同時間的數據點的值,如下圖:

image

6.4 應用管理 —— 數據展示

    通過OneNET應用編輯器,用戶可以方便快捷地實現OneNET平臺上的設備數據流可視化。請開發者自行查看文檔 應用管理
    基本上到這裏,我們完成了OneNet平臺上的一個項目配置。

7.總結

    本篇屬於純理論篇,大體上介紹了一下OneNet平臺下的一些知識點,方便我們有個大體瞭解。接下來的篇章,博主將針對不同協議進行不同講解。

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