?此賬號為華為云開發(fā)者社區(qū)官方運(yùn)營賬號,提供全面深入的云計(jì)算前景分析、豐富的技術(shù)干貨、程序樣例,分享華為云前沿資訊動態(tài)
本文分享自華為云社區(qū)《【云駐共創(chuàng)】以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路》,作者: 啟明。
IoT設(shè)備接入管理服務(wù)業(yè)務(wù)介紹
物聯(lián)網(wǎng)的必然趨勢與巨大挑戰(zhàn)
在介紹華為云IoT設(shè)備接入管理服務(wù)業(yè)務(wù)之前,我們需要先了解“IoT”是什么。
IoT, Internet of Things,物聯(lián)網(wǎng),顧名思義,是物物相連。而要實(shí)現(xiàn)“物物相連”,一共有3個階段性任務(wù),而這3個階段性任務(wù),也伴隨著巨大的挑戰(zhàn):
階段一:讓“物”說話。
正如嬰兒要融入世界,需要會說話一樣,我們的“物”也需要能夠與外界交流。感知物理世界,變成數(shù)字信號:讓萬物可以感知溫度、空間、五覺,并且將自己感知到的進(jìn)行數(shù)據(jù)化。在這數(shù)據(jù)化的過程中,我們發(fā)現(xiàn)如下挑戰(zhàn):
- 大量現(xiàn)存設(shè)備未被數(shù)字化;
- 多樣化設(shè)備、各種行業(yè)協(xié)議、各種通信網(wǎng)絡(luò);
- 設(shè)備要求低功耗、低成本;
- 設(shè)備安全問題突出
階段二:讓“物”說一種話
嬰兒光會說話是不行的,要能夠和外界交流,還需要和外界使用共同的語言。對于“物”也是一樣,我們需要將數(shù)變成Online,提供標(biāo)準(zhǔn)化數(shù)據(jù),讓外部能夠理解“物”說的話。而這就需要有廣聯(lián)接和多協(xié)議接入,并且數(shù)據(jù)標(biāo)準(zhǔn)化,統(tǒng)一物模型。可是,現(xiàn)狀卻是:
- 百萬中數(shù)據(jù)元素,缺乏標(biāo)準(zhǔn)和規(guī)范;
- 多樣化數(shù)據(jù)格式
- 各廠商煙囪式發(fā)展,數(shù)據(jù)孤島林立,數(shù)據(jù)互通困難
階段三:讓“物”時候有價值的話
在可以用同一種語言溝通的基礎(chǔ)上,我們還需要讓嬰兒說有價值的話,才能夠?qū)崿F(xiàn)高效溝通。對于“物”而言,亦是如此。尤其是在“物”的世界,我們需要解決海量數(shù)據(jù)處理和分析,因此對算力的要求極高,并且要求實(shí)時性。最終的結(jié)果就是行業(yè)數(shù)字化、數(shù)字化行業(yè)。但是,正如前面說到的:
- 海量數(shù)據(jù)帶來算力、存儲問題;
- 實(shí)時流、時序、離線、多維分析復(fù)雜;
- 行業(yè)應(yīng)用場景的復(fù)雜性;
- 商業(yè)閉環(huán)、價值變形和分配問題
以小窺大,從一盞路燈,看萬物互聯(lián)世界
首先,讓我們在腦海里描繪一盞路燈的樣子,你是不是覺得很簡單?
我們來回顧一下路燈的發(fā)展史:
從五六十年代的時間控制器+本地回路控制,定時開關(guān),最簡單的邏輯處理關(guān)系;到70年代,加上光電控制器,稍微“聰明”了一些,能夠感知周圍的光感強(qiáng)度,從而調(diào)節(jié)開關(guān),但是此時還只是在本地回路控制;而到了90年代,已經(jīng)可以基于無線專網(wǎng)的三遙監(jiān)控系統(tǒng),實(shí)現(xiàn)遠(yuǎn)程回路控制;最后再到現(xiàn)在,基于物聯(lián)網(wǎng)技術(shù)的智能化系統(tǒng),實(shí)現(xiàn)信息融合、智能場景和應(yīng)用拓展,從而實(shí)現(xiàn)智慧照明場景(如上圖)。
可以看到,智慧場景下的智慧路燈,搭載了許多智能設(shè)備,諸如監(jiān)控組件、LED屏幕、集中控制器、電動汽車充電樁等等,讓一盞路燈實(shí)現(xiàn)一個路面能實(shí)現(xiàn)的基本功能。
以上,就是一盞燈的智慧之路,在這個過程中,物聯(lián)網(wǎng)技術(shù)發(fā)揮了極大的作用,讓一個單定時控制的路燈,一步步具有多場景、多應(yīng)用的功能,最后演變?yōu)橹腔勐窡簟?/span>
而華為云IoT設(shè)備接入管理服務(wù),正是基于此技術(shù)。
華為云IoT設(shè)備接入管理服務(wù)介紹
首先,我們對物聯(lián)網(wǎng)要有一個正確的認(rèn)知:物聯(lián)網(wǎng)是由多個服務(wù)組成的,而非單一的服務(wù)。下圖是一個整體的物聯(lián)網(wǎng)解決方案。
在圖左側(cè),是設(shè)備,體現(xiàn)的是我們前面說到的:讓設(shè)備說話、讓設(shè)備時候同一種話、讓設(shè)備有說價值的話。那么,我們首先要讓這些設(shè)備能夠“被”感知到,在這個過程中,我們通過物聯(lián)網(wǎng)操作系統(tǒng)(LiteOS)或者SDK使能,使其智能化;然后感知到的東西以數(shù)據(jù)的形式通過網(wǎng)關(guān)、邊緣網(wǎng)關(guān)或者直連的方式上傳。具體要上傳到哪里呢?
考慮到設(shè)備的海量問題,我們需要有一個物聯(lián)網(wǎng)平臺。數(shù)據(jù)通過前面所說的方式上傳至物聯(lián)網(wǎng)平臺中的設(shè)備接入服務(wù)。在設(shè)備接入服務(wù),可以實(shí)現(xiàn)多網(wǎng)絡(luò)接入、多協(xié)議接入、設(shè)備影子等等多種功能;而在整體物聯(lián)網(wǎng)平臺上,還包括全球SIM連接、設(shè)備發(fā)放、數(shù)據(jù)分析等等服務(wù)。
在圖右側(cè),更能對接華為云的其他產(chǎn)品,諸如DIS/DCS/OBS等等,幫助客戶快速構(gòu)筑滿足客戶要求的物聯(lián)網(wǎng)應(yīng)用,如智慧城市、智慧園區(qū)、車聯(lián)網(wǎng)等等。
回歸到技術(shù)本身。我們前面聊到,不同的設(shè)備,都可以通過華為云設(shè)備接入服務(wù)接入,但實(shí)際上,他們的接入方式和接入?yún)f(xié)議都是不一樣的,那么華為云設(shè)備接入服務(wù)又是怎么屏蔽底端差異,實(shí)現(xiàn)設(shè)備接入的呢?
我們首先來看下面這張圖:
通訊模型:在華為云設(shè)備接入服務(wù)里,定義了“通訊模型”。同樣以我們之前說的嬰兒說話為例。人與人之間的溝通,雖然語言有很多種,但是表達(dá)的方式還是主要以聲音(說話)或者視覺(手語)為主。而物與物之間,同樣的,主要的內(nèi)容也主要是幾類:命令下發(fā)、命令相應(yīng)、屬性設(shè)備等等。
設(shè)備影子:而在此基礎(chǔ)之上,我們還有“設(shè)備影子”這一概念。物聯(lián)網(wǎng)平臺支持創(chuàng)建設(shè)備的“影子”。設(shè)備影子是一個JSON文件,用于存儲設(shè)備的在線狀態(tài)、設(shè)備最近一次上報(bào)的設(shè)備屬性值、應(yīng)用服務(wù)器期望下發(fā)的配置。每個設(shè)備有且只有一個設(shè)備影子,設(shè)備可以獲取和設(shè)置設(shè)備影子以此來同步設(shè)備屬性值,這個同步可以是影子同步給設(shè)備,也可以是設(shè)備同步給影子。
通用協(xié)議接入層:在具備“通訊模型”以后,我們需要把設(shè)備數(shù)據(jù)和通訊模型進(jìn)行關(guān)聯(lián),而進(jìn)行關(guān)聯(lián)的就是“通用協(xié)議接入層”。通過通訊協(xié)議接入層,我們可以將不同的協(xié)議類型(如MQTT/CoAP/TCP等等)上的不同數(shù)據(jù)轉(zhuǎn)化到通訊模型上。
編解碼處理:一款產(chǎn)品的設(shè)備上報(bào)數(shù)據(jù)時,如果“數(shù)據(jù)格式”為“二進(jìn)制碼流”,則該產(chǎn)品需要進(jìn)行編解碼插件開發(fā);如果“數(shù)據(jù)格式”為“JSON”,則該產(chǎn)品下不需要進(jìn)行編解碼插件開發(fā)。
以NB-IoT場景為例,NB-IoT設(shè)備和物聯(lián)網(wǎng)平臺之間采用CoAP協(xié)議通訊,CoAP消息的payload為應(yīng)用層數(shù)據(jù),應(yīng)用層數(shù)據(jù)的格式由設(shè)備自行定義。由于NB-IoT設(shè)備一般對省電要求較高,所以應(yīng)用層數(shù)據(jù)一般不采用流行的JSON格式,而是采用二進(jìn)制格式。但是,物聯(lián)網(wǎng)平臺與應(yīng)用側(cè)使用JSON格式進(jìn)行通信。因此,需要開發(fā)編碼插件,供物聯(lián)網(wǎng)平臺調(diào)用,以完成二進(jìn)制格式和JSON格式的轉(zhuǎn)換。
華為云IoT設(shè)備接入管理服務(wù)云化架構(gòu)解讀
IoT設(shè)備接入管理服務(wù)架構(gòu)
在講解整個框架之前,我們首先要明確的是,華為云IoT設(shè)備接入服務(wù)內(nèi)部,實(shí)際上是基于Cloud Native(云原生)的微服務(wù)的一個架構(gòu)。里面所有業(yè)務(wù)相關(guān)的服務(wù),都是無狀態(tài)的。無狀態(tài)的服務(wù)就意味著可以隨時被創(chuàng)建,也可以隨時被kill掉。
也就是說,即使任何一個服務(wù)實(shí)例出現(xiàn)問題,都可以通過創(chuàng)建服務(wù)來保證業(yè)務(wù)的無損。同時在海量并發(fā)的情況下,通過彈性的縮、擴(kuò)容,能夠使服務(wù)滿足對應(yīng)業(yè)務(wù)量的需求。
在基于無狀態(tài)服務(wù)的框架下,除了負(fù)載均衡層(目的是為了讓海量的設(shè)備能夠接入到服務(wù)中),上面可以分為兩層:
一層是CIG云通訊網(wǎng)關(guān)層,這一層實(shí)際上是將各種各樣的設(shè)備的不同的協(xié)議和不同的數(shù)據(jù)格式轉(zhuǎn)換成統(tǒng)一的模型;
另一層是連接&管理業(yè)務(wù)服務(wù):數(shù)據(jù)和協(xié)議轉(zhuǎn)換成統(tǒng)一的模型,流轉(zhuǎn)到這一層后,由業(yè)務(wù)服務(wù)來做處理,比如說消息流轉(zhuǎn)推送、設(shè)備影子、規(guī)則引擎服務(wù),以及任務(wù)管理服務(wù)等等。
更上層是公有云支撐管理服務(wù):通過公有云的支撐服務(wù),像CBC/IAM/SMN等等來整體構(gòu)建設(shè)備接入管理服務(wù)。
以上就是設(shè)備技術(shù)管理服務(wù)的一個大致的框架。通過此框架可以了解內(nèi)部的業(yè)務(wù)處理邏輯,有助于大家理解后續(xù)我們的沙箱實(shí)驗(yàn)體驗(yàn)。
產(chǎn)品模型(Profile)-統(tǒng)一的數(shù)據(jù)&通訊模型
產(chǎn)品模型,也就是常說的Profile,簡單來說也就是通信模型的映射。
上圖是如何將不同類型的數(shù)據(jù)映射到通訊模型上面的實(shí)例。
在圖左側(cè),有3個不同的表計(jì)。雖然它們都是水表,但是它們是由不同的廠家生產(chǎn)的,因此數(shù)據(jù)格式和協(xié)議也是不一樣的,那么我們該如何采集它們的數(shù)據(jù)形成統(tǒng)一的格式呢?
答案就是產(chǎn)品模型。通過產(chǎn)品模型里面不同的插件,可以將這些不同數(shù)據(jù)轉(zhuǎn)換成相同格式的數(shù)據(jù)。對設(shè)備廠商來說,無需修改設(shè)備代碼,通過插件即可適配不同企業(yè)的訴求,降低設(shè)備廠家的維護(hù)復(fù)雜度。而對上層應(yīng)用來說,降低了上層應(yīng)用對設(shè)備管理復(fù)雜度,通過在平臺規(guī)整不同廠家的數(shù)據(jù),形成統(tǒng)一的Profile,上層應(yīng)用無需感知不同設(shè)備的差異
接下來再看規(guī)則引擎。規(guī)則引擎是華為云IoT設(shè)備接入服務(wù)特有的能力,通過規(guī)則引擎可以實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn)和設(shè)備聯(lián)動。無縫與公有云其他服務(wù)對接,實(shí)現(xiàn)設(shè)備數(shù)據(jù)按需流轉(zhuǎn)和處理;
而設(shè)備聯(lián)動,也是基于規(guī)則引擎來實(shí)現(xiàn)的,由條件觸發(fā),基于預(yù)置規(guī)則,引發(fā)多設(shè)備協(xié)同反應(yīng),如提醒、告警、狀態(tài)報(bào)告等等。
華為云IoT智慧路燈沙箱實(shí)驗(yàn)演示
在介紹完華為云IoT設(shè)備接入管理服務(wù)之后,接下來然后就帶大家了解一下相關(guān)的沙箱實(shí)驗(yàn)。
沙箱實(shí)驗(yàn)介紹
智慧路燈沙箱實(shí)驗(yàn)組網(wǎng)結(jié)構(gòu)如上。為了方便大家在線完成路等試驗(yàn),我們需要有一個虛擬設(shè)備,在此我們使用的是設(shè)備模擬器。設(shè)備接入平臺,上報(bào)屬性,然后接收平臺下發(fā)的命令。而在平臺上層,有一個基于華為云軟開云的應(yīng)用層的實(shí)現(xiàn)。大致步驟如下:
1、通過華為云軟件開發(fā)平臺構(gòu)建一個路燈的模擬應(yīng)用(真實(shí)的應(yīng)用可以參考其構(gòu)建的方法);
2、申請ECS云服務(wù),將構(gòu)建的應(yīng)用部署于ECS上,通過EIP對接IoT設(shè)備接入服務(wù),并進(jìn)行訂閱通知;
3、在實(shí)驗(yàn)桌面運(yùn)行MQTT模擬器,模擬路燈設(shè)備的行為
設(shè)備模擬器
在正式開始之前,我們先看一下設(shè)備模擬器(如下圖)。
連接參數(shù)配置區(qū):
設(shè)備模擬器打開之后,打開“MQTT設(shè)備模擬器”頁簽。在“連接參數(shù)配置區(qū)”需要指定進(jìn)入平臺的地址信息,拿到“注冊設(shè)備成功”或者設(shè)備ID和設(shè)備密鑰,并與平臺建立連接;
消息上報(bào)區(qū):
與平臺建立連接之后,設(shè)備上報(bào)數(shù)據(jù)到平臺。下面有“消息上報(bào)區(qū)”,可以在指定設(shè)備上報(bào)屬性的topic之后,在下面將jason格式數(shù)據(jù)粘貼進(jìn)來,并進(jìn)行上報(bào);
日志打印區(qū):
右側(cè)是一個類似消息跟蹤的日志打印區(qū)域,在此可以看到消息上報(bào)的消息記錄,包括平臺的下發(fā)的命令,也會在這里做一個打印跟蹤。
Topic訂閱區(qū):
Topic訂閱區(qū)是另一個頁簽。設(shè)備需要訂閱平臺下發(fā)命令的相關(guān)topic的時候,就可以在這里指定topic進(jìn)行訂閱。
應(yīng)用實(shí)現(xiàn)-API介紹
在實(shí)驗(yàn)桌面里面,創(chuàng)建代碼倉庫之后,可以查看詳細(xì)的源文件。而比較典型的幾個源文件的實(shí)現(xiàn),是對應(yīng)用側(cè)API的實(shí)現(xiàn),比如:
創(chuàng)建設(shè)備API:
src/main/java/com/huawei/service/RegisterDirectConnectedDevice.java
創(chuàng)建訂閱API:
src/main/java/com/huawei/service/SubscribeDataChg.java
下發(fā)設(shè)備命令A(yù)PI:
src/main/java/com/huawei/service/CreateDeviceCommand.java
基于這些源文件的樣例代碼,開發(fā)人員可以再基于自己的思路,做定制化開發(fā)。
前臺web頁面布局的關(guān)鍵文件,就是一個index的html的源文件,加一個 js腳本:
頁面布局:
src/main/resources/static/index.html
腳本文件:
src/main/resources/static/js/common.js
智慧路燈沙箱實(shí)驗(yàn)實(shí)操步驟
智慧路燈沙箱實(shí)驗(yàn),分為7步:
1、編譯構(gòu)建智慧路燈應(yīng)用DevCloud
2、創(chuàng)建主題并訂閱SMN
3、創(chuàng)建彈性云服務(wù)器ECS
4、部署智慧路燈應(yīng)用DevCloud
5、導(dǎo)入產(chǎn)品模型IoTDA
6、配置智慧路燈應(yīng)用Web
7、結(jié)果驗(yàn)證
開發(fā)者在登錄華為云賬號,進(jìn)入沙箱實(shí)驗(yàn)之后,會有上圖頁面:
左上角呈現(xiàn)實(shí)驗(yàn)賬號,開發(fā)者拿這個實(shí)驗(yàn)賬號在實(shí)驗(yàn)桌面里面通過firefox瀏覽器登錄華為云,并通過控制臺進(jìn)入到各個服務(wù)。
賬號下有 step by step的實(shí)驗(yàn)步驟指導(dǎo),按照步驟操作即可。
右上角有一個完成進(jìn)度顯示,實(shí)時刷新,可以得到進(jìn)度顯示和實(shí)驗(yàn)倒計(jì)時。
在左側(cè)部分,有一些相關(guān)的命令執(zhí)行,可以方便大家執(zhí)行的時候快速拷貝。
由于時間限制,我們省略前面簡單的1~4步,從第5步然后創(chuàng)建產(chǎn)品開始,正常后面的正式實(shí)驗(yàn)過程中。
PS:前面1~4步過程中需要注意的事項(xiàng)是在創(chuàng)建主題并訂閱的時候,平臺會發(fā)送一個確認(rèn)的短信到用戶手機(jī)上,用戶需要查看短信,點(diǎn)擊里面的鏈接,確認(rèn)之后才能完成實(shí)際的訂閱。
接下來,我們正式進(jìn)入實(shí)驗(yàn)操作:
5、導(dǎo)入產(chǎn)品模型:
5.1創(chuàng)建產(chǎn)品
在華為云控制臺,展開左側(cè)導(dǎo)航,選擇“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,如下圖所示:
在左側(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)”完成上傳。
6、配置智慧路燈應(yīng)用(訂閱推送方案)
6.1訪問智慧路燈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:“控制臺”->“服務(wù)列表”->“計(jì)算”->“彈性云服務(wù)器ECS”進(jìn)入服務(wù)器列表,進(jìn)行查看并復(fù)制彈性公網(wǎng)IP。
③主題URN:“控制臺”->“服務(wù)列表”->“管理與監(jiān)管”->“消息通知服務(wù)SMN”進(jìn)入主題列表,進(jìn)行查看并復(fù)制主題URN。
④APPID:“控制臺”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“資源空間”,復(fù)制獲取產(chǎn)品所需的“APPID”。
⑤賬號名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)賬號名。
⑥IAM用戶名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)用戶名。
⑦IAM用戶密碼:系統(tǒng)為您分配的華為云實(shí)驗(yàn)密碼。
⑧項(xiàng)目ID:控制臺在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復(fù)制獲取所屬區(qū)域?yàn)椤叭A北-北京四”的項(xiàng)目ID。
⑨產(chǎn)品ID:“控制臺”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“產(chǎn)品”,復(fù)制獲取產(chǎn)品所需的“產(chǎn)品ID”。
填寫完成后點(diǎn)擊“確定”,彈窗提示如下,表示參數(shù)設(shè)置成功。
6.3注冊設(shè)備
輸入設(shè)備標(biāo)識(自定義,如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)識碼進(jìn)入,查看設(shè)備Id,或修改密鑰。
7、結(jié)果驗(yàn)證(設(shè)備屬性上報(bào)/訂閱/設(shè)備命令下發(fā))
7.1模擬器與平臺建立連接
7.1.1打開MQTT設(shè)備模擬器
在實(shí)驗(yàn)桌面雙擊“Xfce終端”打開Terminal,執(zhí)行以下命令打開設(shè)備接入模擬器(HubSimulator.jar),然后切換到MQTT設(shè)備模擬器頁簽。
7.1.2建立連接
在MQTT設(shè)備模擬器頁簽下,填寫參數(shù)如下:
①服務(wù)IP:進(jìn)入“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)欄選擇“總覽”,點(diǎn)擊“平臺接入地址”。
復(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)平臺正常通信,若無法正常通信,請更換主機(jī)的網(wǎng)絡(luò)環(huán)境。
7.1.3查看設(shè)備狀態(tài)
回到物聯(lián)網(wǎng)所有設(shè)備列表( “服務(wù)列表”->“物聯(lián)網(wǎng)”->“設(shè)備”→“所有設(shè)備”),設(shè)備狀態(tài)變更為“在線”,如下圖所示:
7.2模擬器設(shè)備屬性上報(bào)
7.2.1模擬器發(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)建議為OFF。
在模擬器窗口中的消息編輯欄中輸入以下代碼:
{"services":[{"service_id":"Sensor","properties":{"luminance":"200","light_state":"OFF"}}]}
發(fā)送消息成功后,右側(cè)日志顯示信息推送成功(圖片僅為示意,請以實(shí)際上報(bào)數(shù)據(jù)為準(zhǔn))。
7.2.2查看應(yīng)用界面變化
返回智慧路燈Web界面,此時顯示“環(huán)境亮度”為200LUX,“燈狀態(tài)”為關(guān)。
注意:模擬器與Web頁面之間會有短暫延遲,不用刷新頁面,幾秒鐘后可發(fā)現(xiàn)頁面會隨之變化!
7.3模擬器訂閱Topic
切換到“訂閱Topic”頁簽,并在Topic欄中輸入以下代碼:
$oc/devices/{device_id}/sys/commands/#,其中的{device_id}需要替換成實(shí)際設(shè)備ID。
輸入完畢后,點(diǎn)擊“訂閱”按鈕可完成訂閱。
$oc/devices/{device_id}/sys/commands/#
訂閱成功后,右側(cè)日志顯示訂閱Topic成功。
7.4平臺下發(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ù)后臺會實(shí)時下發(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ā)實(shí)時命令下發(fā)。
7.4.2命令接收
因?yàn)楫?dāng)前“燈狀態(tài)”為關(guān),“開關(guān)選擇”為開,查看模擬器日志區(qū)域,會收到一條開燈命令。(payload的值經(jīng)過base64加密,解密后即可得到命令內(nèi)容)。
7.4.3模擬器發(fā)送消息,上報(bào)變更后的設(shè)備屬性。
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實(shí)際設(shè)備ID。
②消息內(nèi)容:
其中,光感強(qiáng)度可自定義,燈狀態(tài)建議為ON。
{"services":[{"service_id":"Sensor","properties":{"luminance":"110","light_state":"ON"}}]}
7.4.4查看應(yīng)用界面變化
如下圖所示,應(yīng)該顯示“環(huán)境亮度”為110LUX,“燈狀態(tài)”為開。
7.4.5短信/郵件通知
在模擬器上單擊“斷開連接”后,重復(fù)7.4.1,“路燈控制”選擇“終端聯(lián)控模式”,開關(guān)選擇“關(guān)”,單擊“設(shè)置”。
因?yàn)闊魻顟B(tài)為“開”,開關(guān)選擇為“關(guān)”,服務(wù)后臺會實(shí)時下發(fā)一條關(guān)燈命令;而設(shè)備處于離線狀態(tài),導(dǎo)致命令下發(fā)失敗。
此時,系統(tǒng)會發(fā)送短信/郵件通知告知訂閱用戶命令下發(fā)失??;通知內(nèi)容為命令下發(fā)失敗的錯誤信息。
通知示例:【華為云】錯誤信息:{"error_code":"IOTDA.014016","error_msg":"Operationnot 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)。
7.5.2模擬器接收反應(yīng)
因?yàn)楫?dāng)前“環(huán)境亮度”為110LUX,“燈狀態(tài)”為開,查看模擬器日志區(qū)域,應(yīng)該會收到關(guān)燈命令。
①若當(dāng)前“環(huán)境亮度”大于“亮度閾值”,且“燈狀態(tài)”為“開”,服務(wù)后臺會實(shí)時下發(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ā)實(shí)時命令下發(fā)。
7.5.3模擬器發(fā)送消息,上報(bào)變更后的設(shè)備屬性。
①Topic:$oc/devices/{device_id}/sys/properties/report,其中的{device_id}需要替換成實(shí)際設(shè)備ID。
②消息內(nèi)容:
其中,光感強(qiáng)度<100,燈狀態(tài)為OFF。
{"services":[{"service_id":"Sensor","properties":{"luminance":"80","light_state":"OFF"}}]}
7.5.4查看Web界面
返回智慧路燈Web界面,單擊“設(shè)置”,查看模擬器日志區(qū)域,會收到一條開燈命令。
8、刪除資源
8.1 刪除彈性云服務(wù)器 ECS
在華為云控制臺,選擇“服務(wù)列表”-> “計(jì)算”->“彈性云服務(wù)器 ECS”進(jìn)入,勾選待刪除ECS服務(wù)器,如ecs-iot,選擇“更多 > 刪除”,在彈窗中請勾選刪除彈性公網(wǎng)IP和數(shù)據(jù)盤后,點(diǎn)擊“是”完成刪除。
8.2 刪除設(shè)備接入服務(wù) IoTDA
在華為云控制臺,選擇“服務(wù)列表”->“物聯(lián)網(wǎng)”->“設(shè)備”→“所有設(shè)備”進(jìn)入所有設(shè)備列表,根據(jù)設(shè)備標(biāo)識碼刪除設(shè)備,如123456789f。然后在左側(cè)欄選擇“產(chǎn)品”,刪除產(chǎn)品,如StreetLight。
8.3刪除桌面下載的資源包
桌面雙擊“Xfce終端”打開Terminal,輸入以下命令下載刪除“HubSimulator.jar”文件。
cd Desktop/
rm HubSimulator.jar
接下來刪除“SmartStreetLight.zip”壓縮包。命令如下:
rm SmartStreetLight.zip
至此實(shí)驗(yàn)體驗(yàn)完畢。
總結(jié)
華為云設(shè)備接入服務(wù)(IoT Device Access)是華為云的物聯(lián)網(wǎng)平臺,提供海量設(shè)備連接上云、設(shè)備和云端雙向消息通信、批量設(shè)備管理、遠(yuǎn)程控制和監(jiān)控、OTA升級、設(shè)備聯(lián)動規(guī)則等能力,并可將設(shè)備數(shù)據(jù)靈活流轉(zhuǎn)到華為云其他服務(wù),幫助物聯(lián)網(wǎng)行業(yè)用戶快速完成設(shè)備聯(lián)網(wǎng)及行業(yè)應(yīng)用集成。全新升級后的設(shè)備接入服務(wù)IoTDA,整合了原設(shè)備接入服務(wù)和設(shè)備管理服務(wù)的功能。
感興趣就來一起體驗(yàn)一下吧~ 設(shè)備接入_IoTDA_IoT_物聯(lián)網(wǎng)IoT平臺-華為云
點(diǎn)擊關(guān)注,第一時間了解華為云新鮮技術(shù)~華為云博客_大數(shù)據(jù)博客_AI博客_云計(jì)算博客_開發(fā)者中心-華為云