##**一.項目背景**
1.社會發(fā)展和科技進步的需求:
隨著科技的不斷發(fā)展和人們生活水平的提高肤晓,對居住環(huán)境的安全性和智能化要求日益增強。城市化進程加速翩隧,小區(qū)人口密度增大妓布,治安形勢變得更為復(fù)雜姻蚓,需要更高效、精準(zhǔn)的安防手段來保障居民的生命財產(chǎn)安全匣沼。
2.傳統(tǒng)安防措施的局限性:
傳統(tǒng)小區(qū)的安防措施往往存在諸多局限性狰挡,如監(jiān)控覆蓋不全面、響應(yīng)不及時、信息孤立等問題圆兵。這些問題使得傳統(tǒng)安防措施無法滿足現(xiàn)代小區(qū)對安全性的高要求。
3.先進信息技術(shù)的支撐:
先進的信息技術(shù)枢贿,如物聯(lián)網(wǎng)殉农、人工智能、大數(shù)據(jù)等的快速發(fā)展局荚,為智慧小區(qū)安防系統(tǒng)的建設(shè)提供了技術(shù)支撐超凳。通過將各類智能設(shè)備和系統(tǒng)進行整合,可以實現(xiàn)對小區(qū)的全方位實時監(jiān)控耀态、智能預(yù)警和快速響應(yīng)轮傍。
4.居民生活品質(zhì)的追求:
居民對生活品質(zhì)的追求也促使小區(qū)管理者不斷提升安防水平。他們希望擁有一個更加安全首装、便捷创夜、舒適的居住環(huán)境,這就要求安防系統(tǒng)不僅具備強大的防護功能仙逻,還要具備良好的用戶體驗和交互性驰吓。
5.政策支持與推動:
各級政府也積極推動智慧小區(qū)的建設(shè),通過政策支持和資金投入系奉,鼓勵小區(qū)管理者采用先進的安防技術(shù)和系統(tǒng)檬贰,提升小區(qū)的安全性和智能化水平。
#二.實訓(xùn)目標(biāo)
##1.創(chuàng)建智慧小區(qū)安全防護系統(tǒng)產(chǎn)品設(shè)備
####1.1 實訓(xùn)目的
1缺亮、通過中移OneNET物聯(lián)網(wǎng)開放平臺新建產(chǎn)品(MQTT)翁涤;
2、根據(jù)項目場景創(chuàng)建產(chǎn)品物模型萌踱;
3葵礼、創(chuàng)建基于MQTT 的云平臺設(shè)備;
4并鸵、查看設(shè)備運行狀態(tài)及數(shù)據(jù)章咧。
##2.智慧小區(qū)安全防護系統(tǒng)模擬設(shè)備接入
###2.1 實訓(xùn)目的
1、通過模擬工具調(diào)試設(shè)備接入能真;
2赁严、通過模擬設(shè)備,實現(xiàn)屬性上報粉铐;
3疼约、OneNET 平臺下發(fā)屬性值(命令)到模擬設(shè)備;
##3.基于真實設(shè)備接入 OneNET 平臺
###3.1 實訓(xùn)目的
1蝙泼、基于真實設(shè)備程剥,搭建軟硬件環(huán)境,接入 OneNET 平臺并實現(xiàn)設(shè)備屬性上報;
2织鲸、通過OneNET 平臺的“設(shè)備調(diào)試”實現(xiàn)設(shè)備屬性下發(fā)舔腾;
3、通過OneNET 平臺的“API 調(diào)試”實現(xiàn)設(shè)備屬性下發(fā)搂擦;
4稳诚、直接基于API 方式實現(xiàn)設(shè)備屬性下發(fā);
##4.安全防護系統(tǒng)的可視化實現(xiàn)
###4.1 實訓(xùn)目的
1瀑踢、學(xué)會OneNET 平臺數(shù)據(jù)可視化編輯器的使用扳还;
2、能夠進行可視化數(shù)據(jù)源的配置橱夭;
3氨距、對智慧小區(qū)安全防護系統(tǒng)進行可視化展現(xiàn)。
##**三.實訓(xùn)過程**
##1.創(chuàng)建智慧小區(qū)安全防護系統(tǒng)產(chǎn)品設(shè)備
###1.1實訓(xùn)過程
1.1.1棘劣、通過中移OneNET物聯(lián)網(wǎng)開放平臺新建產(chǎn)品(MQTT)
(1) 通過中移物聯(lián)網(wǎng)首頁的“全部產(chǎn)品服務(wù)”菜單進入 “物聯(lián)網(wǎng)開放平臺”功能頁

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

