項目四 智慧小區(qū)安全防護系統(tǒng)

1.項目目標

1未蝌、通過中移OneNET物聯(lián)網(wǎng)開放平臺新建產(chǎn)品(MQTT);根據(jù)項目場景創(chuàng)建產(chǎn)品物模型;創(chuàng)建基于MQTT 的云平臺設(shè)備除破;查看設(shè)備運行狀態(tài)及數(shù)據(jù)。
2、通過模擬工具調(diào)試設(shè)備接入;通過模擬設(shè)備盯另,實現(xiàn)屬性上報;OneNET 平臺下發(fā)屬性值(命令)到模擬設(shè)備叠萍。
3后德、基于真實設(shè)備,搭建軟硬件環(huán)境,接入 OneNET 平臺并實現(xiàn)設(shè)備屬性上報;通過OneNET 平臺的“設(shè)備調(diào)試”實現(xiàn)設(shè)備屬性下發(fā)筏勒;通過OneNET 平臺的“API 調(diào)試”實現(xiàn)設(shè)備屬性下發(fā)邪媳;直接基于API 方式實現(xiàn)設(shè)備屬性下發(fā)迅涮;
4唉地、學會OneNET 平臺數(shù)據(jù)可視化編輯器的使用旷祸;能夠進行可視化數(shù)據(jù)源的配置;對智慧小區(qū)安全防護系統(tǒng)進行可視化展現(xiàn)。

2.任務(wù)一

2.1 創(chuàng)建基于 MQTT 協(xié)議的產(chǎn)品

步驟一 通過中移物聯(lián)網(wǎng)首頁的“全部產(chǎn)品服務(wù)”菜單進入 “物聯(lián)網(wǎng)開放平臺”功能頁

image.png

注 1:如提示用戶需登錄,則先登錄后再進入;
注 2:如用戶賬號未開通物聯(lián)網(wǎng)開放平臺功能,可即時開通后再進入。

步驟二

展開左側(cè)菜單“產(chǎn)品開發(fā)”功能尘吗,點擊“創(chuàng)建產(chǎn)品”按鈕吗跋,進行產(chǎn)品添加酗宋。(如已創(chuàng)建了產(chǎn)品,則展示有產(chǎn)品列表,可繼續(xù)點擊按鈕創(chuàng)建)


image.png

在彈出的頁面中第一步,參考下圖信息,選擇產(chǎn)品品類(不一定必須一致贩耐,符合項目任務(wù)背景即可)。
第二步選擇智能化方式為“設(shè)備接入”方式。


image.png

在第三步填寫信息中,添加必要的產(chǎn)品信息(標記*號的項)。其中“節(jié)點類型”選擇“直連設(shè)備”,“接入?yún)f(xié)議”選擇“MQTT”,“數(shù)據(jù)協(xié)議”選擇“OneJson”蛤织,“聯(lián)網(wǎng)方式”選“Wi-Fi”,“開發(fā)方案”
選擇“自定義方案”。其他信息字段,對本次任務(wù)實際完成效果沒有影響可自行填入合適信息。
最后點擊確定,保存各項信息松逊,稍等頁面提示產(chǎn)品創(chuàng)建成功犀暑。


image.png

2.2 根據(jù)項目場景創(chuàng)建產(chǎn)品物模型

步驟 1 進入產(chǎn)品開發(fā)詳情頁面

image.png

步驟 2 進入物模型管理頁面

點擊頁面右側(cè)的“設(shè)置物模型”按鈕广辰,進入物模型管理頁面槽奕,按下述步驟添加系統(tǒng)功能點和自定義功能
點所森。


image.png

步驟 3 添加系統(tǒng)功能點

在彈出的添加頁面中囱持,選擇如下圖所示的系統(tǒng)功能點,點擊右下角的“添加”按鈕完成添加焕济。


image.png
image.png

步驟 4 添加自定義功能點

點擊“添加自定義功能點”,在彈出的添加頁面中吼蚁,按如下各個字段內(nèi)容凭需,添加項目場景所需的功能點信息。多個自定義功能點肝匆,需每次新增后粒蜈,再次點擊添加。注:標識符字段輸入內(nèi)容旗国,與下表一致枯怖。


image.png

image.png

步驟 5 檢查并保存創(chuàng)建的物模型檢查頁面上添加的物模型各功能點信息無誤后,點擊“保存”按鈕能曾,并點擊彈出的確認提示“確定”度硝。則創(chuàng)建的物模型在 OneNET 平臺上生效。

image.png

image.png

image.png

2.3 創(chuàng)建基于 MQTT 的設(shè)備

步驟 1 進入設(shè)備管理頁面

當我們完成上一步驟返回產(chǎn)品列表頁面時寿冕,可在剛建立產(chǎn)品列表的操作項中點擊“設(shè)備管理”蕊程,頁面即進入設(shè)備列表管理頁面。我們也可以點擊左側(cè)菜單的“設(shè)備接入管理”驼唱,進入下一級菜單“設(shè)備管理”藻茂,同樣進入該管理頁面。


image.png

