天天看點

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

本文的主要内容有:

  • 一 先完成準備任務
  • 二 然後建構并歸檔軟體包
  • 三 實作消息通知服務(SMN)
  • 四 雲伺服器部署初步上線
  • 五 裝置接入及模拟器連接配接

一 🕹️ 先完成準備任務

前面登入,賬号密碼哪些略過,直接下載下傳要用到資源先,回到桌面輕按兩下“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建立項目

然後選擇“服務清單”->“開發與運維”->“項目管理”,進入軟體開發雲,如下圖這樣

敲黑闆啊:不過先知道什軟體開發平台是啥?

它是集華為近30年研發實踐、前沿研發理念、先進研發工具為一體的一站式雲端DevOps平台,面向開發者提供的雲服務,即開即用,随時随地在雲端進行項目管理、代碼托管、流水線、代碼檢查、編譯建構、部署、測試、釋出等,進而給開發者快速而又輕松地開啟雲端開發之旅。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

點選“立即使用”按鈕,跳轉到DevCloud操作界面,它是企業級軟體協作一體化DevOps平台,如下圖這樣

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

DevCloud操作界面如下圖:

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

點選上圖紅圈标注“建立項目”按鈕,開始建立項目,如下圖所示:

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

點選标注的“Scrum”區域,建立“Scrum”類型項目,參數如下:

項目設定模闆:Scrum

項目名稱:QuickStart

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

參數填寫完畢,點選确定按鈕即可完成項目建立。

1.2建立代碼倉庫

1.2.1建立倉庫

選擇導航欄“代碼 > 代碼托管”,進入管理頁面,展開右上角“普通建立”下拉菜單,點選“按模闆建立”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

1.2.2選擇模闆

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

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

1.2.3然後填倉庫基本資訊

基本資訊參數如下:

①代碼倉庫名稱:自定義,如:IoT_Streetlight_New_Demo ②選擇gitignore:Java 其他選項保持預設

單擊“确定”,完成倉庫建立。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

建立成功後,可單擊倉庫名稱進入倉庫,檢視倉庫檔案

二 ⛳ 然後建構并歸檔軟體包

2.1建立編譯建構任務

點選導航欄“建構&釋出 > 編譯建構”,進入管理頁面,點選“建立任務”,參數如下

①源碼源:CodeHub;

②源碼倉庫:預設選擇1.2步建立的代碼倉庫;

③分支:master;

點選“下一步”進入“選擇構模組化闆”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

2.2選擇構模組化闆

本項目是一個Java Maven項目,是以搜尋選擇“Maven”模闆, 單擊“确定”,進入“建構步驟”頁面

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

2.3然後建構步驟

使用系統模闆中提供的兩個預設步驟、以及每個步驟中的預設配置,即可完成本例的建構。點選“建立并執行”即可完成步驟的配置并啟動建構任務,如下圖所示

敲黑闆:建構需要2-3分鐘,請耐心等待...............

當出現上面圖檔表示的頁面時,表示建構任務執行成功。若執行失敗,就檢視日志資訊排查問題,或通過編譯建構-常見問題查找解決方法。

2.4驗證建構任務執行結果

點選導航欄“釋出”,進入“軟體釋出庫”頁面,點選進入“IoT_Streetlight...”下的“202…”日期命名的檔案夾,即可看到生成的軟體包“huawei-0.0.1-SNAPSHOT.jar”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

2.5建立主題并訂閱 SMN

在華為雲控制台,展開左側目錄,選擇【服務清單】->【管理與監管】 -> 【消息通知服務SMN】,或在服務清單搜尋框中搜尋“SMN”。

什麼是消息通知服務?​

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

注意:若提示無權限,請确認左上角區域是否在“華北-北京四”即可

在左側導航欄,選擇“主題管理 > 主題”,單擊“建立主題”,輸入“主題名稱”(自定義,例如:StreetLight)後單擊“确定”完成主題建立

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

三 🎨 實作消息通知服務(SMN)