1.1.2而钞、根據(jù)項目場景創(chuàng)建產(chǎn)品物模型沙廉;

1.1.3、創(chuàng)建基于 MQTT 的設(shè)備臼节;

1.1.4撬陵、設(shè)備狀態(tài)及信息查看
步驟 1 查看設(shè)備運行狀態(tài)
點擊左側(cè)菜單“設(shè)備管理”,顯示設(shè)備列表頁面网缝,其中“設(shè)備狀態(tài)”列展示了對應(yīng)設(shè)備的運行狀態(tài)巨税。初始創(chuàng)建的設(shè)備,顯示為“未激活”粉臊,當(dāng)實體設(shè)備使用該條設(shè)備信息接入到 OneNET 平臺后草添,則顯示為“在線”,斷開與OneNET 平臺的連接后扼仲,則顯示為“離線”远寸,且“最近在線時間”列會記錄最后一次上線時間信息。


步驟 2 查看設(shè)備詳細(xì)信息
點擊設(shè)備列表右側(cè)操作項“詳情”屠凶,在設(shè)備詳情頁面驰后,查看設(shè)備及歸屬產(chǎn)品的詳細(xì)信息。這里的信息矗愧,后續(xù)任務(wù)步驟中會使用到灶芝。

切換到“屬性”頁面,可以查看當(dāng)前設(shè)備下的各個物模型功能點實際數(shù)據(jù),下圖因為設(shè)備是初次創(chuàng)建夜涕,所以這些數(shù)據(jù)還沒有記錄犯犁。

步驟 3 查看設(shè)備日志
OneNET 平臺提供了核心服務(wù)全鏈路日志,包括設(shè)備上下線女器、設(shè)備上行消息酸役、
下行消息、業(yè)務(wù)處理消息(物模型調(diào)用晓避、存儲簇捍、規(guī)則引擎只壳、HTTP 推送俏拱、MQ
推送)等。日志列表提供了強大靈活的搜索功能吼句,可查詢設(shè)備日志詳細(xì)信息锅必,
進行故障分析。
點擊左側(cè)菜單“運維監(jiān)控”展開惕艳,“設(shè)備日志”子菜單搞隐,顯示所有設(shè)備的
日志列表頁面,可以選擇篩選條件远搪,精細(xì)過濾快速查找日志信息劣纲。因為當(dāng)前設(shè)
備是初次創(chuàng)建,相關(guān)日志信息還沒有谁鳍,下圖是一個已經(jīng)產(chǎn)生日志記錄的設(shè)備日志查詢列表癞季。在未來實訓(xùn)環(huán)節(jié),我們將通過這里的功能方便便捷查找傳輸?shù)臄?shù)據(jù)值倘潜, 或者快速定位問題绷柒。

###1.2拓展實訓(xùn)部分
1.2.1設(shè)備分組管理
步驟 1 創(chuàng)建設(shè)備分組
支持設(shè)備分組功能,可以將不同產(chǎn)品下的不同設(shè)備組合在一起涮因,即增加一個跨產(chǎn)品的自定義設(shè)備組合废睦。每個設(shè)備最多添加進一個分組,通過用戶自定義的分組养泡,標(biāo)記特征嗜湃,從而實現(xiàn)設(shè)備資源的重新組合以方便特定應(yīng)用場景下的物聯(lián)網(wǎng)項目應(yīng)用。點擊左側(cè)“設(shè)備分組”子菜單進入分組管理頁面澜掩,點擊右側(cè)“添加分組”净蚤,在彈出的頁面中填寫分組名稱,點擊“新建”完成分組創(chuàng)建输硝。

點擊創(chuàng)建好的分組信息列表操作列中的“詳情”今瀑,進入當(dāng)前設(shè)備分組信息頁面。

步驟 2 為分組添加設(shè)備
初始時沒有設(shè)備存在于該分組中,列表顯示為空白橘荠。注意分組信息展示的內(nèi)容屿附,分組也有自己的key, 這個 key 可用于按分組方式接入 OneNET 平臺的方式時哥童,計算 Token 的授權(quán)憑據(jù)挺份。

