一、 實(shí)訓(xùn)目的
1艇搀、在平臺(tái)上實(shí)現(xiàn)發(fā)送命令使開關(guān)燈
2臀蛛、運(yùn)用postman寫入設(shè)備控制開關(guān)燈
3亲桦、會(huì)使用 HTTP 推送
4、了解如何處理 HTTP 推送
二浊仆、實(shí)訓(xùn)步驟
第一段實(shí)驗(yàn)(在平臺(tái)上發(fā)送命令)
步驟1 修改工程文件里面的代碼
向SDK添加外圍硬件驅(qū)動(dòng)客峭,本項(xiàng)目Demo中已經(jīng)做好LED和光照傳感器驅(qū)動(dòng)程序。在HAL文件夾中抡柿,包含了開發(fā)板所有外圍硬件設(shè)備的驅(qū)動(dòng)程序舔琅。
在讀回調(diào)函數(shù)read_callback里增加光照和LED資源,當(dāng)從平臺(tái)接收到光照值和LED狀態(tài)的讀取命令時(shí),響應(yīng)命令洲劣,上報(bào)數(shù)據(jù)备蚓。
下行命令的處理︰在寫入回調(diào)函數(shù)write_callback里增加LED控制:
步驟二 平臺(tái)輸入命令
平臺(tái)信息展示
發(fā)送寫入數(shù)據(jù)true
發(fā)送數(shù)據(jù)false
平臺(tái)發(fā)送記錄
第二段實(shí)驗(yàn)(通過即使命令-寫入設(shè)備實(shí)現(xiàn)LED燈)
步驟1為post man添加參數(shù)
添加參數(shù)
步驟二
添加代碼
步驟三
寫入命令----開燈
呈現(xiàn)效果
寫入命令----關(guān)燈
呈現(xiàn)效果
第三段實(shí)驗(yàn) (http數(shù)據(jù)推送自動(dòng)開關(guān)LED燈)
在 OneNET Studio 平臺(tái)上接入 NB 設(shè)備后课蔬,完成從 Studio 向第三方應(yīng)用(本應(yīng)用)的數(shù)據(jù)推送,
從而在應(yīng)用程序中獲取 NB 設(shè)備的所有數(shù)據(jù)郊尝。同時(shí)购笆,在應(yīng)用程序中監(jiān)控光照傳感器的值,達(dá)到預(yù)設(shè)的最
大閾值后虚循,調(diào)用 LwM2M IPSO API,自動(dòng)關(guān)閉 LED 燈样傍;達(dá)到預(yù)設(shè)的最小閾值后横缔,調(diào)用 API 自動(dòng)打開 LED
燈,從而實(shí)現(xiàn)節(jié)能的目的衫哥。
本項(xiàng)目基礎(chǔ)代碼由中移官方數(shù)據(jù)推送 SDK 克隆而來茎刚,使用命令 git clone -b OneNET5.0
https://github.com/cm-heclouds/data-push,然后再簡單地封裝了一下 Studio 訪問 LwM2M IPSO
的 API撤逢。
步驟 1 安裝依賴
1) 安裝配置 JDK
setx /m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_101"
setx /m CLASSPATH ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;"
setx /m PATH "%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;"
關(guān)閉當(dāng)前 cmd 窗口膛锭,重新打開一個(gè)新的 cmd 窗口,然后輸入 java -version 命令蚊荣,如果能夠看到
類似如下的輸出初狰,則表示 JDK1.8 安裝完成。
2) 安裝配置 Maven
setx /m MAVEN_HOME "F:\ProgramEnv\apache-maven-3.3.9"
新開一個(gè) cmd 窗口互例,運(yùn)行 mvn -version 命令奢入,如果能夠看到如下輸出,則表示 Maven 安裝成功:
3) 安裝配置 IntelliJ IDEA
步驟 2 運(yùn)行程序
打開 JAVA\src\main\java\com\onenet\datapush\receiver\ReceiverDemo.java 文件媳叨,點(diǎn)擊綠色
三角腥光,則可以運(yùn)行本程序
1) 修改參數(shù)
api.authorization: 使用 OneNET Studio 提供的 Token 工具生成。需要注意的是糊秆,生成該鑒
權(quán)信息的參數(shù)中包括 et武福,它代表訪問過期時(shí)間,盡可能設(shè)置大一點(diǎn)痘番,否則可能需要不斷地修改該
鑒權(quán)信息捉片。
? light.imei: NB-IoT 設(shè)備的 IMEI 號(hào)。
? http-push.token: 第三方應(yīng)用 Token夫偶,HTTP 數(shù)據(jù)推送頁面中配置的 Token 需要與之一致界睁。
? http-push.aesKey: 第三方應(yīng)用 AesKey,HTTP 數(shù)據(jù)推送頁面中配置的 AesKey 需要與之一
致兵拢。本實(shí)驗(yàn)中這里設(shè)置為空翻斟,于此同時(shí),下一個(gè)步驟中说铃,數(shù)據(jù)推送配置頁面上的“消息加密方式”
應(yīng)該對應(yīng)選擇“明文模式”访惜。
步驟 3 OneNET Studio HTTP 數(shù)據(jù)推送配置
實(shí)例名稱:自己取一個(gè)合理的名稱嘹履。
? 推送地址:http://www.xxx.net/receive,注意 URL 后面必須包含 /receive债热,它是在本應(yīng)用程
序中實(shí)現(xiàn)的砾嫉,用于接收處理 Studio 的驗(yàn)證和數(shù)據(jù)。
? Token:自己輸入一個(gè)合理的字符串窒篱。該字符串需要與配置文件中的 http-push.token 保持一致焕刮。
? 消息加密方式:選擇“明文模式”,本應(yīng)用程序不進(jìn)行消息加密墙杯。
配置完成以后配并,需要手動(dòng)點(diǎn)擊數(shù)據(jù)推送的“驗(yàn)證”按鈕,只有驗(yàn)證成功了高镐,Studio 才會(huì)向其推送數(shù)
據(jù)
步驟 4 OneNET Studio 規(guī)則引擎配置
在 Studio 上點(diǎn)擊“應(yīng)用開發(fā)->項(xiàng)目管理”溉旋,新建一個(gè)項(xiàng)目,取一個(gè)合理的名稱嫉髓,比如“智能燈控項(xiàng)
目”:
點(diǎn)擊上圖“進(jìn)入項(xiàng)目管理”按鈕观腊,就可以進(jìn)入項(xiàng)目管理頁面。在“設(shè)備管理→設(shè)備列表”中算行,點(diǎn)擊“添
加設(shè)備”按鈕梧油,將前面創(chuàng)建的 NB-IoT 設(shè)備加入到該項(xiàng)目中
接下來,點(diǎn)擊左側(cè)的“規(guī)則引擎”按鈕州邢,創(chuàng)建一個(gè)規(guī)則引擎婶溯。勾選所有的消息源,指定前面創(chuàng)建的 NB-IoT
產(chǎn)品偷霉,然后關(guān)聯(lián)前面創(chuàng)建的 HTTP 數(shù)據(jù)推送迄委。
步驟 5 根據(jù)光照度的閾值自動(dòng)開關(guān) LED 燈
三、實(shí)驗(yàn)總結(jié)
通過本次實(shí)驗(yàn)类少,更加熟悉了onenet平臺(tái)的操作叙身,并且也對postman的相關(guān)操作也更加的清楚,多方面的擴(kuò)展了自己的知識(shí)面硫狞,在不斷的失敗中信轿,通過查詢資料和向老師求解,明白了更多的解決方法残吩,也讓我自己印象更加的深刻财忽。0.