步驟 2 添加一個設(shè)備的信息玫恳,用于真實設(shè)備接入目前剛創(chuàng)建的產(chǎn)品辨赐,當前設(shè)備數(shù)為 0,我們點擊右側(cè)的“添加設(shè)備”按鈕

image.png

在彈出的添加設(shè)備頁面中京办,添加單個設(shè)備掀序,所屬產(chǎn)品則選擇剛建立的產(chǎn)品名稱,設(shè)備名稱輸入Controller(注:須按此加黑信息輸入惭婿,確保與后續(xù)步驟填寫信息相一致)不恭,其他信息可自行填寫,最后點擊“確定”保存當前設(shè)備的信息审孽。


image.png

步驟 3 再添加一個設(shè)備的信息县袱,用于模擬工具接入

再次點擊“添加設(shè)備”,該設(shè)備名稱輸入Simulator(同樣請按此信息輸入佑力,確保與后續(xù)實訓任務(wù)相呼應(yīng))式散,產(chǎn)品依舊選擇剛建立的產(chǎn)品名稱,最后點擊“確定”保存當前設(shè)備的信息打颤。


image.png

3.任務(wù)二

3.1 模擬設(shè)備接入OneNET 平臺

步驟 1 獲取產(chǎn)品暴拄、設(shè)備的必要信息

1漓滔、產(chǎn)品 ID:點擊產(chǎn)品開發(fā)管理菜單,在具體產(chǎn)品列表中乖篷,找到產(chǎn)品 ID 列响驴,復制其字段信息,注意保持其大小寫(后文使用“{產(chǎn)品 ID}”來指代撕蔼,即表示需用這里復制的實際的產(chǎn)品 ID 字段信息替換豁鲤,下同)。


image.png

2鲸沮、設(shè)備名稱:點擊設(shè)備管理菜單琳骡,在具體設(shè)備列表中,找到設(shè)備名稱列讼溺,本任務(wù)中楣号,我們選擇“Simulator”設(shè)備作為模擬對象,記錄該名稱怒坯,注意保持其大小寫炫狱。(后文用{設(shè)備名稱}來指代)


image.png

3、設(shè)備密鑰:點擊設(shè)備列表右側(cè)操作項“詳情”剔猿,在設(shè)備詳情頁面视译,點擊“展開”,記錄設(shè)備密鑰信息艳馒,注意保持其完整性憎亚。(可直接點擊“復制”用于粘貼)。


image.png

步驟 2 使用官方 Token 計算工具弄慰,獲得驗證 token 信息下載并運行“實訓資料包\工具包\Token 計算器”路徑下的“tokenV2.0.exe”,在工具頁面按下表信息填入各個字段(其中部分參數(shù)填寫需用上面步驟中獲得的信息替換):

image.png

點擊“Generate”按鈕蝶锋,在工具下方輸入框計算產(chǎn)生 token陆爽,不要做任何改動,全選復制全部字符串作為{token}扳缕。


image.png

步驟 3 安裝并配置 MQTT.fx 工具模擬設(shè)備信息

下載并安裝“實訓資料包\工具包\MQTT 客戶端”路徑下的“mqttfx-1.7.1-windows-x64.exe”應(yīng)用程序慌闭。

安裝完畢后,雙擊桌面建立的MQTT.fx 快捷方式躯舔,運行MQTT.fx 客戶端:


image.png

點擊界面齒輪圖標驴剔,進入客戶端配置頁面:


image.png

(1) 設(shè)置 Profile Name:可設(shè)置一個便于記憶的名字,如“某某產(chǎn)品某某設(shè)備接入模擬”
(2) 設(shè)置 Broker Address:mqtts.heclouds.com (MQTT 設(shè)備接入平臺網(wǎng)址)
(3) 設(shè)置 Broker 端口:1883 (本次實訓任務(wù)采用非 TLS 加密的 MQTT 連接)
(4) 設(shè)置 Client ID:{設(shè)備名稱}(前一個步驟中確定的設(shè)備名稱填入此處)
在下方的第一個選項頁“General”中粥庄,設(shè)置:
(5) MQTT 協(xié)議版本號:取消默認勾中丧失,確保下方版本選擇下拉框可選,并選擇為 3.1.1


image.png

點擊 “User Credentials”選項頁惜互,繼續(xù)設(shè)置:
(6) 設(shè)置 User Name:{產(chǎn)品 ID}(前一個步驟中確定的產(chǎn)品 ID)
(7) 設(shè)置 Password:{token} (前一個步驟中計算得到的 token)


image.png

點擊OK 保存連接配置布讹。

步驟 4 使用 MQTT.fx 工具模擬設(shè)備接入

運行 MQTT.fx 工具琳拭,點擊選擇剛剛保存的連接配置列表項,擊“Connect”描验,如果一切正常白嘁,工具將很快登陸接入OneNET 平臺,此時 Connect 按鈕變灰膘流,右側(cè) Disconnect 按鈕處于激活狀態(tài)絮缅。
提示:可以點擊”Log“ 選項頁,查看工具連接服務(wù)端的情況呼股,正常連接成功則提示類似如下圖紅框所示信息耕魄。
如有如下圖紅框所示信息,則相應(yīng)檢查上一步驟中填入的連接配置信息是否正確卖怜,并進一步追溯 token計算是否正確屎开,或者更前一步中各個關(guān)鍵信息獲取是否正確。當工具顯示正常連接后马靠,查看OneNET 平臺中當前模擬的設(shè)備在頁面顯示為在線狀態(tài)


