手摸手帶你完成智慧路燈構(gòu)建及避坑
【摘要】 彥祖你好,我是程序員龍哥,物聯(lián)網(wǎng)如今發(fā)展如火如荼,并且不管是政策還是市場都很鼓勵,所以咱們依托云平臺集成特有優(yōu)勢來手把手完成智慧路燈構(gòu)建,其中我也把踩過坑告訴你不要再踩,干貨很多其中插入涉及到應(yīng)該掌握的小知識,還不忘老爺們點個贊再走吧?
本文的主要內(nèi)容有:
一 先完成準(zhǔn)備任務(wù)
二 然后構(gòu)建并歸檔軟件包
三 實現(xiàn)消息通知服務(wù)(SMN)
四 云服務(wù)器部署初步上線
五 設(shè)備接入及模擬器連接
一 ????? 先完成準(zhǔn)備任務(wù)
前面登錄,賬號密碼哪些略過,直接下載要用到資源先,回到桌面雙擊“Xfce終端”打開Terminal,輸入以下命令下載保存“HubSimulator.jar”到自己的云桌面上面
cd Desktop/wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/HubSimulator.jar
然后輸以下命令保存“SmartStreetLight.zip”壓縮包
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/internet-wisdom-lamp/SmartStreetLight.zip
1.1新建項目
然后選擇“服務(wù)列表”->“開發(fā)與運維”->“項目管理”,進入軟件開發(fā)云,如下圖這樣
敲黑板?。翰贿^先知道什軟件開發(fā)平臺是啥?
它是集華為近30年研發(fā)實踐、前沿研發(fā)理念、先進研發(fā)工具為一體的一站式云端DevOps平臺,面向開發(fā)者提供的云服務(wù),即開即用,隨時隨地在云端進行項目管理、代碼托管、流水線、代碼檢查、編譯構(gòu)建、部署、測試、發(fā)布等,從而給開發(fā)者快速而又輕松地開啟云端開發(fā)之旅。

點擊“立即使用”按鈕,跳轉(zhuǎn)到DevCloud操作界面,它是企業(yè)級軟件協(xié)作一體化DevOps平臺,如下圖這樣

DevCloud操作界面如下圖:

點擊上圖紅圈標(biāo)注“新建項目”按鈕,開始創(chuàng)建項目,如下圖所示:

點擊標(biāo)注的“Scrum”區(qū)域,創(chuàng)建“Scrum”類型項目,參數(shù)如下:
項目設(shè)置模板:Scrum
項目名稱:QuickStart

參數(shù)填寫完畢,點擊確定按鈕即可完成項目創(chuàng)建。
1.2創(chuàng)建代碼倉庫
1.2.1新建倉庫
選擇導(dǎo)航欄“代碼 > 代碼托管”,進入管理頁面,展開右上角“普通新建”下拉菜單,點擊“按模板新建”

1.2.2選擇模板
在搜索框中輸入“IoT_Streetlight_New_Demo”,如下圖所示選擇“華北-北京四”,選中該模板,單擊“下一步”。

1.2.3然后填倉庫基本信息
基本信息參數(shù)如下:
①代碼倉庫名稱:自定義,如:IoT_Streetlight_New_Demo ②選擇gitignore:Java 其他選項保持默認(rèn)
單擊“確定”,完成倉庫創(chuàng)建。

創(chuàng)建成功后,可單擊倉庫名稱進入倉庫,查看倉庫文件
二 ? 然后構(gòu)建并歸檔軟件包
2.1新建編譯構(gòu)建任務(wù)
點擊導(dǎo)航欄“構(gòu)建&發(fā)布 > 編譯構(gòu)建”,進入管理頁面,點擊“新建任務(wù)”,參數(shù)如下
①源碼源:CodeHub;
②源碼倉庫:默認(rèn)選擇1.2步創(chuàng)建的代碼倉庫;
③分支:master;
點擊“下一步”進入“選擇構(gòu)建模板”

2.2選擇構(gòu)建模板
本項目是一個Java Maven項目,所以搜索選擇“Maven”模板, 單擊“確定”,進入“構(gòu)建步驟”頁面

2.3然后構(gòu)建步驟
使用系統(tǒng)模板中提供的兩個默認(rèn)步驟、以及每個步驟中的默認(rèn)配置,即可完成本例的構(gòu)建。點擊“新建并執(zhí)行”即可完成步驟的配置并啟動構(gòu)建任務(wù),如下圖所示

