物聯(lián)網(wǎng)系統(tǒng)如何提供智慧物業(yè)解決方案?">無線物聯(lián)網(wǎng)系統(tǒng)如何提供智慧物業(yè)解決方案?
1060
2025-03-31
場景簡介
通過收集自動售貨機系統(tǒng)的銷售數(shù)據(jù),EI數(shù)據(jù)分析售貨銷量狀況。
該場景主要描述的是設備可以通過MQTT協(xié)議與物聯(lián)網(wǎng)平臺進行交互,應用側(cè)可以到物聯(lián)網(wǎng)平臺訂閱設備側(cè)變化的通知,用戶可以在控制臺或通過應用側(cè)接口創(chuàng)建數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則,把設備上報的屬性轉(zhuǎn)發(fā)給其他華為云服務。
核心知識點:產(chǎn)品模型、編輯碼插件、訂閱推送、屬性上報、MQTT協(xié)議、數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則。
場景流程
流程解釋:
1、創(chuàng)建自動售貨機產(chǎn)品:物聯(lián)網(wǎng)平臺以產(chǎn)品為粒度管理批量設備。用戶可以通過平臺提供的API接口或控制臺創(chuàng)建產(chǎn)品。
2、上傳產(chǎn)品模型:產(chǎn)品模型是定義一種設備的基本屬性和命令。產(chǎn)品模型可以通過控制臺,也可以導入公共產(chǎn)品庫的模型。該場景沒有編解碼插件,是因為設備是基于安卓操作系統(tǒng)開發(fā)的,能夠通過MQTT協(xié)議與平臺進行交互。
3、批量注冊自動售貨機設備:平臺提供了應用側(cè)API接口可以注冊設備,也可以通過控制臺批量注冊。注冊設備時獲取的設備ID,是設備側(cè)與平臺交互的唯一標識。
4、創(chuàng)建自動售貨機設備狀態(tài)變化的訂閱:售貨管理系統(tǒng)可以在平臺創(chuàng)建設備變化的通知訂閱,需要把callback url即應用回調(diào)地址傳給平臺,平臺后續(xù)會推送通知到該url。
5、設備建鏈:MQTT設備是指通過MQTT協(xié)議,不論是集成了華為IoT Device SDK,還是原生MQTT協(xié)議接入,只要是json數(shù)據(jù)格式傳輸給平臺,平臺就無需使用編解碼插件。如果是二進制上傳,則需要先做編解碼插件的開發(fā)。MQTT是長連接,需要先建鏈才能進行數(shù)據(jù)傳輸,可以通過安全加密方式8883端口接入(推薦),也可以通過非安全加密方式1883端口接入。
6、推送自動售貨機設備激活通知:平臺會根據(jù)之前應用訂閱的回調(diào)地址,把自動售貨機設備上線的通知類型通過HTTP/HTTPS推送回去。
7、創(chuàng)建數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則:售貨管理系統(tǒng)可以通過API接口創(chuàng)建規(guī)則,也可以通過控制臺創(chuàng)建,指定過濾指定的屬性,給指定的通道轉(zhuǎn)發(fā)數(shù)據(jù)。
8、開通DIS通道/MRS服務:華為公有云上有豐富的SaaS服務和PaaS服務,供您結合自己的業(yè)務需要進行組合使用。DIS服務提供高效采集、傳輸、分發(fā)能力,支持多種IoT協(xié)議,可以開通該服務,通過IoTDA規(guī)則引擎,把自動售貨機設備的數(shù)據(jù)轉(zhuǎn)發(fā)給DIS,然后再利用諸如MRS服務,實現(xiàn)自動售貨銷量狀況數(shù)據(jù)分析。
9、自動售貨機屬性上報:設備側(cè)可以通過SDK或MQTT原生協(xié)議接入平臺,屬性上報銷售信息。這里值得注意的是,設備側(cè)上報的數(shù)據(jù),是通過屬性上報,與消息上報最大的區(qū)別在于是否經(jīng)過產(chǎn)品模型。屬性上報的內(nèi)容與格式都要跟產(chǎn)品模型定義保持一致。具體概念介紹可以參閱“物模型”。
10、按規(guī)則數(shù)據(jù)轉(zhuǎn)發(fā):平臺收到設備上報的屬性后,規(guī)則引擎會進行過濾(不論屬性還是消息,平臺都會做規(guī)則過濾),把設定好的屬性值轉(zhuǎn)發(fā)到指定的DIS通道,然后再通過DIS的接口,由MRS去消費DIS的數(shù)據(jù),實現(xiàn)對銷量的分析。
最佳實踐
場景說明
物聯(lián)網(wǎng)解決方案中,作為數(shù)據(jù)主體的“物”可能數(shù)量會非常大,產(chǎn)生的數(shù)據(jù)已經(jīng)無法通過傳統(tǒng)的數(shù)據(jù)處理服務進行處理。如何分析與利用這龐大的物聯(lián)網(wǎng)設備數(shù)據(jù)對物聯(lián)網(wǎng)企業(yè)來說又是一個新的挑戰(zhàn)。
華為云物聯(lián)網(wǎng)平臺提供規(guī)則引擎能力,支持將數(shù)據(jù)上報的數(shù)據(jù)轉(zhuǎn)發(fā)至華為云其他云服務,可實現(xiàn)將海量數(shù)據(jù)通過數(shù)據(jù)接入服務(DIS)轉(zhuǎn)發(fā)至MapReduce服務(MRS),對數(shù)據(jù)進行處理后再由數(shù)據(jù)可視化服務(DLV)讀取數(shù)據(jù)呈現(xiàn)為可視化報表,實現(xiàn)數(shù)據(jù)的一站式采集、處理和分析。
在本示例中,我們實現(xiàn)下述場景:
自動售貨機每次銷售商品后上報銷售商品種類、數(shù)量、時間和所屬區(qū)域到物聯(lián)網(wǎng)平臺,物聯(lián)網(wǎng)平臺將數(shù)據(jù)通過數(shù)據(jù)接入服務轉(zhuǎn)發(fā)至MapReduce服務,MapReduce服務處理數(shù)據(jù)并寫為統(tǒng)計文件,數(shù)據(jù)可視化服務從統(tǒng)計文件讀取數(shù)據(jù)展現(xiàn)為四個維度的銷售報表。
創(chuàng)建MapReduce集群
創(chuàng)建集群,用于存儲和處理DIS轉(zhuǎn)儲的數(shù)據(jù)。
登錄華為云官方網(wǎng)站,訪問MapReduce服務。
單擊“立即購買”,創(chuàng)建集群,以下配置僅為樣例。
注:下圖以新版自定義購買界面為例,需要在“購買集群”界面點擊右上角的“點擊體驗新版”,然后選擇“自定義購買”。
參數(shù)名稱
說明
軟件配置
當前區(qū)域
保持默認。
集群名稱
自定義或保持默認。
集群版本
保持默認。
集群類型
分析集群。組件勾選Spark,系統(tǒng)會自動勾選Hive和Tez。“Hive使用外部數(shù)據(jù)源存儲元數(shù)據(jù)”保持關閉。
Kerberos認證
關閉。
用戶名
固定為“admin”不可修改。
密碼
自定義。
確認密碼
硬件配置
計費模式
按實際使用需求選擇,本示例中選擇“按需計費”。
網(wǎng)絡配置
全部保持默認。
實例
為節(jié)省實驗費用,可修改分析Core的實例數(shù)量為1,其余保持默認值。密碼自定義。
高級配置均保持默認。
3.集群創(chuàng)建成功后,等待15到30分鐘,集群狀態(tài)變更為“運行中”則表示創(chuàng)建成功。
創(chuàng)建OBS桶
登錄華為云官方網(wǎng)站,訪問對象存儲服務。
單擊“管理控制臺”進入對象存儲服務管理控制臺。
單擊頁面右上角的“創(chuàng)建桶”,根據(jù)需求選擇桶規(guī)格后,單擊“立即創(chuàng)建”。
創(chuàng)建數(shù)據(jù)接入通道和轉(zhuǎn)儲任務
創(chuàng)建通道并配置轉(zhuǎn)儲任務,實現(xiàn)將設備管理服務傳入DIS的數(shù)據(jù)轉(zhuǎn)發(fā)至MRS。
登錄華為云官方網(wǎng)站,訪問數(shù)據(jù)接入服務。
單擊“立即購買”,購買接入通道,以下配置僅為樣例。
參數(shù)名稱
說明
區(qū)域
保持默認。
通道名稱
自定義或保持默認。
通道類型
保持默認值“普通”。
分區(qū)數(shù)量
按需填寫。
生命周期
源數(shù)據(jù)類型
選擇“JSON”。
自動擴縮容
保持關閉。
Schema開關
高級配置
保持默認。
3.通道購買成功后,進入DIS控制臺“接入管理?>?通道管理”頁面。
4.單擊需要查看的通道名稱,進入所選通道的管理頁面,選擇“轉(zhuǎn)儲管理”頁簽。
5.單擊“添加轉(zhuǎn)儲任務”按鈕。
6.在彈出的“添加轉(zhuǎn)儲任務”頁面配置轉(zhuǎn)儲相關配置項。
參數(shù)名稱
說明
源數(shù)據(jù)類型
默認為通道源數(shù)據(jù)類型
轉(zhuǎn)儲服務類型
選擇“MRS”。
任務名稱
自定義,如“iot_to_mrs”。
轉(zhuǎn)儲文件格式
選擇“Text”。
MRS集群
選擇已創(chuàng)建成功的MRS集群。
HDFS路徑
選擇轉(zhuǎn)儲文件要存儲的路徑,建議選擇“/user”。
轉(zhuǎn)儲文件目錄
自定義轉(zhuǎn)儲文件存放的文件夾名稱,本示例中為“temp”。
偏移量
選擇“最新”。
數(shù)據(jù)轉(zhuǎn)儲周期
本示例中修改為“60”。
數(shù)據(jù)臨時桶
選擇已創(chuàng)建的OBS桶。
數(shù)據(jù)臨時目錄
自定義,本示例中為“temp”。
7.單擊“立即創(chuàng)建”。
配置設備接入服務
在設備接入服務中創(chuàng)建產(chǎn)品模型、注冊設備并設置數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則,實現(xiàn)當設備上報數(shù)據(jù)時將數(shù)據(jù)轉(zhuǎn)發(fā)至DIS。
登錄華為云官方網(wǎng)站,訪問設備接入服務。
單擊“立即使用”進入設備接入控制臺。
單擊“規(guī)則?>?創(chuàng)建規(guī)則?>?數(shù)據(jù)轉(zhuǎn)發(fā)”,首次創(chuàng)建對接到DIS服務的規(guī)則時,平臺會根據(jù)對接的云服務和區(qū)域彈出對應的云服務訪問授權窗口。
4.單擊左側(cè)導航欄的“產(chǎn)品”,單擊右上角下拉框,選擇新建產(chǎn)品所屬的資源空間。
注:本文中使用的產(chǎn)品模型和設備僅為示例,您可以使用自己的產(chǎn)品模型和設備進行操作。
5.單擊右上角的“創(chuàng)建產(chǎn)品”,創(chuàng)建一個基于MQTT協(xié)議的產(chǎn)品,填寫參數(shù)后,單擊“確認”。
基本信息
產(chǎn)品名稱
自定義,如MQTT_Device
協(xié)議類型
選擇“MQTT”
數(shù)據(jù)格式
選擇“JSON”
廠商名稱
自定義
功能定義
選擇模型
請參考步驟6導入模型即可。
所屬行業(yè)
根據(jù)實際情況進行填寫。
設備類型
6.在功能定義頁面,單擊“上傳模型文件”,單擊Profile.zip,獲取產(chǎn)品模型文件樣例。
7.進入“設備?>?設備注冊”頁面,單擊“注冊設備”,參考下表填寫參數(shù)。
參數(shù)名稱
說明
所屬產(chǎn)品
選擇在步驟5中創(chuàng)建的產(chǎn)品。
設備標識碼
設備唯一物理標識,如IMEI、MAC地址等,用于設備在接入物聯(lián)網(wǎng)平臺時攜帶該標識信息完成接入鑒權。
原生MQTT設備:自定義,英文字母和數(shù)字的組合字符串。通過注冊成功后生成的“設備ID”(與設備標識碼一一對應)和“設備密鑰”接入平臺。
NB-IoT設備、集成SDK的設備:NB-IoT設備上的IMEI或MAC地址。設備通過注冊時填寫的“設備標識碼”和“密鑰”接入平臺。
設備名稱
自定義。
設備認證類型
選擇“密鑰”。
密鑰
設備密鑰,可自定義,不填寫物聯(lián)網(wǎng)平臺會自動生成。
填寫完成后單擊“確定”,請注意保存注冊成功返回的“設備ID”和“設備密鑰”。
8.單擊左側(cè)導航欄的“規(guī)則”,單擊右上角的“創(chuàng)建規(guī)則”,選擇“數(shù)據(jù)轉(zhuǎn)發(fā)”。
9.填寫規(guī)則內(nèi)容,規(guī)則名稱自定義,“數(shù)據(jù)類型”選擇“JSON”,轉(zhuǎn)發(fā)至“數(shù)據(jù)接入服務(DIS)”,“區(qū)域”選擇您開通OBS的區(qū)域,“通道”選擇您創(chuàng)建的桶,填寫完成后單擊“創(chuàng)建規(guī)則”。
配置數(shù)據(jù)可視化服務
配置數(shù)據(jù)可視化服務,新建數(shù)據(jù)報表視圖。
登錄華為云官方網(wǎng)站,訪問數(shù)據(jù)可視化服務。
單擊“進入控制臺”。
注:若您未開通DLV服務,可單擊“體驗試用”獲取30天的基礎版免費試用。
訪問DLV控制臺“我的大屏”頁面,新建一個大屏。
4.選擇空白模板,輸入大屏名稱后,單擊“創(chuàng)建大屏”。
5.單擊“文本?>?標題”新增一個標題。
6.在右側(cè)“數(shù)據(jù)”面板修改靜態(tài)數(shù)據(jù)中“value”的值為“每日銷量”。
7.在大屏內(nèi)拖動標題到左上角,并拉伸成合適的形狀。
8.單擊“常用圖表?>?線狀圖”新增一個線狀圖報表。
9.拖動圖表到標題下面并拉伸成合適的形狀。
10.重復以上步驟再添加一個標題為“時間段銷量”柱狀圖,一個標題為“種類銷量”的餅狀圖,一個標題為“地區(qū)銷量”的區(qū)域排行圖,并根據(jù)自己的需要設置圖表的樣式。最終效果類似下圖。
11.單擊頁面右上角的返回按鈕退出編輯頁面。
驗證操作
1.首先控制設備上報10條數(shù)據(jù)。
您可以使用配置設備接入服務時注冊的真實設備接入平臺,上報數(shù)據(jù)。
您也可以使用模擬器模擬設備上報數(shù)據(jù),操作方法請參考通過MQTT.fx體驗設備接入。
上報數(shù)據(jù)的樣例如下,請自行修改參數(shù)的取值模擬真實設備數(shù)據(jù):
樣例1
{ "msgType":?"deviceReq", "data":?[{ "serviceId":?"sales", "serviceData":?{ "category":?"soda", ????????????"number":?"1", ????????????"area":?"SZLH", ????????????"timeStamp":?"20190425T091157Z" } }] }
上述樣例表示UTC時間2019年4月25日9點11分57秒深圳羅湖的自動販賣機銷售了一支蘇打飲料。
樣例2
{ "msgType":?"deviceReq", "data":?[{ "serviceId":?"sales", "serviceData":?{ "category":?"juice", ????????????"number":?"2", ????????????"area":?"SZFT" ????????????"timeStamp":?"20190426T170005Z" } }] }
上述樣例表示UTC時間2019年4月26日17點05秒深圳福田的自動販賣機銷售了兩支果汁飲料。
本文以上報下表的數(shù)據(jù)為例。
category
number
area
timeStamp
soda
1
SZLH
20190425T091157Z
juice
1
SZFT
20190425T121511Z
sport
1
SZLH
20190425T172433Z
juice
2
SZFT
20190426T170005Z
soda
1
SZNS
20190426T190905Z
juice
1
SZNS
20190427T085959Z
juice
2
SZLH
20190427T111111Z
soda
3
SZFT
20190428T182215Z
sport
1
SZLH
20190429T205901Z
soda
1
SZLG
20190430T225045Z
2.登錄MRS管理控制臺,選擇“集群列表 > 現(xiàn)有集群”,單擊集群名進入集群管理頁面。
3.單擊頁面上方的“文件管理”,再單擊“HDFS文件列表”,進入轉(zhuǎn)儲文件目錄(例如“temp”)查看是否存在轉(zhuǎn)儲的數(shù)據(jù)文件。
注:DIS會將數(shù)據(jù)合并轉(zhuǎn)發(fā),所以此處的文件數(shù)量和上報的數(shù)據(jù)條數(shù)可能會不一致。
4.單擊頁面上方的“作業(yè)管理”,在“作業(yè)”頁簽中單擊“添加”,配置作業(yè)信息。本示例中創(chuàng)建一個spark類型的作業(yè),實現(xiàn)分析設備上報數(shù)據(jù),分別按日期、時間段、種類、區(qū)域統(tǒng)計銷量,將分析結果輸出為CSV文件并保存至OBS。
參數(shù)名稱
說明
作業(yè)類型
選擇“SparkSubmit”。
作業(yè)名稱
自定義,如“test”。
執(zhí)行程序路徑
點擊下載jar包并上傳至OBS桶。
回到添加作業(yè)頁面,單擊“OBS”后單擊“瀏覽”選擇剛剛上傳的jar文件。
運行程序參數(shù)
左側(cè)選擇“--class”,右側(cè)輸入“com.huawei.bigdata.spark.examples.SalesStatistics”。
執(zhí)行程序參數(shù)
輸入“AK SK?inputpath outputpath”。
其中AK SK填寫華為云賬號的AK、SK,獲取方法可參考AK和SK的獲取方法。
inputpath填寫文件輸入路徑,在本樣例中為DIS的轉(zhuǎn)儲路徑,如“/user/temp”。
outputpath填寫文件輸出路徑,在本樣例中為已申請的OBS桶內(nèi)的output文件夾(無需提前在OBS創(chuàng)建文件夾,MRS會自動創(chuàng)建),如“s3a://{OBS桶名稱}/output”。
服務配置參數(shù)
無需填寫。
配置完成后單擊“確定”啟動作業(yè)。
5.作業(yè)完成后,可在OBS桶內(nèi)看到output文件夾,里面有四個文件夾,每個文件夾內(nèi)有一個“_SUCCESS”文件和一個“part”開頭的csv文件。
注:本實驗的樣例程序分析數(shù)據(jù)時會將UTC時間轉(zhuǎn)換為本地時間,因此數(shù)據(jù)分析結果中的日期與時間段數(shù)值會和上報時的數(shù)值不一致。
6.登錄華為云官方網(wǎng)站,訪問數(shù)據(jù)可視化服務。
7.單擊“進入控制臺”。
8.單擊“我的數(shù)據(jù) > 新建數(shù)據(jù)連接” ,在“新建數(shù)據(jù)連接”頁面左側(cè)的數(shù)據(jù)庫類型中,選擇“CSV文件”,按照下表的數(shù)據(jù)規(guī)劃填寫配置后單擊“確定”。重復本步驟建立4個數(shù)據(jù)連接。
參數(shù)名
說明
名稱
建立4個數(shù)據(jù)連接,分別命名為:
salesByDate
salesByTime
salesByCategory
salesByArea
Access Key
填寫華為云賬號的AK、SK,獲取方法可參考AK和SK的獲取方法。
Secret Access Key
文件來源
選擇“OBS文件”。
文件路徑
4個連接分別選擇步驟5的output文件夾內(nèi)和連接同名的文件夾內(nèi)的csv文件。
9.返回“我的大屏”頁簽,單擊配置數(shù)據(jù)可視化服務時創(chuàng)建的大屏右下的編輯按鈕進入編輯頁面。
10.選中“每日銷量”表,在右側(cè)數(shù)據(jù)面板選擇數(shù)據(jù)類型為“CSV文件”,數(shù)據(jù)連接選擇步驟8添加的數(shù)據(jù)連接“salesByDate”。
11.根據(jù)響應數(shù)據(jù)的屬性名稱配置字段映射。
配置 “x”為 “saleDate”, “y”為 “saleNumber”。
12.選中“時間段銷量”表,在右側(cè)數(shù)據(jù)面板選擇數(shù)據(jù)類型為“CSV文件”,數(shù)據(jù)連接選擇步驟8添加的數(shù)據(jù)連接“salesByTime”。
13.根據(jù)響應數(shù)據(jù)的屬性名稱配置字段映射。
配置 “x”為 “saleTime”, “y”為 “saleNumber”。
14.選中“種類銷量”表,在右側(cè)數(shù)據(jù)面板選擇數(shù)據(jù)類型為“CSV文件”,數(shù)據(jù)連接選擇步驟8添加的數(shù)據(jù)連接“salesByCategory”。
15.根據(jù)響應數(shù)據(jù)的屬性名稱配置字段映射。
配置 “s”為 “category”, “y”為 “saleNumber”,并設置各個分類的名稱(本示例中為“soda”,“juice”,“sport”)和圖例的顏色。
16.選中“地區(qū)銷量”表,在右側(cè)數(shù)據(jù)面板選擇數(shù)據(jù)類型為“CSV文件”,數(shù)據(jù)連接選擇步驟8添加的數(shù)據(jù)連接“salesByArea”。
17.根據(jù)響應數(shù)據(jù)的屬性名稱配置字段映射。
配置 “num”為 “saleNumber”。
18.全部圖表配置完成后,單擊頁面右上角的可預覽報表,示例如下圖。
至此,通過該文檔的學習,您應該對自動售貨機銷售分析場景有了一定的了解。接下來,可以在系列后續(xù)文章中,可以學習到更多的物聯(lián)網(wǎng)業(yè)務場景。
IoT IoT 數(shù)據(jù) 物聯(lián)網(wǎng)
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。