點擊頁面右側(cè)“添加設(shè)備”按鈕,彈出的頁面展示了左右兩欄設(shè)備列表贮懈。左側(cè)列出了所有產(chǎn)品下的待添加設(shè)備匀泊,已加入到某個分組的設(shè)備則不會顯示。選擇左側(cè)之前創(chuàng)建好的設(shè)備朵你,右側(cè)會自動出現(xiàn)該設(shè)備信息各聘,表示已被選擇加入到當(dāng)前分組中。點擊下面的“確定”按鈕完成將設(shè)備加入到分組的操作抡医。

##2.智慧小區(qū)安全防護系統(tǒng)模擬設(shè)備接入
###2.1實訓(xùn)步驟
2.1.1模擬設(shè)備接入OneNET 平臺
步驟 1使用官方 Token 計算工具躲因,獲得驗證 token 信息
下載并運行“實訓(xùn)資料包\工具包\Token 計算器”路徑下的“tokenV2.0.exe”

步驟 2安裝并配置 MQTT.fx 工具模擬設(shè)備信息
下載并安裝“實訓(xùn)資料包\工具包\MQTT 客戶端”路徑下的“mqttfx-1.7.1-windows-x64.exe”應(yīng)用程序。安裝完畢后忌傻,雙擊桌面建立的MQTT.fx 快捷方式大脉,運行MQTT.fx 客戶端:

設(shè)置配置頁面


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

查看在線狀態(tài)

步驟 4 斷開 MQTT.fx 工具模擬,查看 OneNET 平臺中設(shè)備的狀態(tài)變化

查看在線狀態(tài)

2.1.2模擬設(shè)備接入OneNET 平臺實現(xiàn)屬性上報
步驟 1 訂閱屬性上報結(jié)果通知消息
首先根據(jù)前述步驟完成模擬工具 MQTT.fx 模擬一個設(shè)備(本任務(wù)為 Simulator)接入 OneNET 平臺水孩,在平臺側(cè)頁面中查看到設(shè)備為上線狀態(tài)镰矿。點擊模擬工具的“Subscribe”選項頁表頭,在其中的輸入框填寫屬性上報結(jié)果通知topic俘种。
這是為了確保設(shè)備上傳消息確實被平臺所接受處理秤标,模擬設(shè)備通過訂閱 OneNET 平臺中已提前創(chuàng)建好的該 MQTT 設(shè)備屬性上報的結(jié)果回復(fù) topic 主題,來等待獲取對應(yīng)的屬性上報結(jié)果消息安疗,屬性上報結(jié)果回復(fù) topic 為:
######$sys/產(chǎn)品 ID/設(shè)備名稱/thing/property/post/reply

步驟 2 發(fā)送屬性上報消息
點擊“Publish”選項頁表頭抛杨,切換到消息發(fā)送頁,在輸入框中填入屬性上報 topic 主題荐类,該 topic為:
######$sys/產(chǎn)品 ID/設(shè)備名稱/thing/property/post