敲黑板:構(gòu)建需要2-3分鐘,請耐心等待...............
當(dāng)出現(xiàn)上面圖片表示的頁面時,表示構(gòu)建任務(wù)執(zhí)行成功。若執(zhí)行失敗,就查看日志信息排查問題,或通過編譯構(gòu)建-常見問題查找解決方法。
2.4驗證構(gòu)建任務(wù)執(zhí)行結(jié)果
點擊導(dǎo)航欄“發(fā)布”,進入“軟件發(fā)布庫”頁面,點擊進入“IoT_Streetlight...”下的“202…”日期命名的文件夾,即可看到生成的軟件包“huawei-0.0.1-SNAPSHOT.jar”

2.5創(chuàng)建主題并訂閱 SMN
在華為云控制臺,展開左側(cè)目錄,選擇【服務(wù)列表】->【管理與監(jiān)管】 -> 【消息通知服務(wù)SMN】,或在服務(wù)列表搜索框中搜索“SMN”。
什么是消息通知服務(wù)?

注意:若提示無權(quán)限,請確認(rèn)左上角區(qū)域是否在“華北-北京四”即可
在左側(cè)導(dǎo)航欄,選擇“主題管理 > 主題”,單擊“創(chuàng)建主題”,輸入“主題名稱”(自定義,例如:StreetLight)后單擊“確定”完成主題創(chuàng)建

三 ???? 實現(xiàn)消息通知服務(wù)(SMN)
主題創(chuàng)建成功后,系統(tǒng)會自動生成主題URN,主題URN是主題的唯一資源標(biāo)識,不可修改,后續(xù)步驟將會用到該URN

點擊主題“StreetLight”右側(cè)操作“添加訂閱”,可采用短信或者郵件任意一種協(xié)議完成訂閱。
“短信協(xié)議”參數(shù)如下:
①協(xié)議:短信
②訂閱終端:用戶手機號碼(需填寫您的手機號完成此步)
單擊“確定”后,請查看手機接收短信,點擊短信中的鏈接進行訂閱確認(rèn)

“郵件協(xié)議”參數(shù)如下:
①協(xié)議:郵件
②訂閱終端:用戶郵箱地址(需填寫您的郵箱完成此步)
單擊“確定”后,請查收郵件,點擊郵件中的鏈接進行訂閱確認(rèn)

四 ???? 云服務(wù)器部署初步上線
4.1網(wǎng)絡(luò)配置
點擊“前往控制臺創(chuàng)建”,就能跳轉(zhuǎn)到虛擬私有云控制臺頁面

在虛擬私有云控制臺,點擊“創(chuàng)建虛擬私有云”,區(qū)域選擇“華北-北京四”,名稱自定義(如:vpc-iot),默認(rèn)子網(wǎng)名稱自定義(如:subnet-iot),其他參數(shù)均可默認(rèn),點擊“立即創(chuàng)建”完成后,即可返回網(wǎng)絡(luò)配置頁面;

返回網(wǎng)絡(luò)配置頁面,刷新后,選擇剛創(chuàng)建的虛擬私有云VPC(如:vpc-iot)和子網(wǎng)(如:subnet-iot),自動分配IP地址,如下圖所示

②擴展網(wǎng)卡:默認(rèn)配置
③安全組:默認(rèn)配置
④彈性公網(wǎng)IP:現(xiàn)在購買
⑤線路:默認(rèn)配置
⑥公網(wǎng)帶寬:按帶寬計費
⑦帶寬大小:1Mbit/s

4.2 高級配置
完成網(wǎng)絡(luò)配置后單擊“下一步:高級配置”,參數(shù)如下:
①云服務(wù)器名稱:自定義,如:ecs-iot
②登錄憑證:密碼
③密碼/確認(rèn)密碼:自定義,如:SM1$b9Zs1#
⑥其他參數(shù):默認(rèn)配置

完成高級配置后點擊“下一步:確認(rèn)配置”,閱讀并勾選同意協(xié)議,單擊“立即購買”后,點擊返回云服務(wù)器列表。當(dāng)狀態(tài)為“運行中”表示已創(chuàng)建完成;

