ブログ

Armadillo-IoT G3L:CPUの温度をAzure IoT Hubに送信し、PowerBIのダッシュボードに表示してみた

at_yukari.hara
2021年5月10日 16時29分

※注意事項※
このブログは2021年4月23日時点のものです。
Microsoft Azureの環境を構築する手順の一例としてご紹介している部分がございますが、設定や手順等を推奨するものではありません。
また、仕様等が変更されていたとしても、弊社ではお問い合わせには対応できかねますので、ご了承願います。
詳しい手順や説明等は、公式のドキュメントをご参照願います。

Armadillo-IoT G3LのCPUの温度をAzure IoT Hubに送信して、Stream Analytics ジョブからPowerBIのダッシュボードに表示してみました。

使用したもの

■Armadillo-IoT G3L(要ネットワーク接続)
■Azure サブスクリプション
■Power BIアカウント

全体の構成

手順

1.準備

Armadillo-IoT G3L:Azure IoT Hubにテレメントリを送信してみたを参考に ArmadilloからAzure IoT Hubにテレメントリが送信できる環境を整えます。

2.Armadilloの環境構築

PythonでCPUの温度データを取得する為に必要なライブラリをインストールします。

[armadillo ~]# pip install psutil

3.サンプルコードの修正

今回は、CPUの温度を送信する為に、「SimulatedDevice.py」の以下の部分を修正します。
※サンプルコードでは「temperature」と「humidity」のデータを送信していますが、今回は「temperature」を「cpu」に変更し、「humidity」を削除しました。

(略)
import random
import time
import psutil ★ここを追加
(略)
#TEMPERATURE = 20.0 ★コメントアウト
#HUMIDITY = 60 ★コメントアウト
MSG_TXT = '{{"cpu": {cpu}}}' ★ここを修正
(略)
cpu = format(psutil.sensors_temperatures()['imx_thermal_zone'][0].current) ★ここを修正
#humidity = HUMIDITY + (random.random() * 20) ★コメントアウト
msg_txt_formatted = MSG_TXT.format(cpu=cpu)
(略)

4.Stream Analytics ジョブの作成と実行

Power BI を使用して Azure IoT Hub からのリアルタイム センサー データを視覚化するの「Stream Analytics ジョブの作成、構成、実行」を参考に、Stream Analytics ジョブを作成し、入力をIoT Hub、出力をPower BIに設定し、クエリの構成を行ってからジョブを実行します。

5.実行

SimulatedDevice.pyを実行します。

[armadillo ~]# python SimulatedDevice.py

すると、IoT Hubに送信しているArmadilloのCPUの温度データがコンソールに表示されます。

Sending message: {"cpu": 40.66}
Message successfully sent
Sending message: {"cpu": 39.79}
Message successfully sent
Sending message: {"cpu": 39.79}
Message successfully sent

6.確認

Stream Analytics ジョブが正常に動作していると、以下のようにAzure Power Biのマイワークスペースに指定したデータセットが生成されています。 データセットの「レポートの作成」をクリックし、軸に「EventEnqueuedUtcTime」、値に「cpu」をセットする事で、PowerBIのダッシュボードにCPUの温度データを表示する事が出来ました。