LoginSignup
8
9

More than 1 year has passed since last update.

Azure IoT Hubに送信したデータを可視化する(Power BI編)

Last updated at Posted at 2021-05-26

はじめに

横河電機のエッジコントローラe-RT3 Plus F3RP70-2L1をAzure IoT認定デバイス2に登録する担当者として、Azure IoT Edgeについて勉強しました。
その内容を数回に分けてご紹介します。
こちらで第7回目の記事となります。
3回目までの記事で、エッジデバイスへのAzure IoT EdgeランタイムのインストールからサンプルのPythonモジュールをデプロイして動作確認する流れを説明しています。

また、4、5回目の記事でエッジデバイスのデータを収集しIoT Hubへ送信するPythonモジュール、データを書き込むPythonモジュールを作成、デプロイする手順を説明しています。

6回目の記事ではIoT Hubに送信したデータをApp Serviceを使用して構築したWebアプリで可視化しました。

今回はPower BIを使用し、データを可視化してみます。

AWS IoT Greengrassのインストール手順の紹介はこちらからどうぞ!

環境

動作確認したデバイス(OS)

  • PC(Windows 10)
  • e-RT3 Plus F3RP70-2L(Ubuntu 18.04 32bit)+アナログ入出力モジュール
    モジュール構成、配線は前回までと同様に以下の通りです。
    • e-RT3 Plus F3RP70-2L(CPUモジュール)
    • F3AD08-6R(アナログ入力モジュール)
    • F3DA04-6R(アナログ出力モジュール)
    • F3BU05-0D(ベースモジュール)
    • F3PU20-0S(電源モジュール)

こちらのデバイスでは armhf アーキテクチャのパッケージが動作します。

IoT EdgeとDockerのバージョン

Terminal
$ iotedge --version
iotedge 1.1.1
$ docker --version
Docker version 20.10.5+azure, build 55c4c88966a912ddb365e2d73a4969e700fc458f

ゴール

最終的なゴールは以下の図のような、Azure IoT EdgeランタイムをインストールしたUbuntu 18.04搭載のエッジデバイスでPythonのデータ収集モジュールとデータ書き込みモジュールを作成し、収集モジュールのデータをIoT Hubへ送信し、Power BIとAzure App Serviceで作成したWebで可視化することです。
App ServiceとPower BIでデータを可視化する手順や構成はMicrosoftの公式ドキュメント34を参考にし、図中のアイコンはこちらを使用しています。

今回はAzure上でStream Analyticsを作成し、IoT Hubへ送信されたデータをPower BIで可視化することをゴールとします。
これで完成になります。

具体的な流れは以下の通りです。

  1. Azure上にStream Analyticsのリソースを作成し、PCにPower BIをインストールする
  2. IoT Edgeデータ収集モジュールアナログ入力モジュールの全チャネルのデータを2秒周期で収集し、IoT Hubへ送信する
  3. Iot Hubへ送信されたデータをStream Analyticsを通してPower BIへ流し可視化する

powerbi_004.png

準備

今回説明する内容は、IoT Hubへ可視化したいデータが送信できていることを前提に説明しています。

開発環境

  • PC

前回までに準備した環境をそのまま使用します。
また、開発の手順は基本的にはMicrosoft公式のドキュメント4に従っていますが、こちらではAzure PortalとVS Codeを使用します。

Power BI Desktopのインストール

Power BIはMicrosoft社のBIツールであり、データの可視化が可能です。
デスクトップアプリのPower BI DesktopやWebサービスのPower BIサービスが使用できます。
今回は個人アカウントでもサインアップできるPower BI Desktopを例にして、可視化の手順を説明します。

※Power BIサービスは企業アカウントを持っている場合はサインアップ可能で、このあと説明する手順で同じように可視化できます。

  1. Power BI DesktopのWebサイトにアクセスし、画面中央の「無料でダウンロードする」のボタンをクリックします。
    「Microsoft Store を開きますか?」というポップアップが出た場合は許可して開いてください。
    Microsoft Storeが開いたら「入手」をクリックし、インストールしてください。

  2. インストールしたPower BI Desktopを開き、右上にある「サインイン」の表示をクリックします。
    表示される手順に従ってサインインします。

    powerbi_001.png

IoT Hubのコンシューマーグループの作成

Azure Portalからコンシューマーグループを作成します。
前回の記事で紹介した手順で作成します。
作成したコンシューマーグループ名はあとで使用するため、メモしておくと便利です。
今回は「ert3-visualization-powerbi」を作成して使用します。

Stream Analyticsの作成