在下空白編輯區(qū)中怖现,輸入如下內(nèi)容:
~~~
{
? ? ? ? ? "id": "123",
? ? ? ? ? "version": "1.0",
? ? ? ? ? ? ? ? ? ? ? "params": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "distance": {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "value": 28.88,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "time": 1599534283111
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
}
~~~
輸入并檢查無誤后,點擊“Publish”按鈕玉罐。

步驟 3 查看屬性上報結(jié)果

步驟 4 OneNET 平臺中查看設(shè)備的屬性最新值

2.1.3OneNET 平臺下發(fā)屬性值到模擬工具
步驟 1 訂閱接收平臺下發(fā)屬性數(shù)據(jù)的 topic
設(shè)備側(cè)如需要收到平臺下發(fā)的數(shù)據(jù)屈嗤,需要訂閱接收平臺下發(fā)數(shù)據(jù)的 topic,該 topic 為:
######$sys/產(chǎn)品 ID/設(shè)備名稱/thing/property/set
點擊模擬工具的“Subscribe”選項頁表頭吊输,在其中的輸入框填寫平臺下發(fā)屬性數(shù)據(jù)的 topic饶号。點擊“Subcribe”按鈕完成訂閱,如下所示季蚂,成功后訂閱列表會多一個新的訂閱頻道茫船,當(dāng)前消息數(shù)為 0琅束。

步驟 2 OneNET 平臺下發(fā)屬性數(shù)據(jù)
在“設(shè)備管理”中選擇要下發(fā)屬性的設(shè)備(本任務(wù)中選擇前面任務(wù)中創(chuàng)建的產(chǎn)品和
Simulator 設(shè)備),點擊詳情進入設(shè)備信息頁面算谈,切換功能為“設(shè)備調(diào)試”在下方顯示頁面中選擇“應(yīng)用模擬器”涩禀,勾中屬性功能點距離 distance,并填寫一個具體數(shù)值然眼,如 33.3艾船,點擊頁面下方的 “屬性設(shè)置”按鈕,完成發(fā)送高每∮炱瘢可以在頁面右側(cè)的調(diào)試日志中看到下發(fā)的日志信息。

步驟 3 模擬設(shè)備中查看收到的屬性數(shù)據(jù)值

###2.2拓展實訓(xùn)部分
2.2.1仿真設(shè)備信息上傳
步驟 1 進入設(shè)備調(diào)試功能
在“設(shè)備管理”中選擇要下發(fā)上報信息的設(shè)備(本任務(wù)中選擇前面任務(wù)中創(chuàng)建的產(chǎn)品和 Simulator 設(shè)備)鲸匿,點擊詳情進入設(shè)備信息頁面爷怀,切換功能為“設(shè)備調(diào)試”。

步驟 2 啟動設(shè)備模擬器?
刷新頁面提示可以啟動調(diào)試后晒骇,點擊“啟動調(diào)試”按鈕霉撵。啟動后磺浙,屬性上報 Tab 頁展示了當(dāng)前設(shè)備可以上報的數(shù)據(jù)點洪囤,圖示僅參考操作的位置示意,不代表所示信息必須保持一樣撕氧。

步驟 3 輸入當(dāng)前設(shè)備的WiFi定位信息上報
向下瀏覽或通過輸入關(guān)鍵字搜索定位到“WiFi定位”屬性數(shù)據(jù)點瘤缩,勾中前面的選框,并點擊右側(cè)下拉展開 箭 頭 伦泥, 在 該 數(shù) 據(jù) 點 下 的 “ 熱 點 mac 信 息 ” 輸 入 框 中 輸 入 某 個 WiFi 熱 點 的 mac 地 址 信 息 剥啤, 如dc:fe:18:f2:4c:67|ac:b3:b5:1d:63:80。點擊下方的“屬性上報”不脯。

觀察頁面右側(cè)顯示的數(shù)據(jù)上報及平臺回應(yīng)信息府怯,確認(rèn)數(shù)據(jù)成功上報。
步驟 4 在設(shè)備詳情頁面查看設(shè)備上報的熱點位置信息數(shù)據(jù)

步驟 5 重復(fù)為另一個 Controller 設(shè)備上報地理位置信息數(shù)據(jù)
重復(fù)步驟 1防楷、2牺丙、3、4复局,但此時選擇的設(shè)備為“Controller”冲簿,其他操作方式與前述步驟一致,返回設(shè)備詳情頁面亿昏,查看該設(shè)備下的地理位置屬性點信息峦剔,已經(jīng)有數(shù)據(jù)記錄。
##3.基于真實設(shè)備接入 OneNET 平臺
###3.1實訓(xùn)步驟
3.1.1真實設(shè)備接入OneNET 平臺實現(xiàn)屬性上報
步驟 1 基于 OneNET 物聯(lián)網(wǎng)實驗箱搭建實訓(xùn)項目終端硬件平臺
根據(jù)實訓(xùn)場景角钩,選取 OneNET 物聯(lián)網(wǎng)實驗箱“核心模塊”以及“Wifi 模塊”吝沫、“蜂鳴器模塊”呻澜、 “超聲波模塊”等場景所需的模塊進行搭建
步驟 2 終端設(shè)備軟件系統(tǒng)搭建
(1) 運行 Keil uVision5 應(yīng)用程序(有關(guān)Keil uVision5 應(yīng)用程序的安裝、芯片編譯環(huán)境配置等步驟參考前述實訓(xùn)項目任務(wù)中有關(guān)指導(dǎo)說明)惨险。
(2) 載入項目三終端設(shè)備側(cè)代碼工程(該工程代碼已經(jīng)包含了根據(jù)實驗箱各模塊基礎(chǔ)集成框架易迹,以及基于 MQTT 的 OneNET 云平臺接入能力),載入后直接全編譯工程平道,查看編譯結(jié)果睹欲。具體工程的打開以及編譯等操作參考前述實訓(xùn)項目中操作描述。如下圖所示表示編譯沒有錯誤一屋。

步驟3修改設(shè)備程序的OneNET平臺網(wǎng)絡(luò)接入配置參數(shù)
修改如下幾處代碼窘疮,讓工程具備正確的網(wǎng)絡(luò)訪問以及OneNET平臺接入驗證和適配本次實訓(xùn)任務(wù)所需的物模型數(shù)據(jù)屬性上報、寫入能力冀墨。具體代碼文件在工程中的位置如下圖所示
A. 工程相對路徑\device\src\net_device.c 約 677 行處闸衫,將{wifi}、{password}替換為設(shè)備所在 Wifi 網(wǎng)絡(luò)用戶名和密碼(將{}括號一起替換诽嘉,下同)蔚出;

~~~
#if(PHONE_AP_MODE == 1)
UsartPrintf(USART_DEBUG, "Tips: AT+CWJAP\r\n");
if(!NET_DEVICE_SendCmd("AT+CWJAP=\"*********\",\"********\"\r\n", "GOT IP", 400))
#endif
~~~
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è)備密鑰;
~~~
ONETNET_INFO onenet_info = {"", "*******************************", "",
"***************", "", "",
"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)建的物模型信息踏烙,依次增加屬性點標(biāo)識符以及對應(yīng)需上報的設(shè)備數(shù)據(jù)變量,如下所示历等;

~~~
DATA_STREAM data_stream[] = {
{"$OneNET_LBS", &data_lbs, TYPE_LBS, 0},
{"$OneNET_LBS_WIFI", &data_lbs_wifi, TYPE_LBS_WIFI, 0},
{"beep", &beep_info.beep_status[0], TYPE_BOOL, 1},
{"distance", &Sonic_Info.sonic_distance, TYPE_FLOAT, 1},
};
unsigned char data_stream_cnt = sizeof(data_stream) / sizeof(data_stream[0]);
~~~
D. 工程相對路徑\onenet\src\cmd_callback.c 約 51 行處讨惩,根據(jù)之前步驟中在OneNET 平臺 中所創(chuàng)建的物模型信息,增改此處的屬性點標(biāo)識符寒屯,對應(yīng)設(shè)置需寫入生效的設(shè)備數(shù)據(jù)處理函數(shù)名荐捻,并同時實現(xiàn)該函數(shù)的聲明以及具體函數(shù)代碼,完成寫入信息在本地設(shè)備上的實際生效邏輯浩螺;
~~~
CMD_CALLBACK_INFO cmd_callback_info[] = {
{"beep", CALLBACK_Beep},
{"int_test", CALLBACK_Test},
};
unsigned char cmd_cb_cnt = sizeof(cmd_callback_info) / sizeof(cmd_callback_info[0]);
~~~
以蜂鳴器寫入為例靴患,對應(yīng)修改該變量定義段內(nèi)某行形如“{“beep”,CALLBACK_Beep},”的信息要出,逗號前面的字符串標(biāo)識符為"beep"鸳君,逗號后的處理方法名為 CALLBACK_Beep。同時在該文件頭部患蹂,增加 void CALLBACK_Beep(int value);這樣的方法聲明:

~~~
void CALLBACK_Beep(int value);
void CALLBACK_Test(int value);
~~~
在文件適當(dāng)位置增加該方法的具體實現(xiàn)邏輯代碼:

~~~void CALLBACK_Beep(int value)
{
switch(value)
{
case 0:BEEP_Ctl(0,BEEP_OFF);? break;
case 1:BEEP_Ctl(0,BEEP_ON);? break;
default:? ? ? ? ? ? break;
}
}
~~~
步驟 5 編譯工程或颊,連接下載器燒寫程序到設(shè)備中
下載器的連接以及燒寫過程略砸紊。下載成功后設(shè)備重新加電,等待一定時間囱挑,進入下一步醉顽。
步驟 6 OneNET 平臺側(cè)查看設(shè)備狀態(tài)

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

###3.2實訓(xùn)步驟
3.2.1下發(fā)屬性在終端設(shè)備上執(zhí)行生效(設(shè)備調(diào)試)
步驟 1 設(shè)備端軟硬件環(huán)境準(zhǔn)備
沿用上一個實訓(xùn)任務(wù)中搭建的設(shè)備硬件系統(tǒng),以及繼續(xù)使用 Keil5 開發(fā)工具載入的項目三終端設(shè)備側(cè)代碼工程(該工程代碼在完成上一實訓(xùn)任務(wù)后平挑,已經(jīng)能夠接入 OneNET 平臺并上報屬性點數(shù)據(jù))游添。
將設(shè)備上電,等待OneNET 平臺 中顯示該設(shè)備處于上線狀態(tài)通熄,進入下一實訓(xùn)步驟唆涝。
步驟 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è)置的屬性(物模型中可寫的屬性功能點)饿幅。