4.3 主機授信配置
創(chuàng)建的彈性云服務(wù)器ECS的“彈性公網(wǎng)IP”信息將在后續(xù)步驟4.1添加授信主機的配置中用到;

4.4 添加安全組入方向規(guī)則
點擊新創(chuàng)建的彈性云服務(wù)器ECS的名稱進入詳情頁,選擇“安全組”頁簽,點擊Sys-WebServer安全組右側(cè)的【配置規(guī)則】進入規(guī)則配置頁面。

在新打開的安全組控制界面,選擇“入方向規(guī)則”,單擊“添加規(guī)則”,如下圖所示:
① 優(yōu)先級:1
② 策略:允許
③ 協(xié)議端口:8080;
④ IP地址設(shè)為0.0.0.0/0。
點擊“確定”。

敲黑板:SSH協(xié)議端口(22)的入方向TCP協(xié)議默認(rèn)開放,無需修改。將智慧路燈應(yīng)用端口(8080)的入方向放開限制,用于后續(xù)訪問智慧路燈應(yīng)用。出方向規(guī)則默認(rèn)不做限制,無需修改;
4.5 配置系統(tǒng)防火墻規(guī)則
返回實驗桌面雙擊“Xfce終端”打開Terminal,輸入以下命令,并按照操作說明執(zhí)行,登錄云服務(wù)器:
操作說明:
①使用彈性云服務(wù)器ECS的彈性公網(wǎng)IP替換命令中的[EIP]
說明:云服務(wù)器的彈性公網(wǎng)IP地址可以通過點擊“控制臺”->“服務(wù)列表”->“計算”->“彈性云服務(wù)器ECS”進入服務(wù)器列表,進行查看并復(fù)制

ssh root@EIP
②接受秘鑰輸入“yes”,回車;
③輸入密碼:SM1$b9Zs1#(輸入密碼時,命令行窗口不會顯示密碼,輸完之后直接鍵入回車)。成功登錄云服務(wù)器之后如下圖所示