image.png

提示:頁面的狀態(tài)不會自動刷新奄抽,可以稍微等待后手動刷新頁面,確認模擬工具的連接情況與頁面上對應(yīng)設(shè)備的狀態(tài)對應(yīng)甩鳄。

步驟 5 斷開 MQTT.fx 工具模擬逞度,查看 OneNET 平臺中設(shè)備的狀態(tài)變化點擊 MQTT 工具窗口中的 “Disconnect”按鈕,斷開工具的 MQTT 連接妙啃,等待一會兒后档泽,刷新OneNET平臺中設(shè)備列表頁面,查看顯示的設(shè)備狀態(tài)信息:可以看到其狀態(tài)都變?yōu)殡x線揖赴。

image.png
image.png

4.任務(wù)三

4.1 真實設(shè)備接入OneNET 平臺實現(xiàn)屬性上報

步驟 1 基于 OneNET 物聯(lián)網(wǎng)實驗箱搭建實訓項目終端硬件平臺根據(jù)實訓場景馆匿,選取 OneNET 物聯(lián)網(wǎng)實驗箱“核心模塊”以及“Wifi 模塊”、“蜂鳴器模塊”燥滑、 “超聲波模塊”等場景所需的模塊進行搭建(建議實驗箱背板上只插上這四個模塊渐北,其他項目中已經(jīng)使用過的模塊可以取下,確保模塊數(shù)據(jù)干擾)铭拧。具體搭建操作介紹參考其他實訓項目赃蛛,此處略。

image.png

image.png

步驟 2 終端設(shè)備軟件系統(tǒng)搭建

(1) 運行 Keil uVision5 應(yīng)用程序(有關(guān)Keil uVision5 應(yīng)用程序的安裝搀菩、芯片編譯環(huán)境配置等步驟參考前述實訓項目任務(wù)中有關(guān)指導說明)呕臂。


image.png

(2) 載入項目三終端設(shè)備側(cè)代碼工程(該工程代碼已經(jīng)包含了根據(jù)實驗箱各模塊基礎(chǔ)集成框架,以及基于 MQTT 的 OneNET 云平臺接入能力)肪跋,載入后直接全編譯工程歧蒋,查看編譯結(jié)果。具體工程的打開以及編譯等操作參考前述實訓項目中操作描述。如下圖所示表示編譯沒有錯誤疏尿。
注:若編譯結(jié)果 Error 數(shù)不為 0瘟芝,則查看具體編譯日志,對應(yīng)分析代碼報錯原因褥琐,排除后再次編譯锌俱,確保無誤后進入下一步。


image.png

步驟 3 修改設(shè)備程序的 OneNET 平臺網(wǎng)絡(luò)接入配置參數(shù)修改如下幾處代碼敌呈,讓工程具備正確的網(wǎng)絡(luò)訪問以及 OneNET 平臺接入驗證和適配本次實訓任務(wù)所需的物模型數(shù)據(jù)屬性上報贸宏、寫入能力。具體代碼文件在工程中的位置如下圖所示

image.png

A. 工程相對路徑\device\src\net_device.c 約 677 行處磕洪,將{wifi}吭练、{password}替換為設(shè)備所在 Wifi 網(wǎng)絡(luò)用戶名和密碼(將{}括號一起替換,下同)析显;


image.png
UsartPrintf(USART_DEBUG, "Tips: AT+CWJAP\r\n");
            if(!NET_DEVICE_SendCmd("AT+CWJAP=\"eeee\",\"jwdv2157\"\r\n", "GOT IP", 400))

B. 工程相對路徑\onenet\src\onenet.c 約 56 行處鲫咽,依次修改{設(shè)備密鑰}、{產(chǎn)品 id}谷异、{設(shè)備名稱}為之前步驟中在 OneNET 平臺 中所創(chuàng)建的產(chǎn)品分尸、設(shè)備相關(guān)信息,本例中設(shè)備名稱就是之前步驟中創(chuàng)建的“Controller”設(shè)備歹嘹,并對應(yīng)填入其設(shè)備密鑰


image.png
ONETNET_INFO onenet_info = {"", "******************************key", "",
                            "sjh6JzlF07", "", "",
                            "183.230.40.96", "1883", 0,
                            0, 0, 1, 0, 0, 0, 0, 0, 0};
char devicename[32]="Controller";

步驟 4 修改設(shè)備程序的上報屬性值映射關(guān)系以及 OneNET 平臺下發(fā)屬性生效命令處理代碼C. 工程相對路徑\applications\application.c 約 132 行處箩绍,根據(jù)之前步驟中在 OneNET 平臺中所創(chuàng)建的物模型信息,依次增加屬性點標識符以及對應(yīng)需上報的設(shè)備數(shù)據(jù)變量尺上,如下所示材蛛;

{"beep", &beep_info.beep_status[0], TYPE_BOOL, 1}, {"distance",&Sonic_Info.sonic_distance,TYPE_FLOAT,1},
image.png