主題建立成功後,系統會自動生成主題URN,主題URN是主題的唯一資源辨別,不可修改,後續步驟将會用到該URN

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

點選主題“StreetLight”右側操作“添加訂閱”,可采用短信或者郵件任意一種協定完成訂閱。

“短信協定”參數如下:

①協定:短信

②訂閱終端:使用者手機号碼(需填寫您的手機号完成此步)

單擊“确定”後,請檢視手機接收短信,點選短信中的連結進行訂閱确認

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

“郵件協定”參數如下:

①協定:郵件

②訂閱終端:使用者郵箱位址(需填寫您的郵箱完成此步)

單擊“确定”後,請查收郵件,點選郵件中的連結進行訂閱确認

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

四 🤩 雲伺服器部署初步上線

4.1網絡配置

點選“前往控制台建立”,就能跳轉到虛拟私有雲控制台頁面

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

在虛拟私有雲控制台,點選“建立虛拟私有雲”,區域選擇“華北-北京四”,名稱自定義(如:vpc-iot),預設子網名稱自定義(如:subnet-iot),其他參數均可預設,點選“立即建立”完成後,即可傳回網絡配置頁面;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

傳回網絡配置頁面,重新整理後,選擇剛建立的虛拟私有雲VPC(如:vpc-iot)和子網(如:subnet-iot),自動配置設定IP位址,如下圖所示

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

②擴充網卡:預設配置

③安全組:預設配置

④彈性公網IP:現在購買

⑤線路:預設配置

⑥公網帶寬:按帶寬計費

⑦帶寬大小:1Mbit/s

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

4.2 進階配置

完成網絡配置後單擊“下一步:進階配置”,參數如下:

①雲伺服器名稱:自定義,如:ecs-iot

②登入憑證:密碼

③密碼/确認密碼:自定義,如:SM1$b9Zs1#

⑥其他參數:預設配置

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

完成進階配置後點選“下一步:确認配置”,閱讀并勾選同意協定,單擊“立即購買”後,點選傳回雲伺服器清單。當狀态為“運作中”表示已建立完成;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

4.3 主機授信配置

建立的彈性雲伺服器ECS的“彈性公網IP”資訊将在後續步驟4.1添加授信主機的配置中用到;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

4.4 添加安全組入方向規則

點選新建立的彈性雲伺服器ECS的名稱進入詳情頁,選擇“安全組”頁簽,點選Sys-WebServer安全組右側的【配置規則】進入規則配置頁面。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

在新打開的安全組控制界面,選擇“入方向規則”,單擊“添加規則”,如下圖所示:

① 優先級:1

② 政策:允許

③ 協定端口:8080;

④ IP位址設為0.0.0.0/0。

點選“确定”。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

敲黑闆:SSH協定端口(22)的入方向TCP協定預設開放,無需修改。将智慧路燈應用端口(8080)的入方向放開限制,用于後續通路智慧路燈應用。出方向規則預設不做限制,無需修改;

4.5 配置系統防火牆規則

傳回實驗桌面輕按兩下“Xfce終端”打開Terminal,輸入以下指令,并按照操作說明執行,登入雲伺服器:

操作說明:

①使用彈性雲伺服器ECS的彈性公網IP替換指令中的[EIP]

說明:雲伺服器的彈性公網IP位址可以通過點選“控制台”->“服務清單”->“計算”->“彈性雲伺服器ECS”進入伺服器清單,進行檢視并複制

ssh root@EIP      
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

②接受秘鑰輸入“yes”,回車;

③輸入密碼:SM1$b9Zs1#(輸入密碼時,指令行視窗不會顯示密碼,輸完之後直接鍵入回車)。成功登入雲伺服器之後如下圖所示

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

④執行sudo ufw enable開啟ufw服務,輸入“y”确認。

sudo ufw enable      

⑤執行sudo ufw allow 22/tcp啟用22端口。

sudo ufw allow 22/tcp      

⑥執行sudo ufw allow 8080/tcp啟用8080端口。