先勾選一個功能點凡辱,然后設(shè)置下發(fā)的數(shù)值。(以蜂鳴器為例诫睬,這是一個 bool 型功能點煞茫,勾選后帕涌,可設(shè)置值為 true摄凡、false 兩個之一,本次任務(wù)選擇 true 作為下發(fā)數(shù)值)點擊頁面下方的“屬性設(shè)置”按鈕蚓曼,右側(cè)調(diào)試日志展示了下發(fā)的報文亲澡,設(shè)備端也同時將該數(shù)值執(zhí)行生效。

3.2.2下發(fā)屬性在終端設(shè)備上執(zhí)行生效(API 調(diào)試)
步驟 1 設(shè)備端軟硬件環(huán)境準(zhǔn)備
沿用上一個實訓(xùn)任務(wù)中搭建的設(shè)備硬件系統(tǒng)纫版,以及繼續(xù)使用 Keil5 開發(fā)工具載入的項目三終端設(shè)備側(cè)代碼工程(該工程代碼在完成上一實訓(xùn)任務(wù)后床绪,已經(jīng)能夠接入 OneNET 平臺并上報屬性點數(shù)據(jù))。將設(shè)備上電其弊,等待OneNET 平臺 中顯示該設(shè)備處于在線狀態(tài)癞己,進入下一實訓(xùn)步驟。
步驟 2 進入“API 調(diào)試”功能頁面
點擊“運維監(jiān)控”菜單下“API 調(diào)試”子菜單梭伐,并展開工作頁面左列顯示的大類調(diào)試類別中的“物模型使用”下拉列表痹雅,選擇“設(shè)置設(shè)備屬性”API項,如下圖所示:
在中間頁面展示的必填參數(shù)中糊识,填寫頁面中輸入必要的參數(shù)绩社,如下圖所示摔蓝,本次任務(wù)中,填入真實接入的設(shè)備“Controller”所對應(yīng)的相關(guān)信息:

其中的params內(nèi)容填寫要設(shè)置的屬性標(biāo)識符以及對應(yīng)設(shè)置值愉耙,本次任務(wù)中設(shè)置蜂鳴器狀態(tài)為true贮尉,文本示例參考如下:
~~~
{
? ? "beep": true
}
~~~

點擊下方的“執(zhí)行”按鈕,等待一會兒后朴沿,設(shè)備端執(zhí)行下發(fā)的屬性值(蜂鳴器響)猜谚,同時右側(cè)列頁面刷新顯示出調(diào)用結(jié)果,也就是整個API 模擬調(diào)用的報文交互結(jié)果赌渣。
3.2.3基于API 方式實現(xiàn)設(shè)備屬性下發(fā)
步驟 1 準(zhǔn)備 API 接口調(diào)試工具 Postman
推薦使用 Postman 工具龄毡,下文的操作均以該工具作為實訓(xùn)操作對象,其他支持 http 協(xié)議的工具也可以使用锡垄,可參考下文描述對應(yīng)調(diào)整參數(shù)填寫方式沦零。
步驟 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ù)信息屯仗。
也可以訪問OneNET 官網(wǎng)的“開發(fā)中心”,OneNET 平臺 專題搔谴,通過左側(cè)菜單定位到“設(shè)備屬性設(shè)置”的API接口使用文檔頁面詳細(xì)了解相關(guān)請求方式以及請求參數(shù)填寫說明魁袜。
以“設(shè)置設(shè)備屬性”為例,對應(yīng)文檔地址為:
https://open.iot.10086.cn/doc/v5/fuse/detail/1418該幫助頁面詳細(xì)說明了請求方式以及請求參數(shù)填寫說明敦第,如下圖所示:
步驟 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": "********",
? ? ? "device_name": "Controller",
? ? ? "params":
? ? ? ? ? ? {
? ? ? ? ? ? ? ? "beep": true
? ? ? ? ? ? }
}
~~~
3吴攒、確定請求的 Header 內(nèi)容,這里需要一個向 OneNET 平臺鑒權(quán)所需的必要信息字段砂蔽,就是“authorization ”信息洼怔,下面是該信息的一個生成示例,具體生成方式可參考其他實訓(xùn)任務(wù)環(huán)節(jié)中的操作步驟指導(dǎo)左驾,應(yīng)用側(cè)請求鑒權(quán)镣隶,res 參數(shù)須以“userid/ 用戶 ID”的格式填入,版本號須為“2022-05-01”诡右,字段具體內(nèi)容根據(jù)實際情況進行填入安岂。