D. 工程相對路徑\onenet\src\cmd_callback.c 約 51 行處,根據(jù)之前步驟中在OneNET 平臺 中所
創(chuàng)建的物模型信息怎抛,增改此處的屬性點標識符卑吭,對應(yīng)設(shè)置需寫入生效的設(shè)備數(shù)據(jù)處理函數(shù)名,并同時實現(xiàn)該函數(shù)的聲明以及具體函數(shù)代碼马绝,完成寫入信息在本地設(shè)備上的實際生效邏輯陨簇;


image.png

以蜂鳴器寫入為例,對應(yīng)修改該變量定義段內(nèi)某行形如“{“beep”迹淌,CALLBACK_Beep},”的信息,逗號前面的字符串標識符為"beep"己单,逗號后的處理方法名為 CALLBACK_Beep唉窃。同時在該文件頭部,增加 void CALLBACK_Beep(int value);這樣的方法聲明:


image.png

在文件適當位置增加該方法的具體實現(xiàn)邏輯代碼:


image.png

步驟 5 編譯工程纹笼,連接下載器燒寫程序到設(shè)備中

下載器的連接以及燒寫過程略纹份。下載成功后設(shè)備重新加電,等待一定時間,進入下一步蔓涧。

步驟 6 OneNET 平臺側(cè)查看設(shè)備狀態(tài)

登錄 OneNET 平 臺 件已,查看“Controller”設(shè)備運行狀態(tài)為在線,具體操作與前述步驟中查看設(shè)備狀態(tài)相同元暴,圖略篷扩。若此時設(shè)備顯示為不在線,則排查前面關(guān)于網(wǎng)絡(luò)接入茉盏、OneNET 鑒權(quán)等代碼修改處是否有誤鉴未。重復步驟 3、4鸠姨、5铜秆,再次檢查并修改,直到本步驟查看狀態(tài)為上線讶迁。


image.png

步驟 7 OneNET 平臺側(cè)查看設(shè)備上報數(shù)據(jù)信息

進入設(shè)備詳情頁面连茧,查看屬性表格頁展示的各個數(shù)據(jù)點顯示的信息。(下圖僅為示例參考)


image.png

重點關(guān)注距離(標識符“distance”)巍糯、蜂鳴器狀態(tài)(標識符“beep”)等屬性點啸驯,是否已經(jīng)有數(shù)值上報,記錄有關(guān)數(shù)值作為實訓考核結(jié)果之一鳞贷。

4.2 下發(fā)屬性在終端設(shè)備上執(zhí)行生效(設(shè)備調(diào)試)

步驟 1 設(shè)備端軟硬件環(huán)境準備

沿用上一個實訓任務(wù)中搭建的設(shè)備硬件系統(tǒng)坯汤,以及繼續(xù)使用 Keil5 開發(fā)工具載入的項目三終端設(shè)備側(cè)代碼工程(該工程代碼在完成上一實訓任務(wù)后,已經(jīng)能夠接入 OneNET 平臺并上報屬性點數(shù)據(jù))搀愧。將設(shè)備上電惰聂,等待OneNET 平臺 中顯示該設(shè)備處于上線狀態(tài),進入下一實訓步驟咱筛。

步驟 2 通過 OneNET平臺 的設(shè)備調(diào)試方式進行屬性下發(fā)

打開設(shè)備管理列表頁面搓幌,選擇之前步驟中創(chuàng)建的MQTT產(chǎn)品下的“Controller”設(shè)備,點擊“詳情”進入設(shè)備詳情頁面迅箩,并點擊 “設(shè)備調(diào)試”選項溉愁,進入 OneNET 平臺 的設(shè)備調(diào)試功能頁面。本任務(wù)中饲趋,需要切換調(diào)試方式為“應(yīng)用模擬器”拐揭,下方頁面展示了可以設(shè)置的屬性(物模型中可寫的屬性功能點)。


image.png

image.png

先勾選一個功能點奕塑,然后設(shè)置下發(fā)的數(shù)值堂污。(以蜂鳴器為例,這是一個 bool 型功能點龄砰,勾選后盟猖,可設(shè)置值為 true讨衣、false 兩個之一,本次任務(wù)選擇 true 作為下發(fā)數(shù)值)點擊頁面下方基于 OneNET 的智慧小區(qū)安全防護系統(tǒng) 第 3 頁的“屬性設(shè)置”按鈕式镐,右側(cè)調(diào)試日志展示了下發(fā)的報文反镇,設(shè)備端也同時將該數(shù)值執(zhí)行生效。
注 1:如設(shè)備端沒有生效娘汞,需要具體分析原因歹茶,包括設(shè)備是否上線,以及上一實訓任務(wù)中价说,有關(guān)屬性下發(fā)的命令執(zhí)行代碼是否正確添加辆亏。