sudo ufw allow 8080/tcp      
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

4.6 部署智慧路燈應用

添加授信主機

“智慧路燈”是一個Web項目,需要部署到伺服器上才可以運作,本例采用部署伺服器是華為雲彈性雲伺服器

DevCloud在使用彈性雲伺服器之前需要先對其授信

回到軟體開發平台DevCloud,這個開頭我介紹過 若不知道到開頭熟悉先,點選已建立的項目,如QuickStart,如下圖所示

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

單擊導航欄“更多 > 設定 > 通用設定”,選擇左側欄“主機組管理”,然後點選“建立主機組”,參數如下:

①主機組名:自定義,如:iot

②作業系統:Linux

點選“儲存”完成主機組的建立,并進入該主機組。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

在建立的主機組内,點選“添加主機”,參數如下:

①主機名:自定義,可與建立的ECS名稱保持一緻,如:ecs-iot

②IP:建立彈性雲伺服器ECS的彈性公網IP(見步驟3.2)

③認證方式:密碼

④使用者名:root

⑤密碼:填建立彈性雲伺服器ECS的使用者密碼;如:SM1$b9Zs1#

⑥ssh端口:22

勾選閱讀并同意聲明,點選“添加”完成主機的添加。當主機連通性驗證顯示“驗證成功”時,說明主機成功添加

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

建立部署任務

點選導航欄“建構&釋出 > 部署”進入,然後點選“建立任務”,輸入任務名稱(可使用預設值),單擊“下一步”進入“選擇部署模闆”。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

選擇模闆“SpringBoot應用部署”,單擊“下一步”,進入“部署步驟”頁面

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

4.3配置部署步驟并執行

SpringBoot應用部署模闆預設包含以下步驟:安裝JDK、停止SpringBoot服務、選擇部署來源、啟動SpringBoot服務、URL健康測試

4.3.1删除“停止SpringBoot服務”和“URL健康測試”;

4.3.2選中“安裝JDK”,主機組:選擇添加授信主機是建立的主機組(如:iot),彈框提示點選“确定”,jdk版本:openjdk-1.8.0;

敲黑闆啊:部署失敗怎麼辦?

答案:請根據實驗步驟逐漸檢查: 1、主機是否添加成功并完成了連通性驗證 2、所有步驟的參數是否配置正确,手動輸入的參數是否多了個空格,少了個符号等等。 3、不用的步驟和參數是否都已删除。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

選中“選擇部署來源”,參數如下:

①選擇源類型:軟體包;

②選擇軟體包:點選右側“…”,選擇建構包,路徑如下圖所示;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

③下載下傳到主機的部署目錄:按需填寫,如/usr/local

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

選中“啟動SpringBoot服務”,參數如下:

①服務操作類型:保持預設值

②服務對應的絕對路徑:由“下載下傳到主機的部署目錄”和軟體包包名組成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar

③元件監控:去掉勾選

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

切換到“參數設定”頁簽,逐一删除全部參數

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

點選“儲存并執行”,完成部署任務的配置,并執行部署任務;

頁面顯示“部署成功”,表示任務執行完畢。若任務執行失敗,可通過頁面中的原因提示及連結來排查解決;

五 🍉 裝置接入及模拟器連接配接

5.1建立産品

在華為雲控制台,展開左側導航,選擇“服務清單”-> “物聯網”->“裝置接入IoTDA”,如下圖所示

敲黑闆啊:裝置接入服務是什麼?

它是華為雲的物聯網平台,提供海量裝置連接配接上雲、裝置和雲端雙向消息通信、批量裝置管理、遠端控制和監控、OTA更新、裝置關聯規則等能力,并可将裝置資料靈活流轉到華為雲其他服務。物聯網平台中,某一類具有相同能力或特征的裝置的合集被稱為一款産品。您可為産品定義産品模型,産品模型用于描述裝置具備的能力和特性。定義産品模型,即在物聯網平台建構一款裝置的抽象模型,使平台了解該款裝置支援的服務、屬性、指令等資訊;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

