工業互聯網 第 4 章 各類工業互聯網平臺介紹以及OneNET平臺使用

1.工業互聯網平臺公司

目前世界上有幾十家工業互聯網平臺:

國內:

國外:

 

2.OneNET平臺介紹

OneNET是中國移動打造的高效、穩定、安全的物聯網開放平臺。OneNET支持適配各種網絡環境和協議類型,可實現各種傳感器和智能硬件的快速接入,提供豐富的API和應用模板以支撐各類行業應用和智能硬件的開發,有效降低物聯網應用開發和部署成本,滿足物聯網領域設備連接、協議適配、數據存儲、數據安全以及大數據分析等平臺級服務需求。

功能架構:

客戶收益:

OneNET已構建“雲-網-邊-端”整體架構的物聯網能力,具備接入增強、邊緣計算、增值能力、AI、數據分析、一站式開發、行業能力、生態開放8大特點。全新版本OneNET平臺,向下延展終端適配接入能力,向上整合細分行業應用,可提供設備接入、設備管理等基礎設備管理能力,以及位置定位LBS、遠程升級OTA、數據可視化View、消息隊列MQ等PaaS能力。同時隨着5G網絡的到來,平臺也在打造5G+OneNET新能力,重點提供並優化視頻能力Video、人工智能AI、邊緣計算Edge等產品能力,通過高效、穩定、多樣的組合式服務,讓各項應用實現輕鬆上雲,完美賦能行業端到端應用。。

平臺架構

OneNET主要功能如下:

設備接入

  • 支持多種行業及主流標準協議的設備接入,提供如NB-IoT(LWM2M)、MQTT、EDP、JT808、Modbus、HTTP等物聯網套件,滿足多種應用場景的使用需求
  • 提供多種語言開發SDK,幫助開發者快速實現設備接入
  • 支持用戶協議自定義,通過TCP透傳方式上傳解析腳本來完成協議的解析

設備管理

  • 提供設備生命週期管理功能,支持用戶進行設備註冊,設備更新,設備查詢、設備刪除
  • 提供設備在線狀態管理功能,提供設備上下線的消息通知,方便用戶管理設備的在線狀態
  • 提供設備數據存儲能力,便於用戶進行設備海量數據存儲於查詢
  • 提供設備調試工具以及設備日誌,便於用戶快速調試設備以及定位設備問題

位置定位LBS

  • 提供基於基站的定位能力,支持三網的2G/3G/4G基站定位,覆蓋大陸及港澳臺地區
  • 支持NB-IoT基站定位,滿足NB設備的位置定位場景
  • 提供7天連續時間段位置查詢,可查詢在定位時間段內任意7天段的歷史軌跡

遠程升級OTA

  • 提供對終端模組的遠程FOTA升級,支持2G/3G/4G/NB-IoT/WIFI等類型模組
  • 提供對終端MCU的遠程SOTA升級,滿足用戶對應用軟件的迭代升級需求
  • 支持升級羣組以及策略設置,支持完整包和差分包升級

消息隊列MQ

  • 基於分佈式技術架構,具有高可用性、高吞吐量、高擴展性等特點
  • 支持TLS加密傳輸,提高傳輸安全性
  • 支持多個客戶端對同一隊列進行消費
  • 支持業務緩存功能,具有削峯去谷特性

數據可視化View

  • 免編程,可視化拖拽配置,10分鐘完成物聯網可視化大屏開發
  • 提供豐富的物聯網行業定製模版和行業組件
  • 支持對接OneNET內置數據、第三方數據庫、Excel靜態文件多種數據源
  • 自動適配多種分辨率的屏幕,滿足多種場景使用

人工智能AI

  • 提供人臉對比、人臉檢測、圖像增強、圖像抄表、車牌識別、運動檢測等多種人工智能能力
  • 通過API的方式爲用戶提供,方便能力集成和使用

視頻能力Video

  • 提供視頻平臺,直播以及端到端解決方案等多種視頻能力
  • 提供設備側和應用側的SDK,幫助快速實現視頻監控、直播等設備及應用能力
  • 支持Onvif視頻的設備通過視頻網關盒子可實現接入平臺

邊緣計算Edge

  • 支持私有化協議適配、協議轉換能力,滿足各類設備接入平臺需求
  • 支持設備側就近部署,提供低時延、高安全、本地自治的網關能力
  • 支持“雲-邊”協同,可實現例如AI能力雲側推理,在邊緣側執行