④執(zhí)行sudo ufw enable開啟ufw服務(wù),輸入“y”確認(rèn)。
sudo ufw enable
⑤執(zhí)行sudo ufw allow 22/tcp啟用22端口。
sudo ufw allow 22/tcp
⑥執(zhí)行sudo ufw allow 8080/tcp啟用8080端口。
sudo ufw allow 8080/tcp
4.6 部署智慧路燈應(yīng)用
添加授信主機
“智慧路燈”是一個Web項目,需要部署到服務(wù)器上才可以運行,本例采用部署服務(wù)器是華為云彈性云服務(wù)器
DevCloud在使用彈性云服務(wù)器之前需要先對其授信
回到軟件開發(fā)平臺DevCloud,這個開頭我介紹過 若不知道到開頭熟悉先,點擊已創(chuàng)建的項目,如QuickStart,如下圖所示
單擊導(dǎo)航欄“更多 > 設(shè)置 > 通用設(shè)置”,選擇左側(cè)欄“主機組管理”,然后點擊“新建主機組”,參數(shù)如下:
①主機組名:自定義,如:iot
②操作系統(tǒng):Linux
點擊“保存”完成主機組的創(chuàng)建,并進入該主機組。
在創(chuàng)建的主機組內(nèi),點擊“添加主機”,參數(shù)如下:
①主機名:自定義,可與創(chuàng)建的ECS名稱保持一致,如:ecs-iot
②IP:創(chuàng)建彈性云服務(wù)器ECS的彈性公網(wǎng)IP(見步驟3.2)
③認(rèn)證方式:密碼
④用戶名:root
⑤密碼:填創(chuàng)建彈性云服務(wù)器ECS的用戶密碼;如:SM1$b9Zs1#
⑥ssh端口:22
勾選閱讀并同意聲明,點擊“添加”完成主機的添加。當(dāng)主機連通性驗證顯示“驗證成功”時,說明主機成功添加
新建部署任務(wù)
點擊導(dǎo)航欄“構(gòu)建&發(fā)布 > 部署”進入,然后點擊“新建任務(wù)”,輸入任務(wù)名稱(可使用默認(rèn)值),單擊“下一步”進入“選擇部署模板”。
選擇模板“SpringBoot應(yīng)用部署”,單擊“下一步”,進入“部署步驟”頁面
4.3配置部署步驟并執(zhí)行
SpringBoot應(yīng)用部署模板默認(rèn)包含以下步驟:安裝JDK、停止SpringBoot服務(wù)、選擇部署來源、啟動SpringBoot服務(wù)、URL健康測試
4.3.1刪除“停止SpringBoot服務(wù)”和“URL健康測試”;
4.3.2選中“安裝JDK”,主機組:選擇添加授信主機是創(chuàng)建的主機組(如:iot),彈框提示點擊“確定”,jdk版本:openjdk-1.8.0;
敲黑板?。翰渴鹗≡趺崔k?
答案:請根據(jù)實驗步驟逐步檢查: 1、主機是否添加成功并完成了連通性驗證 2、所有步驟的參數(shù)是否配置正確,手動輸入的參數(shù)是否多了個空格,少了個符號等等。 3、不用的步驟和參數(shù)是否都已刪除。
選中“選擇部署來源”,參數(shù)如下:
①選擇源類型:軟件包;
②選擇軟件包:點擊右側(cè)“…”,選擇構(gòu)建包,路徑如下圖所示;
③下載到主機的部署目錄:按需填寫,如/usr/local
選中“啟動SpringBoot服務(wù)”,參數(shù)如下:
①服務(wù)操作類型:保持默認(rèn)值
②服務(wù)對應(yīng)的絕對路徑:由“下載到主機的部署目錄”和軟件包包名組成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar
③組件監(jiān)控:去掉勾選
切換到“參數(shù)設(shè)置”頁簽,逐一刪除全部參數(shù)
點擊“保存并執(zhí)行”,完成部署任務(wù)的配置,并執(zhí)行部署任務(wù);
頁面顯示“部署成功”,表示任務(wù)執(zhí)行完畢。若任務(wù)執(zhí)行失敗,可通過頁面中的原因提示及鏈接來排查解決;
五 ???? 設(shè)備接入及模擬器連接
5.1創(chuàng)建產(chǎn)品
在華為云控制臺,展開左側(cè)導(dǎo)航,選擇“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,如下圖所示
敲黑板?。涸O(shè)備接入服務(wù)是什么?
它是華為云的物聯(lián)網(wǎng)平臺,提供海量設(shè)備連接上云、設(shè)備和云端雙向消息通信、批量設(shè)備管理、遠程控制和監(jiān)控、OTA升級、設(shè)備聯(lián)動規(guī)則等能力,并可將設(shè)備數(shù)據(jù)靈活流轉(zhuǎn)到華為云其他服務(wù)。物聯(lián)網(wǎng)平臺中,某一類具有相同能力或特征的設(shè)備的合集被稱為一款產(chǎn)品。您可為產(chǎn)品定義產(chǎn)品模型,產(chǎn)品模型用于描述設(shè)備具備的能力和特性。定義產(chǎn)品模型,即在物聯(lián)網(wǎng)平臺構(gòu)建一款設(shè)備的抽象模型,使平臺理解該款設(shè)備支持的服務(wù)、屬性、命令等信息;
在左側(cè)欄中選擇“產(chǎn)品”,點擊“創(chuàng)建產(chǎn)品”,參數(shù)如下
①所屬資源空間:Default_APP_Sandbox_user_iot
②產(chǎn)品名稱:自定義,如:StreetLight
③協(xié)議類型:MQTT
④數(shù)據(jù)格式:JSON
⑤廠商名稱:自定義,如:Huawei_IoT
⑥設(shè)備類型:自定義,如:StreetLight
填寫完成,點擊“立即創(chuàng)建”,產(chǎn)品創(chuàng)建成功,請記錄“產(chǎn)品ID”信息,并查看“詳情”
5.2 上傳模型文件
點擊創(chuàng)建的產(chǎn)品進入詳情,然后點擊“上傳模型文件”,選擇SmartStreetLight.zip文件,點擊“確認(rèn)”完成上傳
5.3 訪問智慧路燈Web界面
新建瀏覽器標(biāo)簽頁,輸入http://EIP:8080/index.html(使用步驟3.2中彈性云服務(wù)器的彈性公網(wǎng)IP替換地址中的“EIP”),訪問智慧路燈Web頁面。
6.2參數(shù)設(shè)置
在彈出的“參數(shù)設(shè)置”窗口,參數(shù)填寫如下:
①數(shù)據(jù)來源:參數(shù)設(shè)置頁面下拉框選擇“訂閱推送”;
②本機IP:“控制臺”->“服務(wù)列表”->“計算”->“彈性云服務(wù)器ECS”進入服務(wù)器列表,進行查看并復(fù)制彈性公網(wǎng)IP;
敲黑板?。簽槭裁匆渲眠@些參數(shù)?
智慧路燈應(yīng)用通過API方式和華為云對接,注冊設(shè)備、獲取設(shè)備數(shù)據(jù)和下發(fā)命令,這些參數(shù)在調(diào)用API時才用;
③主題URN:“控制臺”->“服務(wù)列表”->“管理與監(jiān)管”->“消息通知服務(wù)SMN”進入主題列表,進行查看并復(fù)制主題URN
④APPID:“控制臺”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“資源空間”,復(fù)制獲取產(chǎn)品所需的“APPID”
⑤賬號名:系統(tǒng)為您分配的華為云實驗賬號名
⑥IAM用戶名:系統(tǒng)為您分配的華為云實驗用戶名
⑦IAM用戶密碼:系統(tǒng)為您分配的華為云實驗密碼
⑧項目ID:控制臺在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復(fù)制獲取所屬區(qū)域為“華北-北京四”的項目ID。
⑨產(chǎn)品ID:“控制臺”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“產(chǎn)品”,復(fù)制獲取產(chǎn)品所需的“產(chǎn)品ID”。
填寫完成后點擊“確定”,彈窗提示如下,表示參數(shù)設(shè)置成功
5.4 注冊設(shè)備
輸入設(shè)備標(biāo)識(自定義,如123456789f),點擊“注冊設(shè)備”
敲黑板?。簭棿疤崾救缦拢硎咀栽O(shè)備成功。請記錄“設(shè)備Id”和“密鑰”信息,用于后續(xù)驗證,請記錄設(shè)備id以及密鑰,便于后期使用!
設(shè)備注冊成功后是“未激活”狀態(tài),請選擇“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入服務(wù)”,在左側(cè)欄選擇“設(shè)備 > 所有設(shè)備”,點擊設(shè)備標(biāo)識碼進入,查看設(shè)備Id,或修改密鑰。
結(jié)果驗證(設(shè)備屬性上報/訂閱/設(shè)備命令下發(fā));
5.5 模擬器與平臺建立連接
7.1.1打開MQTT設(shè)備模擬器
在實驗桌面雙擊“Xfce終端”打開Terminal,執(zhí)行以下命令打開設(shè)備接入模擬器(HubSimulator.jar),然后切換到MQTT設(shè)備模擬器頁簽
敲黑板?。篐ubSimulator.jar是什么工具?
HubSimulator.jar是設(shè)備接入服務(wù)提供的多功能模擬器,本實驗中我們用它來模擬MQTT設(shè)備接入;連接失敗怎辦呢,請檢查服務(wù)IP(域名),設(shè)備ID和設(shè)備秘鑰的填寫是否都正確,有無多余的空格基本就可以解決了哈;
cd Desktop//usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar
5.6 建立連接
在MQTT設(shè)備模擬器頁簽下,填寫參數(shù)如下:
①服務(wù)IP:進入“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)欄選擇“總覽”,點擊“平臺接入地址”
復(fù)制使用MQTT/MQTTS接入信息的域名。
②設(shè)備ID:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的設(shè)備Id
③設(shè)備密鑰:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的密鑰
配置好以上參數(shù)后,點擊“建立連接”按鈕。
建立連接成功后,右側(cè)日志顯示MQTT服務(wù)連接成功,如下圖所示:
若無法建立連接,請打開“命令提示符”窗口,輸入“ping 服務(wù)IP”查看您的主機是否能和華為云物聯(lián)網(wǎng)平臺正常通信,若無法正常通信,請更換主機的網(wǎng)絡(luò)環(huán)境
5.7 查看設(shè)備狀態(tài)
回到物聯(lián)網(wǎng)所有設(shè)備列表( “服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備”→“所有設(shè)備”),設(shè)備狀態(tài)變更為“在線”,如下圖所示
5.8 模擬器設(shè)備屬性上報
7.2.1模擬器發(fā)送消息,上報設(shè)備屬性
①在模擬器窗口中的Topic欄中輸入以下代碼:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設(shè)備ID
敲黑板啊:應(yīng)用界面不顯示上報的數(shù)據(jù)怎么辦?
首先檢查上報數(shù)據(jù)的Topic填寫是否正確,然后檢查上報數(shù)據(jù)是否符合JSON格式。如果以上兩點都檢查沒問題,再檢查之前參數(shù)設(shè)置的是否都正確
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強度可自定義,燈狀態(tài)建議為OFF。
在模擬器窗口中的消息編輯欄中輸入以下代碼:
{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}
發(fā)送消息成功后,右側(cè)日志顯示信息推送成功(圖片僅為示意,請以你上報實際數(shù)據(jù)為準(zhǔn)哈)
5.9 查看應(yīng)用界面變化
返回智慧路燈Web界面,此時顯示“環(huán)境亮度”為200LUX,“燈狀態(tài)”為關(guān)。
敲黑板啦:模擬器與Web頁面之間會有短暫延遲,不用刷新頁面,幾秒鐘后可發(fā)現(xiàn)頁面會隨之變化!
5.10 模擬器訂閱Topic
切換到“訂閱Topic”頁簽,并在Topic欄中輸入以下代碼:
$oc/devices/{device_id}/sys/commands/#,其中的{device_id}需要替換成實際設(shè)備ID。
輸入完畢后,點擊“訂閱”按鈕可完成訂閱。
$oc/devices/{device_id}/sys/commands/#
訂閱成功后,右側(cè)日志顯示訂閱Topic成功
5.11 平臺下發(fā)設(shè)備命令/模擬器響應(yīng)
7.4.1終端聯(lián)控模式配置
返回智慧路燈Web界面,“路燈控制”選擇“終端聯(lián)控模式”,開關(guān)選擇“開”,單擊“設(shè)置”,然后點擊”確認(rèn)”。
①若當(dāng)前燈狀態(tài)為“關(guān)”,開關(guān)選擇為“開”,服務(wù)后臺會實時下發(fā)一條開燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待。
②若當(dāng)前燈狀態(tài)為“關(guān)”,開關(guān)選擇為“關(guān)”,不會觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功;
即“燈狀態(tài)”與“開關(guān)選擇”一致時,不會觸發(fā)命令下發(fā);“燈狀態(tài)”與“開關(guān)選擇”不一致時,會觸發(fā)實時命令下發(fā);
收不到命令怎么辦?
5.12 命令接收
因為當(dāng)前“燈狀態(tài)”為關(guān),“開關(guān)選擇”為開,查看模擬器日志區(qū)域,會收到一條開燈命令。(payload的值經(jīng)過base64加密,解密后即可得到命令內(nèi)容)
5.13 模擬器發(fā)送消息,上報變更后的設(shè)備屬性
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設(shè)備ID。
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強度可自定義,燈狀態(tài)建議為ON。
{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}
5.14 查看應(yīng)用界面變化
如下圖所示,應(yīng)該顯示“環(huán)境亮度”為110LUX,“燈狀態(tài)”為開。
5.15 短信/郵件通知
在模擬器上單擊“斷開連接”后,重復(fù)7.4.1,“路燈控制”選擇“終端聯(lián)控模式”,開關(guān)選擇“關(guān)”,單擊“設(shè)置”。
因為燈狀態(tài)為“開”,開關(guān)選擇為“關(guān)”,服務(wù)后臺會實時下發(fā)一條關(guān)燈命令;而設(shè)備處于離線狀態(tài),導(dǎo)致命令下發(fā)失敗
此時,系統(tǒng)會發(fā)送短信/郵件通知告知訂閱用戶命令下發(fā)失??;通知內(nèi)容為命令下發(fā)失敗的錯誤信息
通知示例:【華為云】錯誤信息:{"error_code":"IOTDA.014016","error_msg":"Operation not allowed. The device is not online."}
設(shè)備變更為“離線”狀態(tài),請登錄華為云控制臺,選擇“物聯(lián)網(wǎng) > 設(shè)備接入服務(wù)”,在左側(cè)導(dǎo)航欄,選擇“設(shè)備 > 所有設(shè)備”,根據(jù)設(shè)備標(biāo)識碼查看設(shè)備狀態(tài)
5.16(可選)自動調(diào)光模式
自動調(diào)光模式參數(shù)配置
在模擬器上單擊“建立連接”,將設(shè)備重新上線。返回智慧路燈Web界面,“路燈控制”選擇“自動調(diào)光模式”,設(shè)置亮度閾值為100
5.17 模擬器接收反應(yīng)
因為當(dāng)前“環(huán)境亮度”為110LUX,“燈狀態(tài)”為開,查看模擬器日志區(qū)域,應(yīng)該會收到關(guān)燈命令。
①若當(dāng)前“環(huán)境亮度”大于“亮度閾值”,且“燈狀態(tài)”為“開”,服務(wù)后臺會實時下發(fā)一條關(guān)燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待。
②若當(dāng)前“環(huán)境亮度”小于“亮度閾值”,且“燈狀態(tài)”為“開”,不會觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功
即“環(huán)境亮度”小于“亮度閾值”,且“燈狀態(tài)”為“開”或“環(huán)境亮度”大于“亮度閾值”,且“燈狀態(tài)”為“關(guān)”時,不會觸發(fā)命令下發(fā);反之,則會觸發(fā)實時命令下發(fā)
模擬器發(fā)送消息,上報變更后的設(shè)備屬性。
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設(shè)備ID
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強度<100,燈狀態(tài)為OFF
{"services":[{"service_id":"Sensor","properties":{"luminance":"80","light_state":"OFF"}}]}
5.18 查看Web界面
返回智慧路燈Web界面,單擊“設(shè)置”,查看模擬器日志區(qū)域,會收到一條開燈命令
5.19(可選)分段定時模式
分段定時模式參數(shù)配置
返回智慧路燈Web界面,“路燈控制”選擇“分段定時模式”,設(shè)置關(guān)燈時間段為06:30-18:30。
敲黑板啦:“關(guān)燈時間段”和“亮度曲線”橫軸時間均為彈性云服務(wù)器系統(tǒng)時間,即為GMT+0:00時區(qū)
結(jié)果判定,因為當(dāng)前“燈狀態(tài)”為關(guān),需根據(jù)彈性云服務(wù)器系統(tǒng)時間(參考“亮度曲線”橫軸時間)判斷結(jié)果;
①若系統(tǒng)時間位于“關(guān)燈時間段”之外,且“燈狀態(tài)”為“關(guān)”,服務(wù)后臺會實時下發(fā)一條開燈命令,彈窗提示會有5-10秒左右延遲,請耐心等待
②若系統(tǒng)時間位于“關(guān)燈時間段”之內(nèi),且“燈狀態(tài)”為“關(guān)”,不會觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功啦開心
5.20 (可選)如何正確刪除應(yīng)用服務(wù)
首先刪彈性云服務(wù)器 ECS
在華為云控制臺,選擇“服務(wù)列表”-> “計算”-> “彈性云服務(wù)器 ECS”進入,勾選待刪除ECS服務(wù)器,如ecs-iot,選擇“更多 > 刪除”,在彈窗中請勾選刪除彈性公網(wǎng)IP和數(shù)據(jù)盤后,點擊“是”完成刪除
然后刪設(shè)備接入服務(wù) IoTDA
在華為云控制臺,選擇“服務(wù)列表”->“物聯(lián)網(wǎng)”->“設(shè)備”→“所有設(shè)備”進入所有設(shè)備列表,根據(jù)設(shè)備標(biāo)識碼刪除設(shè)備,如123456789f。然后在左側(cè)欄選擇“產(chǎn)品”,刪除產(chǎn)品,如StreetLight
最后刪桌面下載的資源包
桌面雙擊“Xfce終端”打開Terminal,輸入以下命令下載刪除“HubSimulator.jar”文件。
cd Desktop/rm HubSimulator.jar
接下來刪除“SmartStreetLight.zip”壓縮包。命令如下:
rm SmartStreetLight.zip
轉(zhuǎn)載請在文章開頭和結(jié)尾顯眼處標(biāo)注:作者、出處和鏈接。不按規(guī)范轉(zhuǎn)載侵權(quán)必究。
未經(jīng)授權(quán)嚴(yán)禁轉(zhuǎn)載,授權(quán)事宜請聯(lián)系作者本人,侵權(quán)必究。
本文禁止轉(zhuǎn)載,侵權(quán)必究。
授權(quán)事宜請至數(shù)英微信公眾號(ID: digitaling) 后臺授權(quán),侵權(quán)必究。



評論
評論
推薦評論
暫無評論哦,快來評論一下吧!
全部評論(0條)