![image.png](https://upload-images.jianshu.io/upload_images/29624264-c33684971760d82e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

注 2:設(shè)備執(zhí)行屬性設(shè)置動作生效,則蜂鳴器響鳖目,此時修改設(shè)置值為“false”扮叨, 再次下發(fā),使設(shè)備端生效新的值(蜂鳴器靜音)领迈。

5.任務(wù)3-1

5.1下發(fā)屬性在終端設(shè)備上執(zhí)行生效(API 調(diào)試)

步驟 1 設(shè)備端軟硬件環(huán)境準備沿用上一個實訓任務(wù)中搭建的設(shè)備硬件系統(tǒng)彻磁,以及繼續(xù)使用 Keil5 開發(fā)工具載入的項目三終端設(shè)備側(cè)代碼工程(該工程代碼在完成上一實訓任務(wù)后,已經(jīng)能夠接入 OneNET 平臺并上報屬性點數(shù)據(jù))狸捅。將設(shè)備上電衷蜓,等待OneNET 平臺 中顯示該設(shè)備處于在線狀態(tài),進入下一實訓步驟尘喝。

步驟 2 進入“API 調(diào)試”功能頁面

點擊“運維監(jiān)控”菜單下“API 調(diào)試”子菜單磁浇,并展開工作頁面左列顯示的大類調(diào)試類別中的“物模型使用”下拉列表,選擇“設(shè)置設(shè)備屬性”API項朽褪,如下圖所示:


image.png

在中間頁面展示的必填參數(shù)中置吓,填寫頁面中輸入必要的參數(shù),如下圖所示缔赠,本次任務(wù)中衍锚,填入真實接入的設(shè)備“Controller”所對應(yīng)的相關(guān)信息:


image.png

其中的params內(nèi)容填寫要設(shè)置的屬性標識符以及對應(yīng)設(shè)置值,本次任務(wù)中設(shè)置蜂鳴器狀態(tài)為true嗤堰,文本示例參考如下:

{
"beep": true
}

點擊下方的“執(zhí)行”按鈕戴质,等待一會兒后,設(shè)備端執(zhí)行下發(fā)的屬性值(蜂鳴器響)踢匣,同時右側(cè)列頁面刷新顯示出調(diào)用結(jié)果告匠,也就是整個API 模擬調(diào)用的報文交互結(jié)果。

5.2基于API 方式實現(xiàn)設(shè)備屬性下發(fā)

步驟 1 準備 API 接口調(diào)試工具 Postman

推薦使用 Postman 工具离唬,下文的操作均以該工具作為實訓操作對象凫海,其他支持 http 協(xié)議的工具也可以使用,可參考下文描述對應(yīng)調(diào)整參數(shù)填寫方式男娄。
注:Postman 具體的安裝和使用說明可參考公開資料和前述實訓任務(wù)的操作步驟,此處略。

步驟 2 查閱接口文檔模闲,了解有關(guān)屬性下發(fā)的 API 調(diào)用方式

點擊前面任務(wù)中API“設(shè)置設(shè)備屬性”參數(shù)填寫頁面左上角的“查看API文檔”鏈接建瘫,查看右側(cè)顯示的API文檔,了解“設(shè)置設(shè)備屬性”這個API的調(diào)用方式及對應(yīng)的請求尸折、響應(yīng)相關(guān)參數(shù)信息啰脚。


image.png

也可以訪問OneNET 官網(wǎng)的“開發(fā)中心”,OneNET 平臺 專題实夹,通過左側(cè)菜單定位到“設(shè)備屬性設(shè)置”的API接口使用文檔頁面詳細了解相關(guān)請求方式以及請求參數(shù)填寫說明橄浓。


image.png

以“設(shè)置設(shè)備屬性”為例,對應(yīng)文檔地址為:
https://open.iot.10086.cn/doc/v5/fuse/detail/1418該幫助頁面詳細說明了請求方式以及請求參
數(shù)填寫說明亮航,如下圖所示:

image.png

步驟 3 填入必要參數(shù)

1荸实、根據(jù)API文檔的信息,確定設(shè)備屬性設(shè)置的請求方式缴淋、請求 url 准给,填入到 Postman 工具url
填寫欄,將 Postman工具url填寫欄前面的下拉選項改為“POST”重抖。
2露氮、確定請求 body 內(nèi)容及格式,以蜂鳴器屬性值(beep)下發(fā)為例钟沛, product_id為產(chǎn)品ID畔规,device_name為設(shè)備名稱,params 為需要下發(fā)的結(jié)構(gòu)化數(shù)據(jù)恨统,同時包含了要下發(fā)的“beep”屬性點的值叁扫,示例中為 true 數(shù)據(jù)。以鍵值對形式將上述需要設(shè)置的具體參數(shù)組裝為 body 報文內(nèi)容延欠,最終填入 Postman 工具的 Body 選項頁內(nèi)陌兑。

{
 "product_id": "sjh6JzlF07",
"device_name": "Controller",
"params":
{
 "beep": true
}
}

3、確定請求的 Header 內(nèi)容由捎,這里需要一個向 OneNET 平臺鑒權(quán)所需的必要信息字段兔综,就是“authorization ”信息,下面是該信息的一個生成示例狞玛,具體生成方式可參考其他實訓任務(wù)環(huán)節(jié)中的操作步驟指導软驰,應(yīng)用側(cè)請求鑒權(quán),res 參數(shù)須以“userid/ 用戶 ID”的格式填入心肪,版本號須為“2022-05-01”锭亏,字段具體內(nèi)容根據(jù)實際情況進行填入。


image.png

步驟 4 發(fā)起 API 請求硬鞍,查看結(jié)果

發(fā)起請求前確認當前真實設(shè)備已在線呢铆,以蜂鳴器屬性值(beep)下發(fā)為例,通過 postman 發(fā)起請求清钥, 通過平臺鑒權(quán)后惊窖,該請求會下發(fā)到對應(yīng)的真實設(shè)備,打開蜂鳴器開關(guān),蜂鳴器會按照程序里預(yù)置的邏輯進行鳴響。


image.png

步驟 5 更改 api 報文,對同樣屬性點握联,設(shè)置新的屬性值,并下發(fā)

以蜂鳴器屬性值(beep)下發(fā)為例每瞒,更改下發(fā)的屬性值為 false金闽,報文如下:

{
 "product_id": "***********",
"device_name": "Controller",
"params": {
"beep": false
}
}

再次通過 postman 發(fā)起請求,通過平臺鑒權(quán)后剿骨,該請求會下發(fā)到對應(yīng)的真實設(shè)備代芜,蜂鳴器關(guān)閉。


image.png

5.3 基于OneNET 云平臺的場景聯(lián)動

步驟 1 進入 OneNET 平臺 場景聯(lián)動管理功能

檢查實驗箱目前搭建的硬件系統(tǒng)是“核心模塊”以及“Wifi 模塊”懦砂、“蜂鳴器模塊”蜒犯、 “超聲波模塊”等模塊,燒寫程序上電運行荞膘。確保用戶已登錄 OneNET 云平臺罚随,進入 OneNET 平臺 控制臺頁面,點擊“數(shù)據(jù)流轉(zhuǎn)”菜單下“場景聯(lián)動”子菜單羽资,進入場景聯(lián)動管理功能頁面淘菩。

步驟 2 創(chuàng)建場景聯(lián)動規(guī)則

場景聯(lián)動是一種開發(fā)自動化業(yè)務(wù)邏輯的編程方式,目前支持設(shè)備屠升、時間潮改、第三方數(shù)據(jù)源等多維度的條件觸發(fā),這些觸發(fā)條件以及執(zhí)行動作組合起來腹暖,形成一套規(guī)則汇在。點擊頁面右上角“新建場景”,填寫場景名稱脏答,這里我們需要一個“距離太近告警”的場景糕殉,點擊添加進入下一步。


image.png

步驟 3 編輯距離探測告警的聯(lián)動規(guī)則

如果是初次創(chuàng)建殖告,這里直接展示的觸發(fā)條件以及執(zhí)行動作編輯頁面阿蝶。
首先選擇觸發(fā)條件為:滿足全部條件執(zhí)行,其次在“條件一”內(nèi)容中黄绩,依次選擇:
1羡洁、觸發(fā)方式:“設(shè)備觸發(fā)”
2、選擇產(chǎn)品分組:“選擇產(chǎn)品”
3爽丹、選擇具體產(chǎn)品:選擇之前實訓任務(wù)中創(chuàng)建的MQTT產(chǎn)品名稱
4筑煮、選擇設(shè)備: 選擇該產(chǎn)品下的Controller設(shè)備
5辛蚊、選擇信息源類型:“設(shè)備功能點”
6、選擇功能:選擇該產(chǎn)品下的“距離”數(shù)據(jù)點
7咆瘟、修改關(guān)系運算符:“<”
8嚼隘、數(shù)值:填入“5”(雙引號不要填)。


image.png

其次點擊增加“執(zhí)行動作”袒餐,在“動作一”內(nèi)容中,依次選擇:
1谤狡、選擇動作類型:“設(shè)備執(zhí)行”
2灸眼、選擇產(chǎn)品分組:“選擇產(chǎn)品”
3、選擇具體產(chǎn)品:選擇之前實訓任務(wù)中創(chuàng)建的MQTT產(chǎn)品名稱
4墓懂、選擇設(shè)備: 選擇該產(chǎn)品下的Controller設(shè)備
5焰宣、選擇功能:選擇該產(chǎn)品下的“蜂鳴器”
6、數(shù)據(jù)值選擇“1”捕仔。


image.png

點擊“確定”創(chuàng)建好改場景信息匕积,并修改其啟用狀態(tài)為“開”。


image.png

步驟 4 再新增一個聯(lián)動規(guī)則榜跌,實現(xiàn)距離安全時取消告警

參考步驟 3 描述闪唆,再新增一個聯(lián)動規(guī)則,名稱可以為“距離安全取消告警”钓葫。該規(guī)則的具體條件及動
作與步驟3大部分相同悄蕾,除了其中的條件部分,距離邏輯判斷修改為“>”础浮,數(shù)值為“20”帆调,執(zhí)行動作部分,
蜂鳴器的數(shù)值改為“0”豆同。最后點擊“確認”按鈕番刊,并同樣將該條場景規(guī)則的啟用狀態(tài)修改為“開”,完成本次編輯內(nèi)容影锈。


image.png

步驟 5 設(shè)備上線芹务,觀察場景實現(xiàn)效果

檢查實驗箱目前搭建的硬件系統(tǒng)是“核心模塊”以及“Wifi 模塊”、“蜂鳴器模塊”精居、 “超聲波模塊”等模塊锄禽,燒寫程序為項目三配套工程代碼,上電運行靴姿。


image.png

近距離遮擋超聲波模塊的距離探測器探頭沃但,稍等一定時間后,蜂鳴器模塊鳴叫佛吓,移開超聲波模塊遮擋宵晚, 再稍等一定時間后垂攘,蜂鳴器模塊停止鳴叫。
注:如設(shè)備未按場景聯(lián)動的規(guī)則邏輯執(zhí)行淤刃,可通過場景列表該條場景的“查詢?nèi)罩尽边M入查看場景晒他。