在左側欄中選擇“産品”,點選“建立産品”,參數如下

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

①所屬資源空間:Default_APP_Sandbox_user_iot

②産品名稱:自定義,如:StreetLight

③協定類型:MQTT

④資料格式:JSON

⑤廠商名稱:自定義,如:Huawei_IoT

⑥裝置類型:自定義,如:StreetLight

填寫完成,點選“立即建立”,産品建立成功,請記錄“産品ID”資訊,并檢視“詳情”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.2 上傳模型檔案

點選建立的産品進入詳情,然後點選“上傳模型檔案”,選擇SmartStreetLight.zip檔案,點選“确認”完成上傳

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.3 通路智慧路燈Web界面

建立浏覽器标簽頁,輸入http://EIP:8080/index.html(使用步驟3.2中彈性雲伺服器的彈性公網IP替換位址中的“EIP”),通路智慧路燈Web頁面。

6.2參數設定

在彈出的“參數設定”視窗,參數填寫如下:

①資料來源:參數設定頁面下拉框選擇“訂閱推送”;

②本機IP:“控制台”->“服務清單”->“計算”->“彈性雲伺服器ECS”進入伺服器清單,進行檢視并複制彈性公網IP;

敲黑闆啊:為什麼要配置這些參數?

智慧路燈應用通過API方式和華為雲對接,注冊裝置、擷取裝置資料和下發指令,這些參數在調用API時才用;

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

③主題URN:“控制台”->“服務清單”->“管理與監管”->“消息通知服務SMN”進入主題清單,進行檢視并複制主題URN

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

④APPID:“控制台”->“服務清單”-> “物聯網”->“裝置接入IoTDA”,在左側導航欄選擇“資源空間”,複制擷取産品所需的“APPID”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

⑤賬号名:系統為您配置設定的華為雲實驗賬号名

⑥IAM使用者名:系統為您配置設定的華為雲實驗使用者名

⑦IAM使用者密碼:系統為您配置設定的華為雲實驗密碼

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

⑧項目ID:控制台在右上角使用者名下拉框中選擇“我的憑證->API憑證”頁面複制擷取所屬區域為“華北-北京四”的項目ID。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

⑨産品ID:“控制台”->“服務清單”-> “物聯網”->“裝置接入IoTDA”,在左側導航欄選擇“産品”,複制擷取産品所需的“産品ID”。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

填寫完成後點選“确定”,彈窗提示如下,表示參數設定成功

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.4 注冊裝置

輸入裝置辨別(自定義,如123456789f),點選“注冊裝置”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

敲黑闆啊:彈窗提示如下,表示注冊裝置成功。請記錄“裝置Id”和“密鑰”資訊,用于後續驗證,請記錄裝置id以及密鑰,便于後期使用!

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

裝置注冊成功後是“未激活”狀态,請選擇“服務清單”-> “物聯網”->“裝置接入服務”,在左側欄選擇“裝置 > 所有裝置”,點選裝置辨別碼進入,檢視裝置Id,或修改密鑰。

結果驗證(裝置屬性上報/訂閱/裝置指令下發);

5.5 模拟器與平台建立連接配接

7.1.1打開MQTT裝置模拟器

在實驗桌面輕按兩下“Xfce終端”打開Terminal,執行以下指令打開裝置接入模拟器(HubSimulator.jar),然後切換到MQTT裝置模拟器頁簽

敲黑闆啊:HubSimulator.jar是什麼工具?

HubSimulator.jar是裝置接入服務提供的多功能模拟器,本實驗中我們用它來模拟MQTT裝置接入;連接配接失敗怎辦呢,請檢查服務IP(域名),裝置ID和裝置秘鑰的填寫是否都正确,有無多餘的空格基本就可以解決了哈;

cd Desktop/
/usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar      
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.6 建立連接配接

在MQTT裝置模拟器頁簽下,填寫參數如下:

