基于IoT平臺構建智慧路燈應用【拜托了,物聯網!】
“智慧路燈”是一個Web項目,需要部署到服務器上才可以運行,我這里采用部署服務器是華為云彈性云服務器,通過華為云的軟件開發平臺的項目管理,代碼托管,在線部署發布和物聯網平臺的創建產品、導入產品模型,成功構建了一個簡易的智慧路燈小項目。
上面是關于這次實操的拓撲圖,清晰的展示了智慧路燈這一小項目的架構和需要的產品支持。話不多說,隨我一起實操一波,構建有趣的IOT智慧路燈。
資源下載
首先先下載在命令行窗口下載
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
編譯構建智慧路燈應用
新建項目
選擇“服務列表”->“開發與運維”->“項目管理”,進入軟件開發云,如下圖:
點擊“立即使用”按鈕,跳轉到DevCloud操作界面
點擊上圖紅圈標注“新建項目”按鈕,開始創建項目
點擊標注的“Scrum”區域,創建“Scrum”類型項目,參數如下:項目設置模板:Scrum項目名稱:QuickStart
參數填寫完畢,點擊確定按鈕即可完成項目創建。
創建代碼倉庫
新建倉庫選擇導航欄“代碼 > 代碼托管”,進入管理頁面,展開右上角“普通新建”下拉菜單,點擊“按模板新建”
選擇模板
在搜索框中輸入“IoT_Streetlight_New_Demo”,如下圖所示選擇“華北-北京四”,選中該模板,單擊“下一步”。
填寫倉庫基本信息
基本信息參數如下:①代碼倉庫名稱:自定義,如:IoT_Streetlight_New_Demo②選擇gitignore:Java其他選項保持默認。單擊“確定”,完成倉庫創建。
創建成功后,可單擊倉庫名稱進入倉庫,查看倉庫文件。
構建并歸檔軟件包
新建編譯構建任務點擊導航欄“構建&發布 > 編譯構建”,進入管理頁面,點擊“新建任務”,參數如下:①源碼源:DevCloud;②源碼倉庫:默認選擇前面創建的代碼倉庫;③分支:master;點擊“下一步”進入“選擇構建模板”。
選擇構建模板
使用系統模板中提供的兩個默認步驟、以及每個步驟中的默認配置,即可完成本例的構建。點擊“新建并執行”即可完成步驟的配置并啟動構建任務,如下圖所示:
驗證構建任務執行結果
點擊導航欄“發布”,進入“軟件發布庫”頁面,點擊進入“IoT_Streetlight...”下的“202…”日期命名的文件夾,即可看到生成的軟件包“huawei-0.0.1-SNAPSHOT.jar”。
創建主題并訂閱 SMN
在華為云控制臺,展開左側目錄,選擇【服務列表】->【管理與監管】 -> 【消息通知服務SMN】,或在服務列表搜索框中搜索“SMN”。
在左側導航欄,選擇“主題管理 > 主題”,單擊“創建主題”,輸入“主題名稱”(自定義,例如:StreetLight)后單擊“確定”完成主題創建。
訂閱 SMN
主題創建成功后,系統會自動生成主題URN
點擊主題“StreetLight”右側操作“添加訂閱”,可采用短信或者郵件任意一種協議完成訂閱。這里我們采用的短信協議
創建彈性云服務器 ECS
在華為云控制臺,展開左側導航,選擇“服務列表”-> “計算”-> “彈性云服務器”進入,然后點擊右上角“購買彈性云服務器”,建議配置:①計費模式:按需計費②區域:華北-北京四③可用區:隨機分配④CPU架構:x86計算⑤規格:選擇“通用入門型 | t6.small.1”什么是彈性云服務器?注意:如t6.small.1規格的已售罄,選擇通用入門型的【t6.medium.2】,或通用計算型下的【s6.small.1】/【s6.medium.2】均可⑥鏡像:公共鏡像 | Ubuntu | Ubuntu 16.04 server 64bit⑦主機安全:不勾選“開通主機安全”⑧系統盤:高IO | 40GB
基礎配置完成后點擊 “下一步:網絡配置”
網絡配置就正常的創建一下虛擬私有云并命名,其他默認,然后選擇合適的帶寬即可
用戶名為root,密碼自己設置,其他默認,然后完成高級配置后點擊“下一步:確認配置”,閱讀并勾選同意協議,單擊“立即購買”后,點擊返回云服務器列表。當狀態為“運行中”表示已創建完成。
主機授信配置
點擊新創建的彈性云服務器ECS的名稱進入詳情頁,選擇“安全組”頁簽,點擊Sys-WebServer安全組右側的【配置規則】進入規則配置頁面。
添加入方向規則
配置系統防火墻規則
ssh root@EIP
這里的EIP就是下面框選的上面你創建的云服務器的公網ip
輸入yes,然后再輸入你設置的密碼即可成功登錄ecs云服務器
然后執行以下代碼
sudo ufw enable //開啟ufw服務 sudo ufw allow 22/tcp //啟用22端口。 sudo ufw allow 8080/tcp //啟用8080端口。
部署智慧路燈應用
回到軟件開發平臺DevCloud,點擊已創建的項目QuickStart,如下圖所示:
單擊導航欄“更多 > 設置 > 通用設置”,選擇左側欄“主機組管理”,然后點擊“新建主機組”,參數如下:①主機組名:自定義,如:iot②操作系統:Linux點擊“保存”完成主機組的創建,并進入該主機組。
在創建的主機組內,點擊“添加主機”,參數如下:①主機名:自定義,可與創建的ECS名稱保持一致,如:ecs-iot②IP:創建彈性云服務器ECS的彈性公網IP(見步驟3.2)③認證方式:密碼④用戶名:root⑤密碼:填創建彈性云服務器ECS的用戶密碼;如:Huawei@123#⑥ssh端口:22勾選閱讀并同意聲明,點擊“添加”完成主機的添加。當主機連通性驗證顯示“驗證成功”時,說明主機成功添加。
新建部署任務
點擊導航欄“構建&發布 > 部署”進入,然后點擊“新建任務”,輸入任務名稱(可使用默認值),單擊“下一步”進入“選擇部署模板”。
選擇模板“SpringBoot應用部署”,單擊“下一步”,進入“部署步驟”頁面。
配置部署步驟并執行
SpringBoot應用部署模板默認包含以下步驟:安裝JDK、停止SpringBoot服務、選擇部署來源、啟動SpringBoot服務、URL健康測試。刪除“停止SpringBoot服務”和“URL健康測試”;選中“安裝JDK”,主機組:選擇添加授信主機是創建的主機組(如:iot),彈框提示點擊“確定”,jdk版本:openjdk-1.8.0;
選中“選擇部署來源”,參數如下:①選擇源類型:軟件包;②選擇軟件包:點擊右側“…”,選擇構建包,路徑如下圖所示;
下載到主機的部署目錄:按需填寫,如/usr/local
選中“啟動SpringBoot服務”,參數如下:①服務操作類型:保持默認值②服務對應的絕對路徑:由“下載到主機的部署目錄”和軟件包包名組成,如/usr/local/huawei-0.0.1-SNAPSHOT.jar
點擊“保存并執行”,完成部署任務的配置,并執行部署任務。頁面顯示“部署成功”,表示任務執行完畢。
導入產品模型
在華為云控制臺,展開左側導航,選擇“服務列表”-> “物聯網”->“設備接入IoTDA”,如下圖所示
所屬資源空間:Default_APP_Sandbox_user_iot②產品名稱:自定義,如:StreetLight③協議類型:MQTT④數據格式:JSON⑤廠商名稱:自定義,如:Huawei_IoT⑥設備類型:自定義,如:StreetLight填寫完成,點擊“立即創建”,產品創建成功,記住id
上傳模型文件
點擊創建的產品進入詳情,然后點擊“上傳模型文件”,選擇SmartStreetLight.zip文件,點擊“確認”完成上傳。
配置智慧路燈應用
訪問智慧路燈Web界面新建瀏覽器標簽頁,輸入http://EIP:8080/index.html(使用上面彈性云服務器的彈性公網IP替換地址中的“EIP”),訪問智慧路燈Web頁面。參數設置在彈出的“參數設置”窗口,參數填寫如下:①數據來源:參數設置頁面下拉框選擇“訂閱推送”。②本機IP:“控制臺”->“服務列表”->“計算”->“彈性云服務器ECS”進入服務器列表,進行查看并復制彈性公網IP。
③主題URN:“控制臺”->“服務列表”->“管理與監管”->“消息通知服務SMN”進入主題列表,進行查看并復制主題URN。
④APPID:“控制臺”->“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側導航欄選擇“資源空間”,復制獲取產品所需的“APPID”。
⑤賬號名:系統為您分配的華為云實驗賬號名。⑥IAM用戶名:系統為您分配的華為云實驗用戶名。⑦IAM用戶密碼:系統為您分配的華為云實驗密碼。
⑧項目ID:控制臺在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復制獲取所屬區域為“華北-北京四”的項目ID。
⑨產品ID:“控制臺”->“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側導航欄選擇“產品”,復制獲取產品所需的“產品ID”。
填寫完成后點擊“確定”,彈窗提示如下,表示參數設置成功。
注冊設備
輸入設備標識(自定義,如123456789f),點擊“注冊設備”。注意:請記錄設備id以及密鑰,便于后期使用!
模擬器與平臺建立連接
在實驗桌面雙擊“Xfce終端”打開Terminal,執行以下命令打開設備接入模擬器(HubSimulator.jar),然后切換到MQTT設備模擬器頁簽。
cd Desktop//usr/local/share/jre1.8.0_181/bin/java -jar HubSimulator.jar
在MQTT設備模擬器頁簽下,填寫參數如下:①服務IP:進入“服務列表”-> “物聯網”->“設備接入IoTDA”,在左側欄選擇“總覽”,點擊“平臺接入地址”。
復制使用MQTT/MQTTS接入信息的域名。
②設備ID:配置智慧路燈應用,注冊設備成功后返回的設備Id③設備密鑰:配置智慧路燈應用,注冊設備成功后返回的密鑰配置好以上參數后,點擊“建立連接”按鈕。
模擬器設備屬性上報
在模擬器窗口中的Topic欄中輸入以下代碼:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實際設備ID。
$oc/devices/{device_id}/sys/properties/report
消息內容:其中,光感強度可自定義,燈狀態建議為OFF。在模擬器窗口中的消息編輯欄中輸入以下代碼:
{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}
意思是將光亮度調整為200lux 狀態為關
返回智慧路燈Web界面,此時顯示“環境亮度”為200LUX,“燈狀態”為關。
注意:模擬器與Web頁面之間會有短暫延遲,不用刷新頁面,幾秒鐘后可發現頁面會隨之變化!
實現功能
此次IoT平臺構建智慧路燈應用,還可以實現下面兩種功能,就不一一演示了,感興趣的開發者伙伴可以查閱一下官方文檔。
自動調光模式
分段定時模式
總結
通過這次指導實操,我對物聯網平臺如何利用設備數據有了深刻理解,掌握了設備上報數據到物聯網平臺的原理和方法并能夠開發應用控制物聯網設備,這多虧了華為云的在線部署和產品的強大功能,很方便的就展現了IOT的有趣一面,后面會多多關注這方面的知識,繼續學習。
【拜托了,物聯網!】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/299476
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。