OneNET平臺控制W5500開發板LED燈
前言
關於本文內容的一些名詞解釋
1、產品
產品是指使用者手上的真實裝置在OneNET上對應的虛擬名稱,是使用者在OneNET上最上層的雲端資源。
2、產品ID
產品ID是指由OneNET後臺為您的某一款真實產品分配的一個獨立的ID號,如果您旗下的某一款產品有兩款不同的系列(如Iphone7/Iphone7 PLUS),那麼建議建立兩款產品來分別獲得兩個產品ID。
3、APIKey
用於對OneNET進行操作的鑑權以及許可權控制,在使用OneNET Restful API時,HTTP請求訊息的頭域必須攜帶該APIKey欄位,OneNET會依據APIKey欄位判別該使用者是否具有對應操作的許可權。
APIKey的許可權模型是通過設定對雲端資源是否可以增加、檢視、修改、刪除等方式來描述的,最低的許可權級別可細化到對某個資料流的訪問許可權。APIKey分為兩種:
1. 產品APIKey: 在建立產品時,OneNET會為該產品生成一個預設的APIKey,這個APIKey是Masterkey,具有最大許可權,能夠對本產品下所有資源進行訪問。
2. 裝置APIKey: 使用者為某一產品下的某一臺裝置建立的Key稱為裝置APIKey,裝置APIKey的作用許可權只限於本裝置的資源,而不能對其他裝置進行訪問操作。
4、裝置
雲端的“裝置”是指在上面提到的“產品”下的實體,亦指使用者的某一臺真實裝置在OneNET上對應的唯一的虛擬名稱。
5、裝置ID(Device ID,DID)
裝置ID是指由OneNET後臺為您的某一臺真實裝置分配的一個獨立且唯一的ID號,一款產品下可以有多臺裝置,每一臺獨立的裝置都有唯一的裝置ID。
6、裝置編號
使用者在OneNET上建立裝置時,如果裝置接入協議選擇HTTP,則需要填寫“裝置編號”。裝置編號是每一臺真實裝置所擁有的唯一識別號,不需要OneNET後臺分配,使用者可以自定義裝置編號,但必須保證每臺裝置之間的獨立性和唯一性,建議使用者在輸入裝置編號時採用原有產品線的序列號。
7、資料流(Datastream)
一個資料流可以理解為一類資料,如感測器之溫度、位置之經緯度,空氣之溼度等。使用者可以自定義資料流名稱,即資料流ID;一個裝置可以新增多個資料流。
8、資料點(Datapoint)
即一個資料流中的一個具體的資料值。資料點採用“Key-Value”的方式儲存。其中Key的組成包括裝置ID、資料流ID、時間等資訊,value部分可以為任何資料物件,如整數、字串或者JSON資料型別。
9、SDK
分為公開協議產品SDK和私有協議產品SDK
公開協議產品SDK:用於裝置接入協議為公開協議的終端側軟體開發包,OneNET提供多種語言的SDK,提供裝置連線、資料上傳等基本功能。
私有協議產品SDK:使用私有協議接入裝置時,OneNET將根據開發者定義的裝置資料模型自動生成SDK原始碼,開發者將SDK嵌入到裝置中,自動實現與平臺的對接。OneNET提供私有協議產品的SDK全原始碼。
實驗目的:通過oneNET官方APP以及登入官網賬號操作產品應用控制W5500開發板的LED燈的亮和滅。
實驗過程:
1、註冊oneNET平臺賬號;
登入https://open.iot.10086.cn/,根據個人情況選擇個人註冊或者企業註冊,註冊以後登入。
2、建立產品
登入以後點選右上角開發者中心並進入相應的產品列表介面;
點選建立產品在彈出的頁面中填寫產品的基本資訊。行業、類別以及進度可以根據自己的實際情況進行填寫;
作業系統和運營商以及聯網方式根據自己的實際情況填寫,我們的W5500開發板是沒有作業系統的,所以選擇無。我們的開發板是有線聯網在這裡我選擇是wifi具體選擇哪個根據自己的實際情況來定。
裝置接入方式以及接入協議的選擇要根據自己的專案來判斷,有公有和私有兩種,公有協議有EDP、HTTP、MQTT等,私有協議有RGMP等。在該實驗中我們要使用EDP協議。
(注:在oneNET的首頁的左邊有一個開發文件,裡面有關於oneNET使用的較為詳細的指南,使用者可以通過該文件更加深入的瞭解OneNET的使用方法。)
3、新增裝置
註冊登入並建立自己的產品以後進入產品頁面選擇裝置管理點選新增裝置開始給自己的產品新增裝置。
(1)點選產品後進入一下頁面
(2)點選裝置管理後進入下面的介面
根據提示選擇新增裝置的資訊
4、在裝置下新增資料流,點選資料流模板進入下面的介面
開始新增資料流
(驗要上傳四個LED燈的狀態到該產品下的裝置的資料流,所以要建立四個資料流來接收上傳的資料,該實驗由於在程式碼裡面上傳的資料流ID是LED_0_statu所以我們最好也改成這樣,或者將程式碼部分修改成你自己定義的額資料了ID。)
5、現在關於oneNET的註冊以及產品建立已經基本做好了,下面我們就要通過程式碼實現資料上傳然後根據上傳的資料新增裝置應用。
首先先簡單介紹一下EDP,因為我們這個實驗用到的是EDP協議上傳/下發資料和命令。
簡介
EDP (Enhanced Device Protocol增強裝置協議)是OneNET平臺根據物聯網特點專門定製的完全公開的基於TCP的協議,可以廣泛應用到家居、交通、物流、能源以及其他行業應用中。
功能特點
長連線協議
資料加密傳輸
終端資料點上報,支援的資料點型別為:
浮點數(float)
整型(int)
字串(string)
JSON物件
二進位制資料
平臺訊息下發(支援離線訊息)
端到端資料轉發
接入流程
過程:
裝置新增資料流新增以後首先與平臺建立TCP連線然後建立EDP連線,成功後可進行資料的上傳以及命令的下發。
SDK:
oneNET提供的軟體開發工具包;該實驗用到的SDK在文件中心—公開協議產品指南—裝置接入—EDP——SDK
使用者有興趣可以自己下載一直到自己的工程,本例程提供已經移植好且可用的SDK。
6、程式碼實現
該例程是oneNET反向控制W5500的LED燈的亮滅,所以拿到我們提供的例程後開啟工程進入W5500_config.c修改裝置的IP地址以及閘道器等資料資訊使其跟自己的電腦在同一區域網以便跟自己的電腦上的oneNET平臺建立TCP連線。修改以後進入tcp_demo.c修改裝置ID以及裝置APIKEY為自己的建立產品的裝置ID與APIKEY。具體的路徑:裝置ID在裝置管理裡面已建好的裝置下面。
APIKEY在產品概況下面
(注:APIKEY有兩種,一個就是上面截圖中的一個產品的主APIKEY,它具有最大許可權可對該產品下的所有資源進行訪問並且在我們建立產品的時候預設生成;另外一種就是裝置APIKEY,使用者可在某一個裝置下新增該裝置的APIKEY,他的作用僅僅侷限於該裝置下的資源操作,具體路徑在上面截圖中的APIKEY管理點選新增APIKEY後會彈出新增資訊框,使用者可為自己的裝置新增裝置APIKEY。)
找到我們自己的裝置ID以及APIKEY以後在我們的工程裡面修改,如下:
7、程式碼修改以後就可以編譯燒寫,開啟串列埠助手可看到相關過程。
如上圖程式碼燒寫後我們的W5500裝置與oneNET平臺建立TCP連線然後建立EDP連線開始上傳我們W5500的LED燈的狀態到平臺,此時登入平臺找到裝置管理可看到已經建立EDP連線,如下圖的有顏色的圓點部分。
此時開啟該裝置下的資料流管理可檢視上傳到平臺的資料流如下圖:
接收到資料以後就可以建立裝置應用了。
8、建立裝置應用
進入平臺的產品點選應用管理—建立應用
建立以後點選編輯進入應用編輯介面
編輯頁面如下圖,在該頁面可進行應用編輯,將想要新增的應用拖進編輯區,例如本實驗中的開關和儀表盤。
本實驗的應用有四個開關以及四個儀表盤,開關主要是負責將我們設定的開關值通過EDP傳送指令到我們的W5500開發板,儀表盤負責顯示我們的開發板上傳到平臺的LED燈的狀態。
我們拖動左邊工作列的開關和一邊盼到我們的編輯區:
點選我們拖過來的儀表盤編輯區右邊會彈出配置資訊如下圖:
根據提示選擇配置第一個儀表盤的資料,主要的是資料流的裝置選擇以及裝置對應的資料流選擇,填好後將剩下的三個儀表盤配置好注意資料流的對應關係。我們這個實驗是在一個裝置下的四個資料流來接收開發板的資料。
第一個儀表盤的配置如下圖:
點選編輯區的開關開啟開關配置視窗,配置如下:
解釋:
裝置名涉資料流部分跟儀表盤一樣,需要注意的就是一個裝置下的四個不同的資料流對應四個儀表盤和開關,開關值部分就是平臺傳送給開發板的命令的內容,比如你安下開以後平臺會將1O(表示第一個燈開啟,1是阿拉伯數字,O是Open首字母)傳送給開發板,開發板接收到後解析出該資料並執行開啟LED1的操作。
需要注意的是關於圖中的EDP命令內容部分;如果你選擇的跟圖中的一樣是{V}或者直接什麼都不寫,其效果就是平臺直接把開關的值1O打包傳送到開發板,開發板根據EDP命令傳送規則找到該資料就可以執行命令,如果不是上述的情況例如{LED1}1,改命令表示第一個LED燈賦值1,即LED1亮。那麼平臺就是把{LED1}1打包傳送給開發板這個時候開發板就要從傳送過來的資料當做找到兩個關鍵的部分即LED1和1,這個過程需要把“{}”從資料當中找出並拋棄。二我們上面的情況就只需找到1和O就行了。相當於省了一小步。
第一個開關配置好後依次配置剩下的三個,都結束以後整個應用就算新增完成,點選儲存、預覽便可進行實際操作實驗。
使用者可以通過直接登入oneNET網頁開啟自己的應用操作開發板的LED燈也可以通過oneNET官方提供的手機APP登入自己的賬號開啟應用操作。
實驗檢驗過程如下圖:
編者注:
關於程式碼部分的SDK以及EDP協議的文件使用者可取官網下載,連線如下:
C語言有關EDP的SDK下載
https://github.com/cm-heclouds/edp_c
EDP協議文件下載
https://upfiles.heclouds.com/123/ueditor/2017/05/03/35c119697c30e06f1e857263fd7c5c3e.docx
官方提供安卓版APP下載二維碼:
相關文章
- W5500上傳溫溼度到oneNET平臺
- W5500通過上位機控制實現調節LED燈帶的亮度
- FPGA筆記[2]-撥碼開關控制LED燈FPGA筆記
- QT210開發板學習(2): 透過DNW點亮LED燈QT
- FRDM-MCXN947開發板之RGB燈
- 1、51微控制器實現LED燈的閃爍
- 平臺工程:從平臺架構師看開發人員控制平面架構
- 帶燈LED按鈕開關接線方法
- 玩轉OneNET物聯網平臺之MQTT服務①MQQT
- 微控制器小白學習之路(四)---led燈的閃爍
- 綠茵面家平臺開發(開發平臺)
- 用Clion進行STM32開發(2、建立專案,點亮LED燈)
- 如何開發直播平臺,直播平臺開發需要CDN嗎
- 【iCore3應用開發平臺】釋出 iCore3 應用開發平臺PID控制程式碼
- Web快速開發平臺,基於二次開發平臺Web
- 力軟快速開發平臺:方便快捷的Web開發平臺Web
- 數控開發平臺
- 國內開發平臺
- Babaali智慧方向燈頭盔:LED燈顯示轉向方向
- 『國產微控制器』led微型充氣泵方案開發設計
- 瑞芯微平臺RK3399主機板PCBA開發設計
- 國產平臺之T507 開發板Android 安全策略漫談Android
- 【iCore4 雙核心板_ARM】例程四:USART實驗——通過命令控制LED
- 操作方法分享:4G模組中移OneNET輕鬆上雲平臺
- node.js開發平臺Node.js
- 高通Android平臺開發Android
- 微信公共平臺開發(轉)
- 智慧燈泡底座上市 相容蘋果HomeKit平臺蘋果
- 【iCore3 雙核心板】例程四:USART通訊實驗——通過命令控制LED
- 大資料分析平臺功能板塊大資料
- 11_QT跨平臺執行之把QT程式交叉編譯到ARM開發板QT編譯
- 直播電商平臺開發,css實現超出部分顯示省略號,控制文字CSS
- 數字資產幣幣交易平臺開發區塊鏈合約交易平臺開發區塊鏈
- 低程式碼開發平臺是什麼意思?低程式碼開發平臺優勢!
- C#Winform快速開發平臺與軟體配置平臺C#ORM
- TRONex智慧合約APP開發平臺(真實平臺)APP
- 跨平臺開發框架的大旗框架
- SAAS平臺每日開發進度