【IoT Openlab】一個小CASE:IoT解決方案端到端體驗指南(包含IoTDA+IoTA+DIS)
本文的word版參看附件。
本博客閱讀前建議先食用《一個圍繞數據分析服務端到端解決方案的體驗》。
1.?? 聲明
本demo需要購買DIS,按照最小規格(0.1元/時),預計需要1~2個小時。
在執行前建議先申請IoTA公測資格。
2.?? 場景說明
基于上文給出的解決方案,構造實現以下場景:
在一個園區的若干個庫房各有一個傳感器,傳感器定時上報一批數據,數據中包含溫度數據,溫度數據中有異常數據。行業應用對溫度數據獲取到后進行顯示。現在集成華為云IoT平臺,要求數據經過IoT云服務時,能夠過濾掉異常數據和非溫度數據,并且如果設備在一定時間段內上報了重復溫度數據,則IoT云服務能夠過濾掉重復數據而不將其傳遞給行業應用。
按照上文中的解決方案,首先設備的數據會被上報到IoTDA,然后數據被轉發到IoTA,經過分析處理后,能夠通過DIS上報到行業應用中。
如果步驟已完成可以跳過。
3.?? 集成設備接入服務(IoTDA)
step 0、? 申請華為云賬戶和開通IoTDA云服務
step 1、? 創建資源空間
1)???????? 登錄華為云官方網站,訪問設備接入服務。
2)???????? 單擊“立即使用”進入設備接入控制臺。
3)???????? 在左側導航欄,單擊“產品”,單擊右上角下拉框,選擇新建產品所屬的資源空間。如無對應的資源空間,請創建資源空間。這里我們創建個名為IoT_test的資源空間
step 2、? 創建產品模型
1)???????? 單擊右上角的“創建產品”,在彈出的頁面中,填寫“產品名稱”、“廠商名稱”、“設備類型”等信息,選擇“協議類型”、“數據格式”后,點擊右下角“立即創建”。
2)???????? “數據格式”配置為“JSON”時,該產品下不需要進行編解碼插件開發。
3)???????? 使用模型定義設備功能:不勾選
4)???????? 點擊右下角的立即創建即可成功創建產品
5)???????? 選擇創建的產品,單擊“詳情”進入產品詳情頁面。
6)???????? 在產品詳情功能定義頁面選擇“自定義模型”。
7)???????? 進入產品模型開發,填寫服務類型和描述,也就是service ID,
8)???????? 點擊添加屬性,填寫屬性名稱,如圖所示
step 3、? 創建設備
1)? 進入“在線測試”板塊點擊“新增測試設備”,填寫相應的信息。如圖所示
生成的設備ID(即deviceId)和設備密鑰(即secret)請保存,下文設備上線需要使用。
2)? 設備創建成功后可以在設備列表中看到所創建的設備,此時設備處于未激活狀態,只有設備與平臺建鏈后才能激活設備
step 4、? 設備上線
我們使用MQTT.fx來模擬設備。
1)???????? 下載MQTT.fx,安裝最新版本的MQTT.fx工具(也可直接下載附件); 下載連接信息生成工具,運行“MqttClientIdGenerator.jar”,然后將設備ID(即deviceId)和設備密鑰(即secret)分別填入deviceId和deviceSecret,生成連接信息(clientId、username、password),復制保存。
2)???????? 保存生成的連接信息,打開MQTT.fx ; 單擊設置圖標,填寫物聯網平臺MQTT設備接入地址,并配置鑒權參數。
圖中參數如下(如圖可按照圖中填寫)
參數名
參數值
說明
ProfileName
任意值
如圖
ProfileType
MQTT ? Broker
如圖
Broker ? Address
iot-mqtts.cn-north-4.myhuaweicloud.com
MQTT協議
Broker ? Port
1883
MQTT1883|MQTTS ? 8883
Client ? ID
/
上文連接工具生成的clientId
User Name
/
上文連接工具生成的username
Password
/
上文連接工具生成的password
3)???????? 參數配置完成之后點擊窗口上方藍色按鈕連接(Connect),連接成功之后可以在IoTDA的頁面看到設備列表中設備的狀態為在線,然后可通過設備模擬器上報數據了。設備上報的Topic可以通過華為云_設備接入進行詳細查看。
step 5、? 試測設備上報數據
參數名
參數值
說明
Topic
$oc/devices/{device_id}/sys/properties/report
如下,替換設備id
內容
{
"services": [{
"service_id": ? "DemoService",
"properties": {
"temperature": 54.2,
"humidity":40
},
"event_time": ? "20151012T121213Z"
}
]
}
如圖,按照格式發送消息
1)???????? 上報設備的屬性消息。Topic為$oc/devices/{device_id}/sys/properties/report,這里的device_id需要替換成設備ID。配置完成后點擊藍色按鈕“Publish”
2)???????? 打開IoTDA的Console頁面,可以看到上報的數據。
4.?? 購買DIS
DIS主要是對數據傳輸所需要的基礎設置、存儲、網絡和配置進行管理。在IoT流程中的最終輸出結果一般都會通過dis的管道輸出到與其對接的上層應用中,因此在demo體驗中我們通過消費dis的數據去查看數據分析的結果更能真實的感受實際場景。按照如下步驟操作。
進入dis的控制臺,點擊“購買接入通道”,進入購買界面
填寫管道名稱,數據類型根據需要選擇,這里我們使用json格式方便瀏覽查看
注:管道名稱會在下文IoTA配置中使用
立即購買后,給出通道的詳情,確認無誤后點擊提交。
提交成功之后會提示開始創建接入通道
返回列表之后可以看到剛剛創建的接入通道正在運行之中
5.?? 使用數據分析服務(IoTDA)
step 0、? 申請開通IoTA
請前往網站申請,公測期間可以通過提工單申請。
step 1、? 配置數據源
1)?????? 進入數據源模塊中,授權IoTDA服務,才能將設備上報的數據同步。并且確保我們創建的產品在共享的實例中。
2)?????? 配置DIS數據源,進入實時數據源,點擊“添加數據源”,按照下列表格填寫完成后點擊連接測試按鈕,提示連接成功后點擊確定為配置成功
參數名
參數值
說明
數據源名稱
dis-demo
建議與開通的DIS通道名稱相同
項目ID
/
賬戶的projectID,在華為云賬戶“我的憑證”處獲取
通道名稱
dis-demo
上文配置的DIS通道名稱
AK
/
賬戶的AK信息,在華為云賬戶“我的憑證”處獲取
SK
/
賬戶的SK信息,在華為云賬戶“我的憑證”處獲取
step 2、? 配置數據管道
1)?????? 進入數據分析的數據管道模塊,點擊“創建數據管道”,填寫對應的參數值,數據源選擇綁定的DMP,就可以獲取設備接入服務的數據。
2)?????? 右鍵點擊IoT設備接入數據源控件按鈕,創建產品過濾,填寫在設備接入模塊的資源空間ID和產品ID,輸出位置就會展現出設備的產品模型。
3)?????? 右鍵添加數據存儲輸出,填寫對應參數值,存儲組選用“IoTDA 設備存儲”;填寫“存儲名稱”以及對應的“設備id”值為header.device_id,屬性值使用JSONPath語法;格式如下:
body.services[?(@.service_id=='DemoService')].properties.temperature
這里只配置temperature用以說明管道的清洗功能作用,實際場景下可以根據實際需要過濾掉設備上報數據中的不需要分析的字段。這段配置就可以通過管道的清洗功能,清洗掉設備上報humidity字段。
4)?????? 配置完成后啟動作業,選擇“獨享資源”進行作業的運行。
step 3、? 建立資產模型
資產模型可以反映園區、庫房、設備之間的關系,請參看場景說明。
1)?????? 進入資產模型模塊,點擊“新建視圖”按鈕,填寫“視圖名稱”以及“描述”,確認之后進入視圖。
2)?????? 按照IoTA數據分析云服務要求,每一個視圖中資產關系是樹狀結構,必須具備一個根節點資產。新建的視圖,默認會生成一個根資產,如上圖所示的“未命名資產”。
將“未命名資產”名稱修改為“root”,方便理解。
3)?????? 點擊root資產,右鍵點擊“添加子資產”,創建1號園區資產“compus001”。資產分類填寫為compus
4)?????? 修改資產名稱為“compus001”,添加資產分類“compus”
5)?????? 以相同方式在compus001下創建warehouse001、warehouse002、warehouse003資產,表示該園區下部署有001、002、003號機房,其中001號機房下面有001號傳感器。
6)?????? sensor001資產匹配真實的傳感器設備,需要具備IoT數據采集功能以及原始數據清洗轉換功能, IoT數據采集和數據清洗、計算、轉換功能由IoTA數據分析服務資產建模中的“測點”實現。“測點”分為“實測點”和“虛測點”。
實測點
測點數據主要來源于靜態配置數據或是動態數據源,動態數據源可對應實際的物聯網設備,通過數據源映射,將您業務系統中實際存在的物聯網設備、與資產模型中的實測點進行綁定。
虛測點
虛測點有多種計算任務類型,當前版本支持事件型、實時分析型2種類型。
給sensor001資產創建實測點。點擊sensor001資產,右鍵選擇“添加測點”。
修改實測點名稱為“sensor001數據采集”便于理解,配置測點詳情,包括測點分類,選擇數據格式等。其中,測點類型選擇“實測點”,測點分類新增類型“receiverDataCollector”。
7)?????? 點擊添加數據源映射,按照之前創建的產品和設備,選擇對應名稱選項填寫測點綁定的設備信息,用戶接受設備上報數據,確認后沒有警示號說明配置成功
8)?????? 信息填寫完成之后,點擊發布視圖,發布成功后表示視圖編輯完成
step 4、? 構建實時分析算法
1)?????? 進入分析任務板塊,點擊實時分析,新建算子作業
2)?????? 點擊算子,算子進入算子編排,拖拽“IoT資產輸入”算子到作業工作臺畫布,其中視圖配置選擇對應視圖,視圖就是之前資產建模中的名稱,配置好對應的視圖,視圖中的設備信息數據就會流向對應的算法中進行數據處理。
3)?????? 拖拽“數據扁平”算子到工作臺,上游算子為“IoT資產輸入”。“字段名稱”配置為temperature,類型為double,路徑為value
4)?????? 拖拽“數據過濾”算子到工作臺,配置數值為_NULL,符合為NOT_EQUAL
5)?????? 拖拽“數據去重”算子到工作臺,配置分區字段為“temperature”和“assetId”;抑制字段為“temperature”,抑制周期為600。
抑制周期就是上文中場景“如果設備在一定時間段內上報了重復溫度數據”中的時間段。如果設置為使用事件時間,則根據設備上報數據的eventTime字段進行抑制
6)?????? 拖拽“數據選擇”算子,選擇字段點擊全部的字段
7)?????? 拖拽“dis輸出”算子,配置好dis的名稱。
8)?????? 完成配置后點擊右上角的保存,并啟動作業,配置沒有問題提示作業啟動成功。
6.?? 行業應用開發
連接dis的接入管道,可以用我們提供的java版的demo,其他語言可以自己參考華為云服務dis的幫助文檔內容。詳細操作流程以及參數可以查看demo中的README。
見附件dis_demo.zip
7.?? 聯調調測
step 1、? 啟動行業應用demo
根據自己賬戶的信息配置好demo應用服務,啟動demo項目應用
step 2、? 設備模擬器數據上報
1)?????? 通過模擬器多條上報數據,模擬實際設備的數據上報,詳細上報數據見附件提供的模擬數據,如圖。
上報數據的參看附件IoT_test設備數據.txt
step 3、? 查看行業應用輸出
1)?????? 使用dis的demo,通道名稱以及信息改為自己賬戶的配置,消費如下,發現經過算子處理數據去除了重復數據和空數據。
2)?????? 通過資產模型的監控也可以看到最新上報的數據
8.?? 資源清理
刪除購買的DIS
進入dis的列表,點擊刪除按鈕即可刪除dis管道
附件: IoT_test設備數據.txt 3.47KB 下載次數:5次
附件: dis_demo.zip 5.31KB 下載次數:5次
附件: IoT解決方案端到端體驗指南(包含IoTDA+IoTA+DIS).docx 3.49MB 下載次數:5次
設備接入 IoTDA IoT數據分析 IoTA
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。