①服務IP:進入“服務清單”-> “物聯網”->“裝置接入IoTDA”,在左側欄選擇“總覽”,點選“平台接入位址”

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

複制使用MQTT/MQTTS接入資訊的域名。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

②裝置ID:配置智慧路燈應用,注冊裝置成功後傳回的裝置Id

③裝置密鑰:配置智慧路燈應用,注冊裝置成功後傳回的密鑰

配置好以上參數後,點選“建立連接配接”按鈕。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

建立連接配接成功後,右側日志顯示MQTT服務連接配接成功,如下圖所示:

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

若無法建立連接配接,請打開“指令提示符”視窗,輸入“ping 服務IP”檢視您的主機是否能和華為雲物聯網平台正常通信,若無法正常通信,請更換主機的網絡環境

5.7 檢視裝置狀态

回到物聯網所有裝置清單( “服務清單” “物聯網”“裝置”“所有裝置”),裝置狀态變更為“線上”,如下圖所示

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.8 模拟器裝置屬性上報

7.2.1模拟器發送消息,上報裝置屬性

①在模拟器視窗中的Topic欄中輸入以下代碼:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際裝置ID

敲黑闆啊:應用界面不顯示上報的資料怎麼辦?

首先檢查上報資料的Topic填寫是否正确,然後檢查上報資料是否符合JSON格式。如果以上兩點都檢查沒問題,再檢查之前參數設定的是否都正确

$oc/devices/{device_id}/sys/properties/report      

②消息内容:

其中,光感強度可自定義,燈狀态建議為OFF。

在模拟器視窗中的消息編輯欄中輸入以下代碼:

{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}      
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

發送消息成功後,右側日志顯示資訊推送成功(圖檔僅為示意,請以你上報實際資料為準哈)

5.9 檢視應用界面變化

傳回智慧路燈Web界面,此時顯示“環境亮度”為200LUX,“燈狀态”為關。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

敲黑闆啦:模拟器與Web頁面之間會有短暫延遲,不用重新整理頁面,幾秒鐘後可發現頁面會随之變化!

5.10 模拟器訂閱Topic

切換到“訂閱Topic”頁簽,并在Topic欄中輸入以下代碼:

$oc/devices/{device_id}/sys/commands/#,其中的{device_id}需要替換成實際裝置ID。

輸入完畢後,點選“訂閱”按鈕可完成訂閱。

$oc/devices/{device_id}/sys/commands/#      
手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

訂閱成功後,右側日志顯示訂閱Topic成功

5.11 平台下發裝置指令/模拟器響應

7.4.1終端聯控模式配置

傳回智慧路燈Web界面,“路燈控制”選擇“終端聯控模式”,開關選擇“開”,單擊“設定”,然後點選”确認”。

①若目前燈狀态為“關”,開關選擇為“開”,服務背景會實時下發一條開燈指令,彈窗提示會有5-10秒左右延遲,請耐心等待。

②若目前燈狀态為“關”,開關選擇為“關”,不會觸發指令下發,直接彈窗提示設定成功;

即“燈狀态”與“開關選擇”一緻時,不會觸發指令下發;“燈狀态”與“開關選擇”不一緻時,會觸發實時指令下發;

收不到指令怎麼辦?​

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.12 指令接收

因為目前“燈狀态”為關,“開關選擇”為開,檢視模拟器日志區域,會收到一條開燈指令。(payload的值經過base64加密,解密後即可得到指令内容)

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.13 模拟器發送消息,上報變更後的裝置屬性

①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際裝置ID。

$oc/devices/{device_id}/sys/properties/report      

②消息内容:

其中,光感強度可自定義,燈狀态建議為ON。

{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}      

5.14 檢視應用界面變化

如下圖所示,應該顯示“環境亮度”為110LUX,“燈狀态”為開。

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.15 短信/郵件通知

在模拟器上單擊“斷開連接配接”後,重複7.4.1,“路燈控制”選擇“終端聯控模式”,開關選擇“關”,單擊“設定”。