image.png

6.任務(wù)四

6.1 物聯(lián)網(wǎng)云平臺可視化組件配置運用

步驟 1 創(chuàng)建一個可視化項目

可視化能力是 OneNET 平臺重點打造的基于物聯(lián)網(wǎng)設(shè)備大數(shù)據(jù)的增值服務(wù)能力,可以從平臺全部產(chǎn)品服務(wù)的菜單列表中逸贾,點擊”數(shù)據(jù)可視化 view“菜單后陨仅,點擊“立即試用”按鈕進入。


image.png

image.png

首先新增一個可視化項目铝侵,在彈出的模板選擇頁面灼伤,選擇一個 2D 項目模板下的“空白模板”作為本次項目可視化的基礎(chǔ)模板,填寫位于右側(cè)的項目名稱咪鲜、項目描述后狐赡,點擊“確定”完成可視化項目創(chuàng)建。


image.png

注:也可以選擇具有一定頁面效果的模板比如“模板-智慧園區(qū)“疟丙,后續(xù)根據(jù)需要刪減部分控件颖侄。

步驟 2 增加數(shù)據(jù)源模板

點擊左側(cè)菜單“數(shù)據(jù)管理”下“數(shù)據(jù)源模板”子菜單,右側(cè)頁面中享郊,點擊“創(chuàng)建數(shù)據(jù)源模板”览祖,預(yù)先為界面展示距離的變化圖表建立一個數(shù)據(jù)來源模板。


