在前面的兩個教學課程中,您使用 店內分析 - 結帳 應用程式範本來建立和自訂 IoT Central 應用程式。 在本教學課程中,您會設定 IoT Central 應用程式,以匯出從裝置收集的遙測。 然後,您可以使用 Power BI 為商店經理建立客製化儀錶板,以視覺化從遙測中衍生出的洞察。
在本教學課程中,您將瞭解如何:
- 設定 IoT Central 應用程式,以將遙測匯出至事件中樞。
- 使用 Logic Apps 將資料從事件中樞傳送至 Power BI 串流資料集。
- 建立 Power BI 儀錶板,以視覺化串流資料集中的資料。
先決條件
若要完成本教學課程,您需要:
- 若要完成前兩個教學課程,請 建立和部署店內分析應用程式範本 ,以及 自訂儀表板並管理 Azure IoT Central 中的裝置。
- Power BI 帳戶。 如果您沒有 Power BI 帳戶,請先註冊 免費的 Power BI Pro 試用 版,再開始。
建立資源群組
建立事件中樞和邏輯應用程式之前,您必須先建立資源群組來管理它們。 資源群組應該與 In-store analytics - checkout IoT Central 應用程式位於相同的位置。 若要建立資源群組:
- 登入 Azure 入口網站。
- 在左側導覽中,選取 [資源群組]。 然後選取 新增。
- 針對 [訂用帳戶],選取您用來建立 IoT Central 應用程式的 Azure 訂用帳戶名稱。
- 針對 資源群組名稱,輸入 retail-store-analysis。
- 針對 [區域],選取您為 IoT Central 應用程式選擇的相同區域。
- 選取檢閱 + 建立。
- 在 [檢閱 + 建立] 頁面上,選取 [建立]。
您現在的訂用帳戶中有一個名為 retail-store-analysis 的資源群組。
建立事件中樞
您必須先建立事件中樞來接收匯出的資料,才能將零售監視應用程式設定為匯出遙測。 下列步驟示範如何建立事件中樞:
- 在 Azure 入口網站中,選取畫面左上方的 [ 建立資源 ]。
- 在 [搜尋市集] 中,輸入 Event Hubs,然後按 Enter。
- 在 [事件中樞] 頁面上,選取 [建立]。
- 在 [建立命名空間 ] 頁面上,執行下列步驟:
- 輸入命名空間的唯一名稱,例如 yourname-retail-store-analysis。 系統會檢查此名稱是否可用。
- 選擇 基本 定價層。
- 選取您用來建立 IoT Central 應用程式的相同 訂用帳戶 。
- 選取 retail-store-analysis 資源群組。
- 選取您用於 IoT Central 應用程式的相同位置。
- 選取 ,創建。 您可能需要等待幾分鐘,才能讓系統佈建資源。
- 在入口網站中,流覽至 retail-store-analysis 資源群組。 等候部署完成。 您可能需要選取 [重新整理] 來更新部署狀態。 您也可以在 [通知] 中檢查事件中樞命名空間建立的狀態。
- 在 retail-store-analysis 資源群組中,選取 [事件中樞命名空間]。 您會在入口網站中看到 事件中樞命名空間 的首頁。
您需要具有傳送許可權的連接字串,才能從 IoT Central 連線。 若要建立連接字串:
- 在 Azure 入口網站的事件中樞命名空間中,選取 [共用存取原則]。 原則清單包含預設的 RootManageSharedAccessKey 原則。
- 選取 [+ 新增]。
- 輸入 SendPolicy 作為原則名稱,選取 [傳送],然後選取 [建立]。
- 在原則清單中選取 [SendPolicy ]。
- 記下 連接字串-主索引鍵 的值。 當您在 IoT Central 中設定匯出目的地時,您會使用它。
您需要具有管理和接聽許可權的連接字串,才能從邏輯應用程式連線到事件中樞。 若要擷取連接字串:
- 在 Azure 入口網站的事件中樞命名空間中,選取 [共用存取原則]。 原則清單包含預設的 RootManageSharedAccessKey 原則。
- 在原則清單中選取 RootManageSharedAccessKey 。
- 記下 連接字串-主索引鍵 的值。 當您配置邏輯應用程式以從事件中樞擷取遙測資料時,您會使用它。
現在您有 事件中樞命名空間,您可以建立事件中樞以搭配 IoT Central 應用程式使用:
- 在入口網站的事件中樞命名空間首頁上,選取 [+ 事件中樞]。
- 在 [ 建立事件中樞 ] 頁面上,輸入 store-telemetry 作為名稱,然後選取 [ 建立]。
您現在有一個事件中樞,當您從 IoT Central 應用程式設定資料匯出時可以使用:
設定資料匯出
現在您已擁有事件中樞,您可以設定 店內分析 - 結帳 應用程式,以從連線的裝置匯出遙測。 下列步驟說明如何設定匯出:
- 登入您的 店內分析 - 結帳 IoT Central 應用程式。
- 選取左窗格中的 [ 資料匯出 ]。
- 選取 [+ 新增匯出]。
- 輸入 遙測匯出 作為 匯出名稱。
- 選取 [遙測] 作為要匯出的資料類型。
- 在 目的地 區段中,選取 建立新目的地。
- 輸入 Store data event hub 作為 目的地名稱。
- 選取 [Azure 事件中樞] 作為目的地類型。
- 選取 [連接字串] 作為授權類型。
- 貼上您在建立事件中樞時儲存之 SendPolicy 的連接字串。
- 輸入 store-telemetry 作為 事件中樞。
- 選取 [建立],然後選取 [儲存]。
- 在 [ 遙測匯出 ] 頁面上,等候匯出狀態變更為 [狀況良好]。
資料匯出可能需要幾分鐘的時間,才能開始將遙測傳送至事件中樞。 您可以在 [資料匯出] 頁面上查看匯出的狀態。
建立 Power BI 資料集
您的 Power BI 儀錶板會顯示來自零售監視應用程式的資料。 在此解決方案中,您會使用 Power BI 串流資料集作為 Power BI 儀錶板的資料來源。 在本節中,您會定義串流資料集的結構描述,讓邏輯應用程式可以從事件中樞轉送資料。 下列步驟說明如何為環境感測器建立兩個串流資料集,以及為佔用感測器建立一個串流資料集:
登入您的 Power BI 帳戶。
選取 [工作區],然後選取 [建立工作區]。
在 建立工作區 頁面上,輸入 店內分析 - 結帳 作為 工作區名稱。 選取 [儲存]。
在工作區頁面上,選取 [+ 新增 > 串流資料集]。
在 [新增串流資料集 ] 頁面上,選擇 [API],然後選取 [ 下一步]。
輸入 Zone 1 sensor 作為 資料集名稱。
在下表中輸入三個 串流中的值 :
值名稱 值類型 時間戳 DateTime 溼度 Number 溫度 Number 開啟 [歷史資料分析]。
選取 建立,然後選取 完成。
建立另一個稱為 區域 2 感應器的 串流資料集,其結構描述和設定與 區域 1 感應器 串流資料集相同。
您現在有兩個串流資料集。 邏輯應用程式會將來自連接至您 店內分析 - 結帳系統 應用程式的兩個環境感應器的遙測數據路由到這兩個資料集:
此解決方案會針對每個感應器使用一個串流資料集,因為無法將篩選套用至 Power BI 中的串流資料。
您也需要佔用量遙測資料的串流資料集:
在工作區頁面上,選取 [ 建立 > 串流資料集]。
在 [新增串流資料集 ] 頁面上,選擇 [API],然後選取 [ 下一步]。
輸入 Occupancy sensor 作為 資料集名稱。
在下表中輸入五個來自串流的值:
值名稱 值類型 時間戳 DateTime 佇列長度 1 Number 佇列長度 2 Number 停留時間 1 Number 停留時間 2 Number 開啟 [歷史資料分析]。
選取 建立,然後選取 完成。
您現在有第三個串流資料集,可儲存來自模擬佔用感應器的值。 此感應器會報告商店中兩次結帳時的佇列長度,以及顧客在這些佇列中等待的時間:
建立邏輯應用程式
在此解決方案中,邏輯應用程式會從事件中樞讀取遙測、剖解析資料,然後將它傳送至您建立的 Power BI 串流資料集。
建立邏輯應用程式之前,您需要在 建立和部署店內分析應用程式範本 教學課程中連線至 IoT Central 應用程式的兩個 RuuviTag 感應器的裝置識別碼:
- 登入您的 店內分析 - 結帳 IoT Central 應用程式。
- 選取左窗格中的 裝置 。 然後選取 RuuviTag。
- 記下 裝置 ID。 在下列螢幕擷取畫面中,標識碼為 8r6vfyiv1x 和 1rvfk4ymk6z:
下列步驟示範如何在 Azure 入口網站中建立邏輯應用程式:
- 登入 Azure 入口網站 ,然後選取畫面左上方的 [ 建立資源 ]。
- 在 [搜尋市集] 中,輸入 [邏輯應用程式],然後按 Enter。
- 在 [邏輯應用程式] 頁面上,選取 [建立]。
- 在建立頁面上:
- 輸入邏輯應用程式的唯一名稱,例如 yourname-retail-store-analysis。
- 選取您用來建立 IoT Central 應用程式的相同 訂用帳戶 。
- 選取 retail-store-analysis 資源群組。
- 選取 [類型 ] 作為 [耗用量]。
- 選取您用於 IoT Central 應用程式的相同位置。
- 選取 ,創建。 您可能需要等待幾分鐘,才能讓系統佈建資源。
- 在 Azure 入口網站中,流覽至您的新邏輯應用程式。
- 在 [Logic Apps 設計工具] 頁面上,向下滾動並選擇 [空白邏輯應用程式]。
- 在 [搜尋連接器和觸發程式] 中,輸入 [事件中樞]。
- 在 [觸發程式] 中,選取 [事件中心中有可用事件時]。
- 輸入 Store 遙測 作為 連線名稱。
- 選取 [存取金鑰 ] 作為驗證類型。
- 貼上您先前記下之 RootManageSharedAccessKey 原則的事件中樞連接字串,然後選取 [建立]。
- 在 事件中樞中有事件可用時 動作中:
- 在 事件中樞名稱 中,選取 store-telemetry。
- 在 [內容類型] 中,選取 [application/json]。
- 將 間隔 設定為三,並將 頻率 設定為秒
- 選取 [儲存] 以儲存您的邏輯應用程式。
若要將邏輯新增至邏輯應用程式設計,請選取 [ 程式碼檢視]:
取代
"actions": {},為下列 JSON。 然後將兩個佔位符[YOUR RUUVITAG DEVICE ID 1][YOUR RUUVITAG DEVICE ID 2]替換為兩個 RuuviTag 裝置的 ID。 您之前記下了這些識別碼:"actions": { "Initialize_Device_ID_variable": { "inputs": { "variables": [ { "name": "DeviceID", "type": "String" } ] }, "runAfter": {}, "type": "InitializeVariable" }, "Parse_Telemetry": { "inputs": { "content": "@triggerBody()?['ContentData']", "schema": { "properties": { "deviceId": { "type": "string" }, "enqueuedTime": { "type": "string" }, "telemetry": { "properties": { "DwellTime1": { "type": "number" }, "DwellTime2": { "type": "number" }, "count1": { "type": "integer" }, "count2": { "type": "integer" }, "humidity": { "type": "number" }, "temperature": { "type": "number" } }, "type": "object" }, "templateId": { "type": "string" } }, "type": "object" } }, "runAfter": { "Initialize_Device_ID_variable": [ "Succeeded" ] }, "type": "ParseJson" }, "Set_Device_ID_variable": { "inputs": { "name": "DeviceID", "value": "@body('Parse_Telemetry')?['deviceId']" }, "runAfter": { "Parse_Telemetry": [ "Succeeded" ] }, "type": "SetVariable" }, "Switch_by_DeviceID": { "cases": { "Occupancy": { "actions": {}, "case": "Occupancy" }, "Zone 2 environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 2]" }, "Zone_1_environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 1]" } }, "default": { "actions": {} }, "expression": "@variables('DeviceID')", "runAfter": { "Set_Device_ID_variable": [ "Succeeded" ] }, "type": "Switch" } },選取 [儲存] ,然後選取 [設計工具] 以查看您新增之邏輯的視覺化版本:
選取 [依裝置識別碼切換] 以展開動作。 然後選取 區域 1 環境,然後選取 新增動作。
在搜尋連接器和動作中,輸入 將資料列新增至資料集。
選取 Power BI 將 資料列新增至資料集 動作。
選取 [登入] ,然後依照提示登入您的 Power BI 帳戶。
登入程式完成後,在 [ 將資料列新增至資料集 ] 動作中:
- 選取 店內分析 - 結帳 作為工作區。
- 選取 區域 1 感應器 作為資料集。
- 選取 [RealTimeData ] 作為資料表。
- 選取 [新增參數] ,然後選取 [ 時間戳記]、[ 濕度] 和 [溫度] 欄位。
- 選取 時間戳記 欄位,然後從 動態內容 清單中選取 enqueuedTime。
- 選取 [濕度] 欄位,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選擇 濕度。
- 選取 [溫度] 欄位,然後選取 剖析遙測 旁的 查看更多。 然後選擇 溫度。
選取儲存以儲存變更。 區域 1 環境動作看起來像下列螢幕擷取畫面:
選取 區域 2 環境 動作,然後選取 新增動作。
在搜尋連接器和動作中,輸入 將資料列新增至資料集。
選取 Power BI 將 資料列新增至資料集 動作。
在 將資料列新增至資料集 2 動作中:
- 選取 店內分析 - 結帳 作為工作區。
- 選取 區域 2 感應器 作為資料集。
- 選取 [RealTimeData ] 作為資料表。
- 選取 [新增參數] ,然後選取 [ 時間戳記]、[ 濕度] 和 [溫度] 欄位。
- 選取 時間戳記 欄位,然後從 動態內容 清單中選取 enqueuedTime。
- 選取 [濕度] 欄位,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選擇 濕度。
- 選取 [溫度] 欄位,然後選取 剖析遙測 旁的 查看更多。 然後選擇 溫度。
選取儲存以儲存變更。
選取 [佔用] 動作,然後選取 [新增動作]。
在搜尋連接器和動作中,輸入 將資料列新增至資料集。
選取 Power BI 將 資料列新增至資料集 動作。
在 將資料列新增至資料集 3 動作中:
- 選取 店內分析 - 結帳 作為工作區。
- 選取 [佔用感應器] 作為資料集。
- 選取 [RealTimeData ] 作為資料表。
- 選取 新增參數 ,然後選取 時間戳記、 佇列長度 1、 佇列長度 2、 停留時間 1 和停留 時間 2 欄位。
- 選取 時間戳記 欄位,然後從 動態內容 清單中選取 enqueuedTime。
- 選取 [佇列長度 1] 欄位,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 count1。
- 選取 [佇列長度 2] 欄位,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 count2。
- 選取 [停留時間 1] 欄位,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 DwellTime1。
- 選取 [停留時間 2] 欄位,然後在 [解析遙測] 旁選取 [查看更多]。 然後選取 DwellTime2。
選取儲存以儲存變更。 Occupancy 動作如下所示:
邏輯應用程式會自動執行。 若要查看每次執行的狀態,請流覽至 Azure 入口網站中邏輯應用程式的 [ 概觀 ] 頁面,然後選取 [執行歷程記錄]。 選取 [重新整理] 以更新執行清單。
建立 Power BI 儀錶板
現在,您有從 IoT Central 應用程式透過事件中樞傳輸的遙測資料。 然後,您的邏輯應用程式會剖析事件中樞訊息,並將其新增至 Power BI 串流資料集。 現在,您可以建立 Power BI 儀錶板來視覺化遙測:
- 登入您的 Power BI 帳戶。
- 選取 工作區 > 店內分析 - 結帳。
- 選取
+ 新建儀表板 。 - 輸入 Store analytics 作為儀錶板名稱,然後選取 [建立]。
新增折線圖
新增四個折線圖圖塊,以顯示兩個環境感測器的溫度和濕度。 使用下表中的資訊來建立磚。 若要新增每個磚,請先選取 [編輯 > ] [新增磚]。 選取 [自訂串流資料],然後選取 [ 下一步]:
| Setting | 圖表 #1 | 圖表 #2 | 圖表 #3 | 圖表 #4 |
|---|---|---|---|---|
| Dataset | 區域 1 感測器 | 區域 1 感測器 | 區域 2 感測器 | 區域 2 感測器 |
| 視覺化類型 | 折線圖 | 折線圖 | 折線圖 | 折線圖 |
| 軸 | 時間戳 | 時間戳 | 時間戳 | 時間戳 |
| 價值觀 | 溫度 | 溼度 | 溫度 | 溼度 |
| 時間範圍 | 60 Minuten | 60 Minuten | 60 Minuten | 60 Minuten |
| Title | 溫度(1小時) | 濕度(1小時) | 溫度(1小時) | 濕度(1小時) |
| 副標題 | 區域 1 | 區域 1 | 區域 2 | 區域 2 |
下列螢幕擷取畫面顯示第一個圖表的設定:
新增卡片以顯示環境資料
新增四個卡片圖塊,以顯示兩個環境感測器的最新溫度和濕度值。 使用下表中的資訊來建立磚。 若要新增每個磚,請先選取 [編輯 > ] [新增磚]。 選取 [自訂串流資料],然後選取 [ 下一步]:
| Setting | 卡片 #1 | 卡片 #2 | 卡片 #3 | 卡片 #4 |
|---|---|---|---|---|
| Dataset | 區域 1 感測器 | 區域 1 感測器 | 區域 2 感測器 | 區域 2 感測器 |
| 視覺化類型 | Card | Card | Card | Card |
| Fields | 溫度 | 溼度 | 溫度 | 溼度 |
| Title | 溫度 (F) | 濕度 (%) | 溫度 (F) | 濕度 (%) |
| 副標題 | 區域 1 | 區域 1 | 區域 2 | 區域 2 |
下列螢幕擷取畫面顯示第一張卡片的設定:
新增圖磚以顯示結帳區佔用資料
新增四個卡片圖塊,以顯示商店中兩次結帳的佇列長度和停留時間。 使用下表中的資訊來建立磚。 若要新增每個磚,請先選取 [編輯 > ] [新增磚]。 選取 [自訂串流資料],然後選取 [ 下一步]:
| Setting | 卡片 #1 | 卡片 #2 | 卡片 #3 | 卡片 #4 |
|---|---|---|---|---|
| Dataset | 佔用感應器 | 佔用感應器 | 佔用感應器 | 佔用感應器 |
| 視覺化類型 | 叢集直條圖 | 叢集直條圖 | 量測計 | 量測計 |
| 軸 | 時間戳 | 時間戳 | N/A | N/A |
| 價值觀 | 停留時間 1 | 停留時間 2 | 佇列長度 1 | 佇列長度 2 |
| 時間範圍 | 60 Minuten | 60 Minuten | N/A | N/A |
| Title | 停留時間 | 停留時間 | 佇列長度 | 佇列長度 |
| 副標題 | 結帳 1 | 結帳 2 | 結帳 1 | 結帳 2 |
調整儀表板上的磚大小並重新排列,使其看起來像下列螢幕擷取畫面:
您可以新增一些圖形資源,以進一步自訂儀表板:
清理資源
完成 IoT Central 應用程式之後,您可以登入應用程式,然後流覽至 [應用程式] 區段中的 [管理] 頁面,以將其刪除。
如果您想要保留應用程式,但降低與其相關聯的成本,請停用將遙測傳送至事件中樞的資料匯出。
您可以刪除名為 retail-store-analysis 的資源群組,以刪除 Azure 入口網站中的事件中樞和邏輯應用程式。
您可以從工作區的 Power BI 設定頁面中刪除工作區,以刪除 Power BI 資料集和儀表板。