Raspberry Pi+Azure IoT Hub+Azure Stream Analytics ジョブ+Power BIで温度データをグラフ化

 

前回はRaspberry Piで温度測定したデータをAzure IoT Hubでの受信まで実施してみました。

今回は、Azure IoT Hubで受信したデータを、Azure Stream Analytics ジョブを使いPower BIへ送信してみました。

      • Azure Stream Analytics(公式サイト)

https://docs.microsoft.com/ja-jp/azure/stream-analytics/stream-analytics-introduction

      • Power BI

https://docs.microsoft.com/ja-jp/power-bi/fundamentals/power-bi-overview

今回利用した機能の役割をざっくりと言うとこんな感じになります。

      • それぞれの役割
        • Raspberry Pi : 温度や画像等の情報を取得してAzureに送る【前回実施
        • Azure IoT Hub : IoTデバイス(ラズパイ)からの情報をAzureに取り込む【前回実施
        • Azure Stream Analytics : Azure IoT Hubで取り込んだデータをPower BIへ送る
        • Power BI : Azure Stream Analytics経由で送られてきたデータを取り込んでグラフ化する

Azure公式サイト等を参考にしながら設定を実施してみました。

前回実施した内容については、記事に纏めておりますのでこちらを見て頂ければと。

      • 前回実施した内容
        • Azure IoT Hubの作成
        • Raspberry PiでDHT11を使った温度/湿度データの収集
        • Raspberry Piで取得した温度/湿度をAzure IoT Hubへデータ転送

Azure IoT HubにRaspberry Piで収集した温度データを送ってみた

—-

1.Power BIアカウントの作成

Azure Stream Analytics設定時にリンクを張る必要がありますので、Power BIのアカウントを事前に作成しておきます。

Power BI自体は収集されたデータ(今回の場合は温度)をグラフ化する為に利用します。

1)Power BIのスタート画面へアクセスし無料で試すをクリックします。

      • Power BIアカウント作成画面URL

https://powerbi.microsoft.com/ja-jp/get-started/

2)はじめにが表示されますので、自分の電子メールアドレスを入力します。こちらはAzureのIDと別アドレスでもOKです。

3)はじめにで入力したメールアドレスに確認コードが来ますのでこのコードをコピーします。

4)自分のアカウントの作成がありますので、氏名、パスワード、先ほどコピーした確認コードを入力し開始をクリックします。

5)他の人を招待が表示されます。必要ない場合はスキップします。

6)Power BIのホーム画面が表示されます。これでPower BIのアカウント作成は完了です。

2.Azure Stream Analyticsの作成

Azure Stream Analytics ジョブを作成します。まずはStream Analytics ジョブ自体を作成します。

Azure Stream Analytics ジョブのクイックスタートを参考に進めました。

      • Azure Stream Analytics ジョブのクイックスタート

https://docs.microsoft.com/ja-jp/azure/stream-analytics/stream-analytics-quick-create-portal

1)メニューでStream Analytics ジョブを選択します。追加を選択しジョブを作成します。

※似たような名前のサービスがあるので間違って選択しないように注意しましょう。

2)ジョブ名、リソースグループ名を入力し場所を選択します。今回は検証なのでストリーミングユニットは1にします。

※Azure IoT Hubを無償プランにしていても、Stream Analytics ジョブの課金は別に発生するので注意が必要です。課金はストリーミングユニット×利用時間で発生します。

      • Azure Stream Analytics 課金

https://azure.microsoft.com/ja-jp/pricing/details/stream-analytics/

これでAzure Stream Analytics ジョブ自体の作成は終了です。

3.Azure Stream Analytics ジョブの設定(ジョブの入力、出力、クエリの設定)

作成したAzure Stream Analyticsジョブの設定を行います。

      • 今回実施した内容
        • ジョブの入力設定でAzure IoT Hubと接続を作成
        • ジョブの出力設定でPower BIとの接続を作成
        • クエリの設定でジョブの入力と出力の関連付けを行う

1)Stream Analytics ジョブのメニューでジョブトポロジにある入力を選択します。ストリーム入力でIoT Hubを選択します。

2)入力のエイリアス名を設定します。前回作成したIoT Hubを選択し保存を選択します。それ以外はIoT Hubを選択し時点で自動入力されるのでそのまま進めます。

3)入力のエイリアスが出来ている事を確認します。

4)次にジョブトポロジの出力を選択し、ジョブ出力のエイリアスを作成します。追加で今回はPower BIを選択します。

5)Power BIの承認が表示されます。承認するをクリックします。(Power BI側での承認になります。)

6)サインインの画面が表示されますので、Power BIのアカウントでログインします。ログインが終わるとPower BI側で承認されます。

7)新規出力設定になります。出力エイリアス名、データセット名、テーブル名を設定します。データセット名はPower BI側で表示される名称になる為分かりやすい名前に設定します。(今回はRaspBerryPiで設定しています。)

これで出力のエイリアス設定が完了です。次にクエリ設定を行います。

8)ジョブトポロジでクエリを選択します。クエリの入力画面が表示されますの、クエリを入力して保存します。

クエリ内容(※入出力のクエリ名は〔〕の中に設定します。)

SELECT *
INTO
[出力のクエリ名]
FROM
[入力のクエリ名]

実際にデータが取得されているのが入力のプレビュー部分で確認出来ます。

4.Azure Stream Analytics ジョブを使ってPower BIへデータを送ってグラフを作成する

作成したAzure Stream Analyticsジョブを実行して、Power BIを使って温度データのグラフを作成します。

1)作成したStream Analytics ジョブを選択し開始をクリックします。

2)ジョブの開始画面が表示されますので、開始をクリックします。

3)Power BIにログインをしマイワークスペースを選択します。そうすると設定したRaspBerryPiというデータセットが表示されている事が確認出来ます。(ここに表示される名称はデータセット名になります。)

4)RaspBerryPiのレポートの作成を選択します。

5)今回は横軸にEvenEnqueuedUtcTimeを選択し、縦軸にtemperratureとhumidityを選択します。

実際にデータを2日ほど取得した所、下記のように取得した温度データと湿度データのグラフを作成することが出来ました。

今回は非常に簡単な設定にしていますが、Power BIを使いこなせるともっとちゃんとしたグラフも作成可能かと思います。

※最初の方のバタつきはデータ取得が安定してなかったためです。