手摸手帶你完成智慧路燈構(gòu)建及避坑
【摘要】 彥祖你好,我是程序員龍哥,物聯(lián)網(wǎng)如今發(fā)展如火如荼,并且不管是政策還是市場都很鼓勵(lì),所以咱們依托云平臺(tái)集成特有優(yōu)勢來手把手完成智慧路燈構(gòu)建,其中我也把踩過坑告訴你不要再踩,干貨很多其中插入涉及到應(yīng)該掌握的小知識(shí),還不忘老爺們點(diǎn)個(gè)贊再走吧?
本文的主要內(nèi)容有:
一 先完成準(zhǔn)備任務(wù)
二 然后構(gòu)建并歸檔軟件包
三 實(shí)現(xiàn)消息通知服務(wù)(SMN)
四 云服務(wù)器部署初步上線
五 設(shè)備接入及模擬器連接
一 ????? 先完成準(zhǔn)備任務(wù)
前面登錄,賬號(hào)密碼哪些略過,直接下載要用到資源先,回到桌面雙擊“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新建項(xiàng)目
然后選擇“服務(wù)列表”->“開發(fā)與運(yùn)維”->“項(xiàng)目管理”,進(jìn)入軟件開發(fā)云,如下圖這樣
敲黑板啊:不過先知道什軟件開發(fā)平臺(tái)是啥?
它是集華為近30年研發(fā)實(shí)踐、前沿研發(fā)理念、先進(jìn)研發(fā)工具為一體的一站式云端DevOps平臺(tái),面向開發(fā)者提供的云服務(wù),即開即用,隨時(shí)隨地在云端進(jìn)行項(xiàng)目管理、代碼托管、流水線、代碼檢查、編譯構(gòu)建、部署、測試、發(fā)布等,從而給開發(fā)者快速而又輕松地開啟云端開發(fā)之旅。
點(diǎn)擊“立即使用”按鈕,跳轉(zhuǎn)到DevCloud操作界面,它是企業(yè)級(jí)軟件協(xié)作一體化DevOps平臺(tái),如下圖這樣
DevCloud操作界面如下圖:
點(diǎn)擊上圖紅圈標(biāo)注“新建項(xiàng)目”按鈕,開始創(chuàng)建項(xiàng)目,如下圖所示:
點(diǎn)擊標(biāo)注的“Scrum”區(qū)域,創(chuàng)建“Scrum”類型項(xiàng)目,參數(shù)如下:
項(xiàng)目設(shè)置模板:Scrum
項(xiàng)目名稱:QuickStart
參數(shù)填寫完畢,點(diǎn)擊確定按鈕即可完成項(xiàng)目創(chuàng)建。
1.2創(chuàng)建代碼倉庫
1.2.1新建倉庫
選擇導(dǎo)航欄“代碼 > 代碼托管”,進(jìn)入管理頁面,展開右上角“普通新建”下拉菜單,點(diǎn)擊“按模板新建”
1.2.2選擇模板
在搜索框中輸入“IoT_Streetlight_New_Demo”,如下圖所示選擇“華北-北京四”,選中該模板,單擊“下一步”。
1.2.3然后填倉庫基本信息
基本信息參數(shù)如下:
①代碼倉庫名稱:自定義,如:IoT_Streetlight_New_Demo ②選擇gitignore:Java 其他選項(xiàng)保持默認(rèn)
單擊“確定”,完成倉庫創(chuàng)建。
創(chuàng)建成功后,可單擊倉庫名稱進(jìn)入倉庫,查看倉庫文件
二 ? 然后構(gòu)建并歸檔軟件包
2.1新建編譯構(gòu)建任務(wù)
點(diǎn)擊導(dǎo)航欄“構(gòu)建&發(fā)布 > 編譯構(gòu)建”,進(jìn)入管理頁面,點(diǎn)擊“新建任務(wù)”,參數(shù)如下
①源碼源:CodeHub;
②源碼倉庫:默認(rèn)選擇1.2步創(chuàng)建的代碼倉庫;
③分支:master;
點(diǎn)擊“下一步”進(jìn)入“選擇構(gòu)建模板”
2.2選擇構(gòu)建模板
本項(xiàng)目是一個(gè)Java Maven項(xiàng)目,所以搜索選擇“Maven”模板, 單擊“確定”,進(jìn)入“構(gòu)建步驟”頁面
2.3然后構(gòu)建步驟
使用系統(tǒng)模板中提供的兩個(gè)默認(rèn)步驟、以及每個(gè)步驟中的默認(rèn)配置,即可完成本例的構(gòu)建。點(diǎn)擊“新建并執(zhí)行”即可完成步驟的配置并啟動(dòng)構(gòu)建任務(wù),如下圖所示
敲黑板:構(gòu)建需要2-3分鐘,請耐心等待...............
當(dāng)出現(xiàn)上面圖片表示的頁面時(shí),表示構(gòu)建任務(wù)執(zhí)行成功。若執(zhí)行失敗,就查看日志信息排查問題,或通過編譯構(gòu)建-常見問題查找解決方法。
2.4驗(yàn)證構(gòu)建任務(wù)執(zhí)行結(jié)果
點(diǎn)擊導(dǎo)航欄“發(fā)布”,進(jìn)入“軟件發(fā)布庫”頁面,點(diǎn)擊進(jìn)入“IoT_Streetlight...”下的“202…”日期命名的文件夾,即可看到生成的軟件包“huawei-0.0.1-SNAPSHOT.jar”
2.5創(chuàng)建主題并訂閱 SMN
在華為云控制臺(tái),展開左側(cè)目錄,選擇【服務(wù)列表】->【管理與監(jiān)管】 -> 【消息通知服務(wù)SMN】,或在服務(wù)列表搜索框中搜索“SMN”。
什么是消息通知服務(wù)?
注意:若提示無權(quán)限,請確認(rèn)左上角區(qū)域是否在“華北-北京四”即可
在左側(cè)導(dǎo)航欄,選擇“主題管理 > 主題”,單擊“創(chuàng)建主題”,輸入“主題名稱”(自定義,例如:StreetLight)后單擊“確定”完成主題創(chuàng)建
三 ???? 實(shí)現(xiàn)消息通知服務(wù)(SMN)
主題創(chuàng)建成功后,系統(tǒng)會(huì)自動(dòng)生成主題URN,主題URN是主題的唯一資源標(biāo)識(shí),不可修改,后續(xù)步驟將會(huì)用到該URN
點(diǎn)擊主題“StreetLight”右側(cè)操作“添加訂閱”,可采用短信或者郵件任意一種協(xié)議完成訂閱。
“短信協(xié)議”參數(shù)如下:
①協(xié)議:短信
②訂閱終端:用戶手機(jī)號(hào)碼(需填寫您的手機(jī)號(hào)完成此步)
單擊“確定”后,請查看手機(jī)接收短信,點(diǎn)擊短信中的鏈接進(jìn)行訂閱確認(rèn)
“郵件協(xié)議”參數(shù)如下:
①協(xié)議:郵件
②訂閱終端:用戶郵箱地址(需填寫您的郵箱完成此步)
單擊“確定”后,請查收郵件,點(diǎn)擊郵件中的鏈接進(jìn)行訂閱確認(rèn)
四 ???? 云服務(wù)器部署初步上線
4.1網(wǎng)絡(luò)配置
點(diǎn)擊“前往控制臺(tái)創(chuàng)建”,就能跳轉(zhuǎn)到虛擬私有云控制臺(tái)頁面
在虛擬私有云控制臺(tái),點(diǎn)擊“創(chuàng)建虛擬私有云”,區(qū)域選擇“華北-北京四”,名稱自定義(如:vpc-iot),默認(rèn)子網(wǎng)名稱自定義(如:subnet-iot),其他參數(shù)均可默認(rèn),點(diǎn)擊“立即創(chuàng)建”完成后,即可返回網(wǎng)絡(luò)配置頁面;
返回網(wǎng)絡(luò)配置頁面,刷新后,選擇剛創(chuàng)建的虛擬私有云VPC(如:vpc-iot)和子網(wǎng)(如:subnet-iot),自動(dòng)分配IP地址,如下圖所示
②擴(kuò)展網(wǎng)卡:默認(rèn)配置
③安全組:默認(rèn)配置
④彈性公網(wǎng)IP:現(xiàn)在購買
⑤線路:默認(rèn)配置
⑥公網(wǎng)帶寬:按帶寬計(jì)費(fèi)
⑦帶寬大小:1Mbit/s
4.2 高級(jí)配置
完成網(wǎng)絡(luò)配置后單擊“下一步:高級(jí)配置”,參數(shù)如下:
①云服務(wù)器名稱:自定義,如:ecs-iot
②登錄憑證:密碼
③密碼/確認(rèn)密碼:自定義,如:SM1$b9Zs1#
⑥其他參數(shù):默認(rèn)配置
完成高級(jí)配置后點(diǎn)擊“下一步:確認(rèn)配置”,閱讀并勾選同意協(xié)議,單擊“立即購買”后,點(diǎn)擊返回云服務(wù)器列表。當(dāng)狀態(tài)為“運(yùn)行中”表示已創(chuàng)建完成;
4.3 主機(jī)授信配置
創(chuàng)建的彈性云服務(wù)器ECS的“彈性公網(wǎng)IP”信息將在后續(xù)步驟4.1添加授信主機(jī)的配置中用到;
4.4 添加安全組入方向規(guī)則
點(diǎn)擊新創(chuàng)建的彈性云服務(wù)器ECS的名稱進(jìn)入詳情頁,選擇“安全組”頁簽,點(diǎn)擊Sys-WebServer安全組右側(cè)的【配置規(guī)則】進(jìn)入規(guī)則配置頁面。
在新打開的安全組控制界面,選擇“入方向規(guī)則”,單擊“添加規(guī)則”,如下圖所示:
① 優(yōu)先級(jí):1
② 策略:允許
③ 協(xié)議端口:8080;
④ IP地址設(shè)為0.0.0.0/0。
點(diǎn)擊“確定”。
敲黑板:SSH協(xié)議端口(22)的入方向TCP協(xié)議默認(rèn)開放,無需修改。將智慧路燈應(yīng)用端口(8080)的入方向放開限制,用于后續(xù)訪問智慧路燈應(yīng)用。出方向規(guī)則默認(rèn)不做限制,無需修改;
4.5 配置系統(tǒng)防火墻規(guī)則
返回實(shí)驗(yàn)桌面雙擊“Xfce終端”打開Terminal,輸入以下命令,并按照操作說明執(zhí)行,登錄云服務(wù)器:
操作說明:
①使用彈性云服務(wù)器ECS的彈性公網(wǎng)IP替換命令中的[EIP]
說明:云服務(wù)器的彈性公網(wǎng)IP地址可以通過點(diǎn)擊“控制臺(tái)”->“服務(wù)列表”->“計(jì)算”->“彈性云服務(wù)器ECS”進(jìn)入服務(wù)器列表,進(jìn)行查看并復(fù)制
ssh root@EIP
②接受秘鑰輸入“yes”,回車;
③輸入密碼:SM1$b9Zs1#(輸入密碼時(shí),命令行窗口不會(huì)顯示密碼,輸完之后直接鍵入回車)。成功登錄云服務(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)用
添加授信主機(jī)
“智慧路燈”是一個(gè)Web項(xiàng)目,需要部署到服務(wù)器上才可以運(yùn)行,本例采用部署服務(wù)器是華為云彈性云服務(wù)器
DevCloud在使用彈性云服務(wù)器之前需要先對(duì)其授信
回到軟件開發(fā)平臺(tái)DevCloud,這個(gè)開頭我介紹過 若不知道到開頭熟悉先,點(diǎn)擊已創(chuàng)建的項(xiàng)目,如QuickStart,如下圖所示
單擊導(dǎo)航欄“更多 > 設(shè)置 > 通用設(shè)置”,選擇左側(cè)欄“主機(jī)組管理”,然后點(diǎn)擊“新建主機(jī)組”,參數(shù)如下:
①主機(jī)組名:自定義,如:iot
②操作系統(tǒng):Linux
點(diǎn)擊“保存”完成主機(jī)組的創(chuàng)建,并進(jìn)入該主機(jī)組。
在創(chuàng)建的主機(jī)組內(nèi),點(diǎn)擊“添加主機(jī)”,參數(shù)如下:
①主機(jī)名:自定義,可與創(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
勾選閱讀并同意聲明,點(diǎn)擊“添加”完成主機(jī)的添加。當(dāng)主機(jī)連通性驗(yàn)證顯示“驗(yàn)證成功”時(shí),說明主機(jī)成功添加
新建部署任務(wù)
點(diǎn)擊導(dǎo)航欄“構(gòu)建&發(fā)布 > 部署”進(jìn)入,然后點(diǎn)擊“新建任務(wù)”,輸入任務(wù)名稱(可使用默認(rèn)值),單擊“下一步”進(jìn)入“選擇部署模板”。
選擇模板“SpringBoot應(yīng)用部署”,單擊“下一步”,進(jìn)入“部署步驟”頁面
4.3配置部署步驟并執(zhí)行
SpringBoot應(yīng)用部署模板默認(rèn)包含以下步驟:安裝JDK、停止SpringBoot服務(wù)、選擇部署來源、啟動(dòng)SpringBoot服務(wù)、URL健康測試
4.3.1刪除“停止SpringBoot服務(wù)”和“URL健康測試”;
4.3.2選中“安裝JDK”,主機(jī)組:選擇添加授信主機(jī)是創(chuàng)建的主機(jī)組(如:iot),彈框提示點(diǎn)擊“確定”,jdk版本:openjdk-1.8.0;
敲黑板啊:部署失敗怎么辦?
答案:請根據(jù)實(shí)驗(yàn)步驟逐步檢查: 1、主機(jī)是否添加成功并完成了連通性驗(yàn)證 2、所有步驟的參數(shù)是否配置正確,手動(dòng)輸入的參數(shù)是否多了個(gè)空格,少了個(gè)符號(hào)等等。 3、不用的步驟和參數(shù)是否都已刪除。
選中“選擇部署來源”,參數(shù)如下:
①選擇源類型:軟件包;
②選擇軟件包:點(diǎn)擊右側(cè)“…”,選擇構(gòu)建包,路徑如下圖所示;
③下載到主機(jī)的部署目錄:按需填寫,如/usr/local
選中“啟動(dòng)SpringBoot服務(wù)”,參數(shù)如下:
①服務(wù)操作類型:保持默認(rèn)值
②服務(wù)對(duì)應(yīng)的絕對(duì)路徑:由“下載到主機(jī)的部署目錄”和軟件包包名組成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar
③組件監(jiān)控:去掉勾選
切換到“參數(shù)設(shè)置”頁簽,逐一刪除全部參數(shù)
點(diǎn)擊“保存并執(zhí)行”,完成部署任務(wù)的配置,并執(zhí)行部署任務(wù);
頁面顯示“部署成功”,表示任務(wù)執(zhí)行完畢。若任務(wù)執(zhí)行失敗,可通過頁面中的原因提示及鏈接來排查解決;
五 ???? 設(shè)備接入及模擬器連接
5.1創(chuàng)建產(chǎn)品
在華為云控制臺(tái),展開左側(cè)導(dǎo)航,選擇“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,如下圖所示
敲黑板啊:設(shè)備接入服務(wù)是什么?
它是華為云的物聯(lián)網(wǎng)平臺(tái),提供海量設(shè)備連接上云、設(shè)備和云端雙向消息通信、批量設(shè)備管理、遠(yuǎn)程控制和監(jiān)控、OTA升級(jí)、設(shè)備聯(lián)動(dòng)規(guī)則等能力,并可將設(shè)備數(shù)據(jù)靈活流轉(zhuǎn)到華為云其他服務(wù)。物聯(lián)網(wǎng)平臺(tái)中,某一類具有相同能力或特征的設(shè)備的合集被稱為一款產(chǎn)品。您可為產(chǎn)品定義產(chǎn)品模型,產(chǎn)品模型用于描述設(shè)備具備的能力和特性。定義產(chǎn)品模型,即在物聯(lián)網(wǎng)平臺(tái)構(gòu)建一款設(shè)備的抽象模型,使平臺(tái)理解該款設(shè)備支持的服務(wù)、屬性、命令等信息;
在左側(cè)欄中選擇“產(chǎn)品”,點(diǎn)擊“創(chuàng)建產(chǎn)品”,參數(shù)如下
①所屬資源空間:Default_APP_Sandbox_user_iot
②產(chǎn)品名稱:自定義,如:StreetLight
③協(xié)議類型:MQTT
④數(shù)據(jù)格式:JSON
⑤廠商名稱:自定義,如:Huawei_IoT
⑥設(shè)備類型:自定義,如:StreetLight
填寫完成,點(diǎn)擊“立即創(chuàng)建”,產(chǎn)品創(chuàng)建成功,請記錄“產(chǎn)品ID”信息,并查看“詳情”
5.2 上傳模型文件
點(diǎn)擊創(chuàng)建的產(chǎn)品進(jìn)入詳情,然后點(diǎn)擊“上傳模型文件”,選擇SmartStreetLight.zip文件,點(diǎn)擊“確認(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è)置頁面下拉框選擇“訂閱推送”;
②本機(jī)IP:“控制臺(tái)”->“服務(wù)列表”->“計(jì)算”->“彈性云服務(wù)器ECS”進(jìn)入服務(wù)器列表,進(jìn)行查看并復(fù)制彈性公網(wǎng)IP;
敲黑板啊:為什么要配置這些參數(shù)?
智慧路燈應(yīng)用通過API方式和華為云對(duì)接,注冊設(shè)備、獲取設(shè)備數(shù)據(jù)和下發(fā)命令,這些參數(shù)在調(diào)用API時(shí)才用;
③主題URN:“控制臺(tái)”->“服務(wù)列表”->“管理與監(jiān)管”->“消息通知服務(wù)SMN”進(jìn)入主題列表,進(jìn)行查看并復(fù)制主題URN
④APPID:“控制臺(tái)”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“資源空間”,復(fù)制獲取產(chǎn)品所需的“APPID”
⑤賬號(hào)名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)賬號(hào)名
⑥IAM用戶名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)用戶名
⑦IAM用戶密碼:系統(tǒng)為您分配的華為云實(shí)驗(yàn)密碼
⑧項(xiàng)目ID:控制臺(tái)在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復(fù)制獲取所屬區(qū)域?yàn)椤叭A北-北京四”的項(xiàng)目ID。
⑨產(chǎn)品ID:“控制臺(tái)”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“產(chǎn)品”,復(fù)制獲取產(chǎn)品所需的“產(chǎn)品ID”。
填寫完成后點(diǎn)擊“確定”,彈窗提示如下,表示參數(shù)設(shè)置成功
5.4 注冊設(shè)備
輸入設(shè)備標(biāo)識(shí)(自定義,如123456789f),點(diǎn)擊“注冊設(shè)備”
敲黑板啊:彈窗提示如下,表示注冊設(shè)備成功。請記錄“設(shè)備Id”和“密鑰”信息,用于后續(xù)驗(yàn)證,請記錄設(shè)備id以及密鑰,便于后期使用!
設(shè)備注冊成功后是“未激活”狀態(tài),請選擇“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入服務(wù)”,在左側(cè)欄選擇“設(shè)備 > 所有設(shè)備”,點(diǎn)擊設(shè)備標(biāo)識(shí)碼進(jìn)入,查看設(shè)備Id,或修改密鑰。
結(jié)果驗(yàn)證(設(shè)備屬性上報(bào)/訂閱/設(shè)備命令下發(fā));
5.5 模擬器與平臺(tái)建立連接
7.1.1打開MQTT設(shè)備模擬器
在實(shí)驗(yàn)桌面雙擊“Xfce終端”打開Terminal,執(zhí)行以下命令打開設(shè)備接入模擬器(HubSimulator.jar),然后切換到MQTT設(shè)備模擬器頁簽
敲黑板啊:HubSimulator.jar是什么工具?
HubSimulator.jar是設(shè)備接入服務(wù)提供的多功能模擬器,本實(shí)驗(yàn)中我們用它來模擬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:進(jìn)入“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)欄選擇“總覽”,點(diǎn)擊“平臺(tái)接入地址”
復(fù)制使用MQTT/MQTTS接入信息的域名。
②設(shè)備ID:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的設(shè)備Id
③設(shè)備密鑰:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的密鑰
配置好以上參數(shù)后,點(diǎn)擊“建立連接”按鈕。
建立連接成功后,右側(cè)日志顯示MQTT服務(wù)連接成功,如下圖所示:
若無法建立連接,請打開“命令提示符”窗口,輸入“ping 服務(wù)IP”查看您的主機(jī)是否能和華為云物聯(lián)網(wǎng)平臺(tái)正常通信,若無法正常通信,請更換主機(jī)的網(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è)備屬性上報(bào)
7.2.1模擬器發(fā)送消息,上報(bào)設(shè)備屬性
①在模擬器窗口中的Topic欄中輸入以下代碼:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實(shí)際設(shè)備ID
敲黑板啊:應(yīng)用界面不顯示上報(bào)的數(shù)據(jù)怎么辦?
首先檢查上報(bào)數(shù)據(jù)的Topic填寫是否正確,然后檢查上報(bào)數(shù)據(jù)是否符合JSON格式。如果以上兩點(diǎn)都檢查沒問題,再檢查之前參數(shù)設(shè)置的是否都正確
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強(qiáng)度可自定義,燈狀態(tài)建議為OFF。
在模擬器窗口中的消息編輯欄中輸入以下代碼:
{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}
發(fā)送消息成功后,右側(cè)日志顯示信息推送成功(圖片僅為示意,請以你上報(bào)實(shí)際數(shù)據(jù)為準(zhǔn)哈)
5.9 查看應(yīng)用界面變化
返回智慧路燈Web界面,此時(shí)顯示“環(huán)境亮度”為200LUX,“燈狀態(tài)”為關(guān)。
敲黑板啦:模擬器與Web頁面之間會(huì)有短暫延遲,不用刷新頁面,幾秒鐘后可發(fā)現(xiàn)頁面會(huì)隨之變化!
5.10 模擬器訂閱Topic
切換到“訂閱Topic”頁簽,并在Topic欄中輸入以下代碼:
$oc/devices/{device_id}/sys/commands/#,其中的{device_id}需要替換成實(shí)際設(shè)備ID。
輸入完畢后,點(diǎn)擊“訂閱”按鈕可完成訂閱。
$oc/devices/{device_id}/sys/commands/#
訂閱成功后,右側(cè)日志顯示訂閱Topic成功
5.11 平臺(tái)下發(fā)設(shè)備命令/模擬器響應(yīng)
7.4.1終端聯(lián)控模式配置
返回智慧路燈Web界面,“路燈控制”選擇“終端聯(lián)控模式”,開關(guān)選擇“開”,單擊“設(shè)置”,然后點(diǎn)擊”確認(rèn)”。
①若當(dāng)前燈狀態(tài)為“關(guān)”,開關(guān)選擇為“開”,服務(wù)后臺(tái)會(huì)實(shí)時(shí)下發(fā)一條開燈命令,彈窗提示會(huì)有5-10秒左右延遲,請耐心等待。
②若當(dāng)前燈狀態(tài)為“關(guān)”,開關(guān)選擇為“關(guān)”,不會(huì)觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功;
即“燈狀態(tài)”與“開關(guān)選擇”一致時(shí),不會(huì)觸發(fā)命令下發(fā);“燈狀態(tài)”與“開關(guān)選擇”不一致時(shí),會(huì)觸發(fā)實(shí)時(shí)命令下發(fā);
收不到命令怎么辦?
5.12 命令接收
因?yàn)楫?dāng)前“燈狀態(tài)”為關(guān),“開關(guān)選擇”為開,查看模擬器日志區(qū)域,會(huì)收到一條開燈命令。(payload的值經(jīng)過base64加密,解密后即可得到命令內(nèi)容)
5.13 模擬器發(fā)送消息,上報(bào)變更后的設(shè)備屬性
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實(shí)際設(shè)備ID。
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強(qiáng)度可自定義,燈狀態(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è)置”。
因?yàn)闊魻顟B(tài)為“開”,開關(guān)選擇為“關(guān)”,服務(wù)后臺(tái)會(huì)實(shí)時(shí)下發(fā)一條關(guān)燈命令;而設(shè)備處于離線狀態(tài),導(dǎo)致命令下發(fā)失敗
此時(shí),系統(tǒng)會(huì)發(fā)送短信/郵件通知告知訂閱用戶命令下發(fā)失敗;通知內(nèi)容為命令下發(fā)失敗的錯(cuò)誤信息
通知示例:【華為云】錯(cuò)誤信息:{"error_code":"IOTDA.014016","error_msg":"Operation not allowed. The device is not online."}
設(shè)備變更為“離線”狀態(tài),請登錄華為云控制臺(tái),選擇“物聯(lián)網(wǎng) > 設(shè)備接入服務(wù)”,在左側(cè)導(dǎo)航欄,選擇“設(shè)備 > 所有設(shè)備”,根據(jù)設(shè)備標(biāo)識(shí)碼查看設(shè)備狀態(tài)
5.16(可選)自動(dòng)調(diào)光模式
自動(dòng)調(diào)光模式參數(shù)配置
在模擬器上單擊“建立連接”,將設(shè)備重新上線。返回智慧路燈Web界面,“路燈控制”選擇“自動(dòng)調(diào)光模式”,設(shè)置亮度閾值為100
5.17 模擬器接收反應(yīng)
因?yàn)楫?dāng)前“環(huán)境亮度”為110LUX,“燈狀態(tài)”為開,查看模擬器日志區(qū)域,應(yīng)該會(huì)收到關(guān)燈命令。
①若當(dāng)前“環(huán)境亮度”大于“亮度閾值”,且“燈狀態(tài)”為“開”,服務(wù)后臺(tái)會(huì)實(shí)時(shí)下發(fā)一條關(guān)燈命令,彈窗提示會(huì)有5-10秒左右延遲,請耐心等待。
②若當(dāng)前“環(huán)境亮度”小于“亮度閾值”,且“燈狀態(tài)”為“開”,不會(huì)觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功
即“環(huán)境亮度”小于“亮度閾值”,且“燈狀態(tài)”為“開”或“環(huán)境亮度”大于“亮度閾值”,且“燈狀態(tài)”為“關(guān)”時(shí),不會(huì)觸發(fā)命令下發(fā);反之,則會(huì)觸發(fā)實(shí)時(shí)命令下發(fā)
模擬器發(fā)送消息,上報(bào)變更后的設(shè)備屬性。
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實(shí)際設(shè)備ID
$oc/devices/{device_id}/sys/properties/report
②消息內(nèi)容:
其中,光感強(qiáng)度<100,燈狀態(tài)為OFF
{"services":[{"service_id":"Sensor","properties":{"luminance":"80","light_state":"OFF"}}]}
5.18 查看Web界面
返回智慧路燈Web界面,單擊“設(shè)置”,查看模擬器日志區(qū)域,會(huì)收到一條開燈命令
5.19(可選)分段定時(shí)模式
分段定時(shí)模式參數(shù)配置
返回智慧路燈Web界面,“路燈控制”選擇“分段定時(shí)模式”,設(shè)置關(guān)燈時(shí)間段為06:30-18:30。
敲黑板啦:“關(guān)燈時(shí)間段”和“亮度曲線”橫軸時(shí)間均為彈性云服務(wù)器系統(tǒng)時(shí)間,即為GMT+0:00時(shí)區(qū)
結(jié)果判定,因?yàn)楫?dāng)前“燈狀態(tài)”為關(guān),需根據(jù)彈性云服務(wù)器系統(tǒng)時(shí)間(參考“亮度曲線”橫軸時(shí)間)判斷結(jié)果;
①若系統(tǒng)時(shí)間位于“關(guān)燈時(shí)間段”之外,且“燈狀態(tài)”為“關(guān)”,服務(wù)后臺(tái)會(huì)實(shí)時(shí)下發(fā)一條開燈命令,彈窗提示會(huì)有5-10秒左右延遲,請耐心等待
②若系統(tǒng)時(shí)間位于“關(guān)燈時(shí)間段”之內(nèi),且“燈狀態(tài)”為“關(guān)”,不會(huì)觸發(fā)命令下發(fā),直接彈窗提示設(shè)置成功啦開心
5.20 (可選)如何正確刪除應(yīng)用服務(wù)
首先刪彈性云服務(wù)器 ECS
在華為云控制臺(tái),選擇“服務(wù)列表”-> “計(jì)算”-> “彈性云服務(wù)器 ECS”進(jìn)入,勾選待刪除ECS服務(wù)器,如ecs-iot,選擇“更多 > 刪除”,在彈窗中請勾選刪除彈性公網(wǎng)IP和數(shù)據(jù)盤后,點(diǎn)擊“是”完成刪除
然后刪設(shè)備接入服務(wù) IoTDA
在華為云控制臺(tái),選擇“服務(wù)列表”->“物聯(lián)網(wǎng)”->“設(shè)備”→“所有設(shè)備”進(jìn)入所有設(shè)備列表,根據(jù)設(shè)備標(biāo)識(shí)碼刪除設(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ā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ù)英微信公眾號(hào)(ID: digitaling) 后臺(tái)授權(quán),侵權(quán)必究。
評(píng)論
評(píng)論
推薦評(píng)論
暫無評(píng)論哦,快來評(píng)論一下吧!
全部評(píng)論(0條)