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 示例應用程序
準備工作
在 OneNET 雲上註冊賬號
設備接入 OneNET 雲之前,需要在平臺註冊用戶賬號,OneNET 雲平臺地址:https://open.iot.10086.cn
創建產品
賬號註冊登錄成功後,點擊開發者中心進入開發者中心界面;
點擊創建產品,輸入產品基本參數,在設備接入協議一欄選擇 MQTT
協議,如下圖所示:
產品創建成功之後,可以在開發者中心的公開協議產品中找到剛剛創建的產品,點擊產品名,可以看到產品的基礎信息(如產品ID,接入協議,創建時間,產品 APIkey 等,後面有用):
接入設備
在開發者中心左側設備管理中點擊添加設備
按鈕添加設備,設備名稱我們填入test1
。鑑權信息是爲了區分每一個不同的設備,如果創建了多個設備,要確保每個設備的鑑權信息都不一樣,我們這裏填入201807171718
,填完之後點擊接入設備
添加 APIkey
接入設備之後,可以看到設備列表的界面多了一個設備,設備的右邊有一些操作設備的按鈕,點擊查看詳情按鈕
此設備的相關信息就都顯示出來了,比如:設備 ID、鑑權信息、設備 APIkey,這些信息需要記下,在ENV配置時會用到。
點擊按鈕添加 APIkey,APIKey 的名稱一般和設備相關聯,我們這裏填入test_APIKey
,關聯設備默認爲我們剛剛創建的設備test1
。
開啓 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 平臺,在設備列表界面選擇剛添加的設備並進入數據流展示頁面。
點擊temperature
數據流左邊的小箭頭顯示數據流信息,我們就可以看到剛剛上傳的數據了。
如果用戶想往別的數據流發送信息,可以使用以下 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 數據流,裏面的數據就是我們剛剛上傳的數據。
接收命令
在初始化時,命令響應回調函數默認指向了空,想要接收命令,必須設置命令響應回調函數,在 shell 中輸入命令onenet_set_cmd_rsp
,就把示例文件裏的命令響應回調函數掛載上了,這個響應函數在接收到命令後會把命令打印出來。
msh />onenet_set_cmd_rsp
我們點擊設備列表界面的下發命令按鈕。
在彈出來的窗口裏輸出 hello rt-thread!,然後點擊發送命令。
就可以在 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!