應用開發環境

  • 提供全雲端在線應用構建能力,幫助用戶快速定製雲上應用
  • 支持SaaS應用託管於雲端,提供開發、測試、打包、一鍵部署等能力
  • 提供通用領域服務沉澱至環境,如支付、地圖等領域服務能力
  • 提供行業業務建模基礎模型,可視化UI拖拽流程編排

 

OneNET資源模型如下圖:

資源模型

  • 產品(product)

    用戶的最大資源集爲產品,產品下資源包括設備、設備數據、設備權限、數據觸發服務以及基於設備數據的應用等多種資源,用戶可以創建多個產品。

  • 設備(device)

    設備爲真實終端在平臺的映射,真實終端連接平臺時,需要與平臺設備建立一一對應關係,終端上傳的數據被存儲在數據流中,設備可以擁有一個或者多個數據流。

  • 數據流與數據點

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

  • APIkey

    APIkey爲用戶進行API調用時的密鑰,用戶訪問產品資源時,必須使用該產品目錄下對應的APIkey。

  • 觸發器(trigger)

    觸發器爲產品目錄下的消息服務,可以進行基於數據流的簡單邏輯判斷並觸發HTTP請求或者郵件。

  • 應用(application)

    應用編輯服務,支持用戶以拖拽控件並關聯設備數據流的方式,生成簡易網頁展示應用。

OneNET 工作原理

OneNET 軟件包數據的上傳和命令的接收是基於 MQTT 實現的,OneNET 的初始化其實就是 MQTT 客戶端的初始化,初始化完成後,MQTT 客戶端會自動連接 OneNET 平臺。數據的上傳其實就是往特定的 topic 發佈消息。當服務器有命令或者響應需要下發時,會將消息推送給設備。

獲取數據流、數據點,發佈命令則是基於 HTTP Client 實現的,通過 POST 或 GET 將相應的請求發送給 OneNET 平臺,OneNET 將對應的數據返回,這樣,我們就能在網頁上或者手機 APP 上看到設備上傳的數據了。

下圖是應用顯示設備上傳數據的流程圖

onenet_upload

下圖是應用下發命令給設備的流程圖

onenet_send_cmd

 

OneNET 示例應用程序

準備工作

在 OneNET 雲上註冊賬號

設備接入 OneNET 雲之前,需要在平臺註冊用戶賬號,OneNET 雲平臺地址:https://open.iot.10086.cn

創建產品

賬號註冊登錄成功後,點擊開發者中心進入開發者中心界面;

點擊創建產品,輸入產品基本參數,在設備接入協議一欄選擇 MQTT 協議,如下圖所示:

onenet

onenet_create_product

產品創建成功之後,可以在開發者中心的公開協議產品中找到剛剛創建的產品,點擊產品名,可以看到產品的基礎信息(如產品ID,接入協議,創建時間,產品 APIkey 等,後面有用):

onenet_product_info

接入設備

在開發者中心左側設備管理中點擊添加設備按鈕添加設備,設備名稱我們填入test1。鑑權信息是爲了區分每一個不同的設備,如果創建了多個設備,要確保每個設備的鑑權信息都不一樣,我們這裏填入201807171718,填完之後點擊接入設備

onenet_add_device

onenet_create_device

添加 APIkey

接入設備之後,可以看到設備列表的界面多了一個設備,設備的右邊有一些操作設備的按鈕,點擊查看詳情按鈕

onenet_info

onenet_add_apikey

此設備的相關信息就都顯示出來了,比如:設備 ID、鑑權信息、設備 APIkey,這些信息需要記下,在ENV配置時會用到。

點擊按鈕添加 APIkey,APIKey 的名稱一般和設備相關聯,我們這裏填入test_APIKey,關聯設備默認爲我們剛剛創建的設備test1

onenet7

開啓 onenet 軟件包

打開 Env 工具輸入 menuconfig 按照下面的路徑開啓 onenet 軟件包:

RT-Thread online packages
    IoT - internet of things  --->
        IoT Cloud  --->
            [*] OneNET: China Mobile OneNet cloud SDK for RT-Thread

進入 onenet 軟件包的配置菜單按下圖所示配置,裏面的信息依據自己的產品和設備的實際情況填寫