image.png

在展開的配置項中拂蝎,先設(shè)定第一項的“數(shù)據(jù)類 ”型為“物聯(lián)網(wǎng)平臺”


image.png

這時頁面會切換為配置從“物聯(lián)網(wǎng)平臺”抓取數(shù)據(jù)所需的必要信息穴墅。依次填
寫帶“*”的所有項:
(1) 名稱,設(shè)置數(shù)據(jù)源的名稱温自,注意不能是中文玄货,該名稱將作為關(guān)鍵字與數(shù)據(jù)一起傳遞到可視化組件頁面中解析。比如下圖所示悼泌,設(shè)為“distance”松捉。
(2) userId:填寫用戶ID;
(3) accessKey:填寫用戶的accessKey馆里;該項與上一項均需進入用戶中心隘世、“訪問權(quán)限”頁面查看獲取。
(4) 產(chǎn)品ID:為之前任務(wù)中創(chuàng)建的產(chǎn)品ID鸠踪;
(5) 設(shè)備名稱:點選輸入框丙者,等待平臺將上述已經(jīng)填寫的3項內(nèi)容作為條件匹配查找設(shè)備,并將符合的設(shè)備以下拉的方式展示营密,以本次任務(wù)為例械媒,顯示了之前實訓環(huán)節(jié)的設(shè)備“Controller”,選中該設(shè)備。注:如這里提示獲取設(shè)備列表失敗纷捞,則相應(yīng)檢查(2)痢虹、(3)、(4)中填寫的信息是否正確主儡。
(6) 數(shù)據(jù)流:選擇一個設(shè)備中可以用于讀取的屬性功能名作為數(shù)據(jù)產(chǎn)生點奖唯。本例中選擇“距離”。點擊“創(chuàng)建”按鈕糜值,耐心等待平臺返回創(chuàng)建結(jié)果丰捷。


步驟 3 編輯可視化頁面及各個組件

編輯

回到可視化項目列表展示頁面,點擊已創(chuàng)建好可視化項目縮略圖下方的“編輯”按鈕寂汇,進入頁面編輯狀態(tài)瓢阴,如果是采用已有模板,則需將頁面多余的控件加以刪除健无,保留背景等基礎(chǔ)效果,如果是空白模板液斜,則直接添加本次實訓所需的控件:常規(guī)圖表中的平滑折線圖累贤,如下圖,添加后效果如圖所示少漆。


雙擊添加的控件臼膏,右側(cè)出現(xiàn)對應(yīng)控件的“樣式”屬性修改 Tab 頁,根據(jù)項目看板展示效果所需示损,自行展開具體的屬性列表項渗磅,調(diào)整各項屬性,達到最優(yōu)顯示效果检访。


步驟 4 設(shè)置圖表的數(shù)據(jù)來源

