?此賬號為華為云開發(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):

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

階段一:讓“物”說話。

正如嬰兒要融入世界,需要會說話一樣,我們的“物”也需要能夠與外界交流。感知物理世界,變成數(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ā)展史:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

從五六十年代的時間控制器+本地回路控制,定時開關(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)解決方案。

以小窺大,從一盞路燈看億萬物聯(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è)備接入的呢?

我們首先來看下面這張圖:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

通訊模型:在華為云設(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)換。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

華為云IoT設(shè)備接入管理服務(wù)云化架構(gòu)解讀

IoT設(shè)備接入管理服務(wù)架構(gòu)

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

在講解整個框架之前,我們首先要明確的是,華為云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,簡單來說也就是通信模型的映射。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

上圖是如何將不同類型的數(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è)備的差異

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

接下來再看規(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)介紹

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

智慧路燈沙箱實(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è)備模擬器(如下圖)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

連接參數(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)證

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

開發(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”,如下圖所示:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

在左側(cè)欄中選擇“產(chǎn)品”,點(diǎn)擊“創(chuàng)建產(chǎn)品”,參數(shù)如下:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

①所屬資源空間:
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”信息,并查看“詳情”。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

5.2上傳模型文件

點(diǎn)擊創(chuàng)建的產(chǎn)品進(jìn)入詳情,然后點(diǎn)擊“上傳模型文件”,選擇SmartStreetLight.zip文件,點(diǎn)擊“確認(rèn)”完成上傳。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

③主題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”。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

⑤賬號名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)賬號名。

⑥IAM用戶名:系統(tǒng)為您分配的華為云實(shí)驗(yàn)用戶名。

⑦IAM用戶密碼:系統(tǒng)為您分配的華為云實(shí)驗(yàn)密碼。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

⑧項(xiàng)目ID:控制臺在右上角用戶名下拉框中選擇“我的憑證->API憑證”頁面復(fù)制獲取所屬區(qū)域?yàn)椤叭A北-北京四”的項(xiàng)目ID。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

⑨產(chǎn)品ID:“控制臺”->“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)導(dǎo)航欄選擇“產(chǎn)品”,復(fù)制獲取產(chǎn)品所需的“產(chǎn)品ID”。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

填寫完成后點(diǎn)擊“確定”,彈窗提示如下,表示參數(shù)設(shè)置成功。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

6.3注冊設(shè)備

輸入設(shè)備標(biāo)識(自定義,如123456789f),點(diǎn)擊“注冊設(shè)備”。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

彈窗提示如下,表示注冊設(shè)備成功。請記錄“設(shè)備Id”和“密鑰”信息,用于后續(xù)驗(yàn)證。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

注意:請記錄設(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è)備模擬器頁簽。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

7.1.2建立連接

在MQTT設(shè)備模擬器頁簽下,填寫參數(shù)如下:

①服務(wù)IP:進(jìn)入“服務(wù)列表”-> “物聯(lián)網(wǎng)”->“設(shè)備接入IoTDA”,在左側(cè)欄選擇“總覽”,點(diǎn)擊“平臺接入地址”。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

復(fù)制使用MQTT/MQTTS接入信息的域名。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

②設(shè)備ID:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的設(shè)備Id

③設(shè)備密鑰:配置智慧路燈應(yīng)用,注冊設(shè)備成功后返回的密鑰

配置好以上參數(shù)后,點(diǎn)擊“建立連接”按鈕。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

建立連接成功后,右側(cè)日志顯示MQTT服務(wù)連接成功,如下圖所示:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

若無法建立連接,請打開“命令提示符”窗口,輸入“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)變更為“在線”,如下圖所示:

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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"}}]}

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

發(fā)送消息成功后,右側(cè)日志顯示信息推送成功(圖片僅為示意,請以實(shí)際上報(bào)數(shù)據(jù)為準(zhǔn))。

7.2.2查看應(yīng)用界面變化

返回智慧路燈Web界面,此時顯示“環(huán)境亮度”為200LUX,“燈狀態(tài)”為關(guān)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

注意:模擬器與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/#

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

訂閱成功后,右側(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ā)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

7.4.2命令接收

因?yàn)楫?dāng)前“燈狀態(tài)”為關(guān),“開關(guān)選擇”為開,查看模擬器日志區(qū)域,會收到一條開燈命令。(payload的值經(jīng)過base64加密,解密后即可得到命令內(nèi)容)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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)”為開。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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ā)。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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ū)域,會收到一條開燈命令。

以小窺大,從一盞路燈看億萬物聯(lián)網(wǎng)之路

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ā)者中心-華為云