--- OneNET: China Mobile OneNet cloud SDK for RT-Thread                            
    [ ]   Enable OneNET sample                                                  
    [*]   Enable support MQTT protocol                                                 
    [ ]   Enable OneNET automatic register device (NEW)                             
    (35936966) device id                                                             
    (201807171718) auth info
    (H3ak5Bbl0NxpW3QVVe33InnPxOg=) api key                                              
    (156418) product id                                                                 
    (dVZ=ZjVJvGjXIUDsbropzg1a8Dw=) master/product apikey (NEW)                       
        version (latest)  --->

Enable OneNET sample :開啓 OneNET 示例代碼

Enable support MQTT protocol :開啓 MQTT 協議連接 OneNET 支持

Enable OneNET automatic register device :開啓 OneNET 自動註冊設備功能

device id :配置雲端創建設備時獲取的 設備ID

auth info :配置雲端創建產品時 用戶自定義的鑑權信息 (每個產品的每個設備唯一)

api key :配置雲端創建設備時獲取的 APIkey

product id :配置雲端創建產品時獲取的 產品ID

master/product apikey :配置雲端創建產品時獲取的 產品APIKey

示例文件介紹

利用 Env 生成工程後,我們可以在工程的 onenet 目錄下看到onenet_sample.c文件,該文件是 OneNET 軟件包的示例展示,主要是展示用戶如何使用 OneNET 軟件包上傳數據和接收命令。

運行示例

在使用 OneNET 軟件包之前必須要先調用onenet_mqtt_init這個命令進行初始化,初始化完成後設備會自動連接 OneNET 平臺。

msh />onenet_mqtt_init
[D/ONENET] (mqtt_connect_callback:85) Enter mqtt_connect_callback!
[D/[MQTT] ] ipv4 address port: 6002
[D/[MQTT] ] HOST = '183.230.40.39'
[I/ONENET] RT-Thread OneNET package(V0.2.0) initialize success.
msh />[I/[MQTT] ] MQTT server connect success
[D/ONENET] (mqtt_online_callback:90) Enter mqtt_online_callback!

上傳數據

初始化完成後,用戶可以調用onenet_upload_cycle這個命令週期性的往雲平臺上傳數據。輸入這個命令後,設備會每隔 5s 向數據流 temperature 上傳一個隨機值。並將上傳的數據打印到 shell 窗口。

msh />onenet_upload_cycle
msh />[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":32}
[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":51}

我們打開 OneNET 平臺,在設備列表界面選擇剛添加的設備並進入數據流展示頁面。

onenet_datastream

點擊temperature數據流左邊的小箭頭顯示數據流信息,我們就可以看到剛剛上傳的數據了。

onenet_datapoints

如果用戶想往別的數據流發送信息,可以使用以下 API 往雲平臺上傳數據。

onenet_mqtt_publish_digit onenet_mqtt_publish_string

命令格式如下所示:

onenet_mqtt_publish_digit 數據流名稱 要上傳的數據

onenet_mqtt_publish_string 數據流名稱 要上傳的字符串

輸入命令後沒有返回錯誤信息就表示上傳成功。

示例如下:

msh />onenet_mqtt_publish_digit test 1
msh />onenet_mqtt_publish_string test 1
msh />onenet_mqtt_publish_digit test 2
msh />onenet_mqtt_publish_string test 1

在數據流管理頁面,我們可以看到多出來個 test 數據流,裏面的數據就是我們剛剛上傳的數據。

onenet_upload_dp

接收命令

在初始化時,命令響應回調函數默認指向了空,想要接收命令,必須設置命令響應回調函數,在 shell 中輸入命令onenet_set_cmd_rsp,就把示例文件裏的命令響應回調函數掛載上了,這個響應函數在接收到命令後會把命令打印出來。

msh />onenet_set_cmd_rsp

我們點擊設備列表界面的下發命令按鈕。

onenet_cmd

在彈出來的窗口裏輸出 hello rt-thread!,然後點擊發送命令。

onenet_hello_rtthread

就可以在 shell 中看到雲平臺下發的命令了。

msh />onenet_set_cmd_rsp
msh />[D/ONENET] (mqtt_callback:60) topic $creq/6db0c1b2-9a7e-5e4a-8897-bf62d4a3461f 
receive a message
[D/ONENET] (mqtt_callback:62) message length is 18
[D/ONENET] (onenet_cmd_rsp_cb:107) recv data is hello rt-thread!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章