保持折線圖處于選擇狀態(tài)(可再次雙擊折線圖始鱼,右側(cè)出現(xiàn)屬性修改頁),現(xiàn)在切換到“數(shù)據(jù)”屬性 Tab頁脆贵。選擇“數(shù)據(jù)綁定方式”為“數(shù)據(jù)源”医清,此時“數(shù)據(jù)源選
擇”下拉列表為“請選擇”狀態(tài),點擊“管理數(shù)據(jù)源”按鈕卖氨,彈出“數(shù)據(jù)源管理”頁面会烙。


管理數(shù)據(jù)源

點擊“數(shù)據(jù)源模板”Tab 頁,展示目前所有的數(shù)據(jù)
源模板筒捺,可以看到一條在之前步驟中已經(jīng)創(chuàng)建好的記錄
(名稱為 distance)柏腻,點擊該記錄操作列中最右圖標:
“以此模板創(chuàng)建數(shù)據(jù)源”。


distance 數(shù)據(jù)模版

保存成功

關(guān)閉窗口回到視圖編輯頁面系吭。
此時“數(shù)據(jù)源選擇”下拉列表會出現(xiàn)一條可選的記錄五嫂,如“distance_XXXX”,代表以“distance” 模板生成的記錄村斟,平臺自動追加后綴加以命名贫导。選擇該條記錄作為折線圖的數(shù)據(jù)源抛猫。



步驟 5 設(shè)置不使用數(shù)據(jù)過濾器

點擊 “使用數(shù)據(jù)過濾器”前面的勾選框,去掉勾選孩灯,即不使用數(shù)據(jù)過濾器闺金。點擊“數(shù)據(jù)處理結(jié)果”按鈕,查看彈出的窗口中展示的數(shù)據(jù)峰档,這些數(shù)據(jù)就是設(shè)備定時上報的屬性點形成的(圖例中的 value對應(yīng)的值败匹,就是上報的間隔距離值)。關(guān)閉彈出窗口繼續(xù)下一步讥巡。



步驟 6 設(shè)置圖表的橫軸列展示字段名與數(shù)據(jù)提供字段相匹配

現(xiàn)在切換回“樣式”屬性 Tab 頁掀亩。展開“數(shù)據(jù)系列”的節(jié)點,修改列字段名為“value”欢顷,保持與數(shù)據(jù)源中提供的數(shù)值字段“value”相一致槽棍。


步驟 7 預(yù)覽可視化視圖并回到編輯狀態(tài)迭代優(yōu)化視圖效果

編輯視圖界面,可以看到折線圖已顯示出實際的折線數(shù)據(jù)圖表抬驴,可以點擊右上角“預(yù)覽”按鈕炼七,在全頁面狀態(tài)下查看整個可視化視圖的效果。


如需要修改視圖布持,可以點擊頂部右側(cè)出現(xiàn)的“繼續(xù)編輯”按鈕豌拙,回到可編輯狀態(tài)繼續(xù)修改。


步驟 8 保存視圖题暖,完成可視化項目

完成視圖編輯后按傅,點擊頂部的“保存”按鈕(編輯狀態(tài)和預(yù)覽狀態(tài)均可),完成項目保存胧卤。



項目總結(jié)

通過模擬工具調(diào)試設(shè)備接入唯绍;通過模擬設(shè)備,實現(xiàn)屬性上報灌侣;OneNET 平臺下發(fā)屬性值(命令)到模擬設(shè)備推捐;基于設(shè)備工程,實現(xiàn) OneNET 平臺下發(fā)屬性在終端設(shè)備上執(zhí)行生效侧啼;基于API 方式實現(xiàn)設(shè)備屬性下發(fā)牛柒;學OneNET 平臺數(shù)據(jù)可視化編輯器的使用;能夠進行可視化數(shù)據(jù)源的配置痊乾;對智慧小區(qū)安全防護系統(tǒng)進行可視化展現(xiàn)皮壁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哪审,隨后出現(xiàn)的幾起案子蛾魄,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滴须,死亡現(xiàn)場離奇詭異舌狗,居然都是意外死亡,警方通過查閱死者的電腦和手機扔水,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門痛侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人魔市,你說我怎么就攤上這事主届。” “怎么了待德?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵君丁,是天一觀的道長。 經(jīng)常有香客問我将宪,道長绘闷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任较坛,我火速辦了婚禮簸喂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘燎潮。我一直安慰自己,他們只是感情好扼倘,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布确封。 她就那樣靜靜地躺著,像睡著了一般再菊。 火紅的嫁衣襯著肌膚如雪爪喘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天纠拔,我揣著相機與錄音秉剑,去河邊找鬼。 笑死稠诲,一個胖子當著我的面吹牛侦鹏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臀叙,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼略水,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劝萤?” 一聲冷哼從身側(cè)響起渊涝,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后跨释,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胸私,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年鳖谈,在試婚紗的時候發(fā)現(xiàn)自己被綠了岁疼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚯姆,死狀恐怖五续,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龄恋,我是刑警寧澤疙驾,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站郭毕,受9級特大地震影響它碎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜显押,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一扳肛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乘碑,春花似錦挖息、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至资铡,卻和暖如春电禀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笤休。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工尖飞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人店雅。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓政基,卻偏偏與公主長得像,于是被迫代替她去往敵國和親闹啦。 傳聞我的和親對象是個殘疾皇子腋么,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容