步驟 4 發(fā)起 API 請求,查看結(jié)果
發(fā)起請求前確認(rèn)當(dāng)前真實設(shè)備已在線帆吻,以蜂鳴器屬性值(beep)下發(fā)為例域那,通過 postman 發(fā)起請求, 通過平臺鑒權(quán)后猜煮,該請求會下發(fā)到對應(yīng)的真實設(shè)備次员,打開蜂鳴器開關(guān),蜂鳴器會按照程序里預(yù)置的邏輯進行鳴響王带。

步驟 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)閉

3.2.4 基于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ī)則畔况。點擊頁面右上角“新建場景”,填寫場景名
稱慧库,這里我們需要一個“距離太近告警”的場景跷跪,點擊添加進入下一步。

步驟 3 編輯距離探測告警的聯(lián)動規(guī)則
1齐板、觸發(fā)方式:“設(shè)備觸發(fā)”
2吵瞻、選擇產(chǎn)品分組:“選擇產(chǎn)品”
3、選擇具體產(chǎn)品:選擇之前實訓(xù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”(雙引號不要填)。

其次點擊增加“執(zhí)行動作”滋觉,在“動作一”內(nèi)容中又厉,依次選擇:
1、選擇動作類型:“設(shè)備執(zhí)行”
2椎瘟、選擇產(chǎn)品分組:“選擇產(chǎn)品”
3覆致、選擇具體產(chǎn)品:選擇之前實訓(xùn)任務(wù)中創(chuàng)建的MQTT產(chǎn)品名稱4、選擇設(shè)備:選擇該產(chǎn)品下的Controller設(shè)備
5肺蔚、選擇功能:選擇該產(chǎn)品下的“蜂鳴器”
6煌妈、數(shù)據(jù)值選擇“1”。

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

步驟4再新增一個聯(lián)動規(guī)則,實現(xiàn)距離安全時取消告警
參考步驟3描述仇冯,再新增一個聯(lián)動規(guī)則之宿,名稱可以為“距離安全取消告警”。該規(guī)則的具體條件及動作與步驟3大部分相同苛坚,除了其中的條件部分膘掰,距離邏輯判斷修改為“>”秧耗,數(shù)值為“20”,執(zhí)行動作部分,蜂鳴器的數(shù)值改為“0”银还。最后點擊“確認(rèn)”按鈕熬词,并同樣將該條場景規(guī)則的啟用狀態(tài)修改為“開”惫搏,完? 成本次編輯內(nèi)容剥哑。

步驟5設(shè)備上線,觀察場景實現(xiàn)效果
檢查實驗箱目前搭建的硬件系統(tǒng)是“核心模塊”以及“Wifi模塊”、“蜂鳴器模塊”噪裕、“超聲波模塊”等模塊蹲盘,燒寫程序為項目三配套工程代碼,上電運行膳音。

##4.安全防護系統(tǒng)的可視化實現(xiàn)
###4.1實訓(xùn)步驟
4.1.1物聯(lián)網(wǎng)云平臺可視化組件配置運用
步驟 1 創(chuàng)建一個可視化項目
可視化能力是 OneNET 平臺重點打造的基于物聯(lián)網(wǎng)設(shè)備大數(shù)據(jù)的增值服務(wù)能力召衔,可以從平臺全部產(chǎn)品服務(wù)的菜單列表中,點擊”數(shù)據(jù)可視化 view“菜單后严蓖,點擊“立即試用”按鈕進入薄嫡。


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


步驟 2 增加數(shù)據(jù)源模板
點擊左側(cè)菜單“數(shù)據(jù)管理”下“數(shù)據(jù)源模板”子菜單,右側(cè)頁面中弧呐,點擊“創(chuàng)建數(shù)據(jù)源模板”闸迷,預(yù)先為界面展示距離的變化圖表建立一個數(shù)據(jù)來源模板

在展開的配置項中,先設(shè)定第一項的“數(shù)據(jù)類 ”
型為“物聯(lián)網(wǎng)平臺”俘枫,這時頁面會切換為配置從
“物聯(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ù)為例铸史,顯示了之前實訓(xùn)環(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ǔ)效果,如果是空白模板增蹭,則直接添加本次實訓(xùn)所需的控件:常規(guī)圖表中的平滑折線圖滴某,如下圖,添加后效果如圖所示滋迈。

雙擊添加的控件霎奢,右側(cè)出現(xiàn)對應(yīng)控件的“樣式”屬性修改 Tab 頁,根據(jù)項目看板展示效果所需饼灿,自行展開具體的屬性列表項幕侠,調(diào)整各項屬性,達(dá)到最優(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ù)源模板”Tab頁,展示目前所有的數(shù)據(jù)源模板墙基,可以看到一條在之前步驟中已經(jīng)創(chuàng)建好的記錄(名稱為distance)软族,點擊該記錄操作列中最右圖標(biāo):“以此模板創(chuàng)建數(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)均可),完成項目保存们豌。
###4.2拓展實訓(xùn)
4.2.1設(shè)備地理位置可視化展現(xiàn)
步驟1新增一個數(shù)據(jù)源模板
參考前述實訓(xùn)任務(wù)中數(shù)據(jù)源模板創(chuàng)建步驟涯捻,填入必要的信息,“名稱”項填入“l(fā)ocation”望迎,“數(shù)據(jù)流”項障癌,從現(xiàn)有設(shè)備中選擇“地理位置”屬性點。