IoT Hubへ送信されたデータをPower BIに流すためにStream Analyticsを使用します。

  1. Azure Portalにアクセスし、「リソースの作成」をクリックします。
    表示される検索欄にStream Analyticsと入力し、「Stream Analytics job」を探してクリックします。
    青い「作成」ボタンをクリックします。

    stream_005.png

  2. 必要事項を入力、選択します。
    ジョブ名には任意の分かりやすい名前を入れ、サブスクリプション、リソースグループ、場所も任意の項目を選択します。
    ホスティング環境はクラウドにしてください。
    ストリーミングユニットは今回は特に変更せず3とします。
    入力内容を確認し、青い「作成」ボタンをクリックします。

    ※Stream Analyticsは起動した時間とストリーミングユニットの数に応じて課金されます。
    今回はデータを流すのみで特別な処理を行っていないため、ストリーミングユニットは3未満でも動作します。
    詳しくはAzure Stream Analytics の価格をご覧ください。

    stream_004.png

  3. 「デプロイが完了しました」と通知されたらOKです。

Stream Analyticsの設定

  1. Azure Portalから作成したStream Analyticsジョブを開きます。
    概要が表示されたら「入力」をクリックします。

    stream_006.png

  2. 「ストリーム入力の追加」をクリックし、表示されるドロップダウンリストからIoT Hubを選択します。
    設定画面が表示されるので、以下のように入力して保存します。

    項目 設定内容
    入力のエイリアス 任意の入力エイリアス
    サブスクリプション 可視化したいメッセージを受信するIoT Hubがあるサブスクリプション
    IoT Hub 可視化したいメッセージを受信するIoT Hub
    コンシューマーグループ 作成したコンシューマーグループ
    その他の項目 デフォルトのままでOK

    stream_007.png

  3. 保存した後、入力の一覧に設定した項目が追加されており、接続テストが成功した通知が来たら入力の設定は完了です。

  4. Stream Analyticsの概要から、入力のすぐ下にある「出力」をクリックします。
    「追加」をクリックして表示されるドロップダウンリストから「Power BI」を選択します。
    表示される設定画面から青い「承認」ボタンをクリックし、Power BIにログインしたアカウントで承認します。

  5. 承認されると出力の設定画面に切り替わります。
    以下のように設定を入力・選択して保存します。
    保存した後、入力設定時と同様に一覧に設定した項目が追加されており、接続テストが成功したと通知されたら完了です。

    項目 設定内容
    出力エイリアス 任意の出力エイリアス
    グループワークスペース 任意のワークスペース
    認証モード デフォルトのままでOK
    データセット名 任意のデータセット名
    テーブル名 任意のテーブル名

    stream_008.png

  6. 左側のメニューから「クエリ」を探してクリックし、入力欄に以下のように入力して保存します。
    設定が保存された通知が表示されたらOKです。

    クエリ
    SELECT
        messageID,
        deviceID,
        CAST([datetime] AS datetime) AS datetime,
        ch1, ch2, ch3, ch4, ch5, ch6, ch7, ch8
    INTO
        [<設定した出力エイリアス>]
    FROM
        [<設定した入力エイリアス>]
    

    stream_009.png

  7. Stream Analyticsジョブの概要に戻り、「開始」ボタンをクリックしてください。
    少し時間がかかりますが、問題なく開始されると通知が表示されます。

Power BIの設定

  1. Power BI Desktopの新規作成画面を起動し、画面上部の「Power BIデータセット」を選択します。
    レポートを作成するデータセットの選択画面が表示されるので、Stream Analyticsの設定時に入力したデータセットを選択します。

    powerbi_006.png

  2. 画面の右側に「フィルター」、「視覚化」、「フィールド」の設定が表示されます。
    まず、フィールドの設定でチャートに含めたいチャネルにチェックを入れます。
    次に、視覚化の設定で折れ線グラフを選択します。
    中央に表示されるチャート画面は自由に大きさを変えられます。
    この時点では横軸を決めていないので、値の和が表示されます。

    powerbi_007.png

  3. フィールドの設定の「datetime」を視覚化の「軸」の枠にドラックアンドドロップします。
    すると、横軸を日時で取るようになり、波形が描画されます。
    必要に応じてフィルター設定の「datetime」を展開し、任意の表示範囲を設定してフィルターを適用してください。
    画像では最近の5分間のデータを表示するように設定しています。
    また、最新の情報に更新したい場合は画面上部の「更新」ボタンをクリックしてください。

    powerbi_008.png

  4. 確認ができたらAzure PortalからStream Analyticsジョブの概要を開き、「停止」ボタンをクリックしてデータの送信を停止してください。
    ※Stream Analyticsは動作時間とストリーミングユニットに応じて課金されます。

まとめ

IoT Hubへ送信されたデータをPower BI Desktopを使用して可視化できました。
また、今回を含めた全7回の記事でエッジデバイスにIoT EdgeランタイムをインストールするところからIoT Hubへの接続とデータの送信、データを可視化するまでの流れを紹介しました。
どなたかの助けになるような情報があれば嬉しいです。

参考

8
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9