因為燈狀态為“開”,開關選擇為“關”,服務背景會實時下發一條關燈指令;而裝置處于離線狀态,導緻指令下發失敗

此時,系統會發送短信/郵件通知告知訂閱使用者指令下發失敗;通知内容為指令下發失敗的錯誤資訊

通知示例:【華為雲】錯誤資訊:{"error_code":"IOTDA.014016","error_msg":"Operation not allowed. The device is not online."}

裝置變更為“離線”狀态,請登入華為雲控制台,選擇“物聯網 > 裝置接入服務”,在左側導航欄,選擇“裝置 > 所有裝置”,根據裝置辨別碼檢視裝置狀态

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.16(可選)自動調光模式

自動調光模式參數配置

在模拟器上單擊“建立連接配接”,将裝置重新上線。傳回智慧路燈Web界面,“路燈控制”選擇“自動調光模式”,設定亮度門檻值為100

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.17 模拟器接收反應

因為目前“環境亮度”為110LUX,“燈狀态”為開,檢視模拟器日志區域,應該會收到關燈指令。

①若目前“環境亮度”大于“亮度門檻值”,且“燈狀态”為“開”,服務背景會實時下發一條關燈指令,彈窗提示會有5-10秒左右延遲,請耐心等待。

②若目前“環境亮度”小于“亮度門檻值”,且“燈狀态”為“開”,不會觸發指令下發,直接彈窗提示設定成功

即“環境亮度”小于“亮度門檻值”,且“燈狀态”為“開”或“環境亮度”大于“亮度門檻值”,且“燈狀态”為“關”時,不會觸發指令下發;反之,則會觸發實時指令下發

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

模拟器發送消息,上報變更後的裝置屬性。

①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際裝置ID

$oc/devices/{device_id}/sys/properties/report      

②消息内容:

其中,光感強度<100,燈狀态為OFF

{"services":[{"service_id":"Sensor","properties":{"luminance":"80","light_state":"OFF"}}]}      

5.18 檢視Web界面

傳回智慧路燈Web界面,單擊“設定”,檢視模拟器日志區域,會收到一條開燈指令

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

5.19(可選)分段定時模式

分段定時模式參數配置

傳回智慧路燈Web界面,“路燈控制”選擇“分段定時模式”,設定關燈時間段為06:30-18:30。

敲黑闆啦:“關燈時間段”和“亮度曲線”橫軸時間均為彈性雲伺服器系統時間,即為GMT+0:00時區

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

結果判定,因為目前“燈狀态”為關,需根據彈性雲伺服器系統時間(參考“亮度曲線”橫軸時間)判斷結果;

①若系統時間位于“關燈時間段”之外,且“燈狀态”為“關”,服務背景會實時下發一條開燈指令,彈窗提示會有5-10秒左右延遲,請耐心等待

手摸手帶你完成智慧路燈建構及避坑【華為雲至簡緻遠】

②若系統時間位于“關燈時間段”之内,且“燈狀态”為“關”,不會觸發指令下發,直接彈窗提示設定成功啦開心

5.20 (可選)如何正确删除應用服務

首先删彈性雲伺服器 ECS

在華為雲控制台,選擇“服務清單”-> “計算”-> “彈性雲伺服器 ECS”進入,勾選待删除ECS伺服器,如ecs-iot,選擇“更多 > 删除”,在彈窗中請勾選删除彈性公網IP和資料盤後,點選“是”完成删除

然後删裝置接入服務 IoTDA

在華為雲控制台,選擇“服務清單”->“物聯網”->“裝置”→“所有裝置”進入所有裝置清單,根據裝置辨別碼删除裝置,如123456789f。然後在左側欄選擇“産品”,删除産品,如StreetLight

最後删桌面下載下傳的資源包

桌面輕按兩下“Xfce終端”打開Terminal,輸入以下指令下載下傳删除“HubSimulator.jar”檔案。

cd Desktop/
rm HubSimulator.jar      
rm SmartStreetLight.zip      

繼續閱讀