步驟2為可視化視圖添加地理位置組件
編輯前述實訓(xùn)任務(wù)中創(chuàng)建的可視化視圖頁面辩尊,選擇控件列表中的“地圖”涛浙、“基礎(chǔ)地圖”控件放入頁面中。調(diào)整控件大小并擺放在整個視圖的合理位置摄欲。

步驟3設(shè)置地圖控件的數(shù)據(jù)來源
選中地圖控件轿亮,右側(cè)屬性頁切換到“數(shù)據(jù)”Tab頁。參考前述實訓(xùn)任務(wù)中數(shù)據(jù)源配置的方式胸墙,從已有的數(shù)據(jù)源模板“l(fā)ocation”創(chuàng)建出所需的數(shù)據(jù)源我注,如下圖形如location_XXXX。

點擊“數(shù)據(jù)處理結(jié)果”按鈕迟隅,查看彈出的窗口中展示的數(shù)據(jù)但骨,是否形如下圖所示励七,這里的數(shù)據(jù)就是之前實訓(xùn)任務(wù)中通過仿真方式模擬上報的設(shè)備經(jīng)緯度信息(圖例中的value對應(yīng)的值,有2個字段嗽冒,分別是經(jīng)度和維度)呀伙。關(guān)閉彈出窗口繼續(xù)下一步补履。

步驟4預(yù)覽并持續(xù)編輯可視化視圖添坊,保存完成項目
回到編輯視圖界面,可以看到地圖控件已顯示出定位經(jīng)緯度附近的地圖信息箫锤,并有紅色標(biāo)記標(biāo)識出定位點贬蛙,可以點擊右上角“預(yù)覽”按鈕,在全頁面狀態(tài)下查看整個可視化視圖的效果谚攒。同樣可反復(fù)切換到編輯頁面繼續(xù)優(yōu)化阳准,最終點擊保存完成項目。

##**四.實訓(xùn)結(jié)果**
###4.1近距離遮擋超聲波模塊的距離探測器探頭馏臭,稍等一定時間后野蝇,蜂鳴器模塊鳴叫,移開超聲波模塊遮擋括儒,再稍等一定時間后绕沈,蜂鳴器模塊停止鳴叫。



###4.2對智慧小區(qū)安全防護系統(tǒng)進行可視化展現(xiàn)帮寻。
