【初心者向け】Azure IoT チュートリアル — ハンズオンで基礎を学ぼう

この記事の内容

  • ハードウェア不要・すべてソフトウェアとAzureクラウドだけでIoTを体験できます
  • Azure IoT Hubを作成し、Raspberry Pi Webシミュレーターからデータを送信します
  • IoT Explorerを使って受信データをリアルタイムに確認します
  • Stream AnalyticsとStorage Accountを組み合わせてデータをJSONファイルとして保存します
  • Power BIダッシュボードでリアルタイム可視化、Time Series Insightsでデータ分析を行います

全体構成の概要

このチュートリアルのコンセプトは「まず手を動かして動くものを作り、その中で理解していく」ことです。ハードウェアは一切使用せず、すべてソフトウェアとAzureで完結します。

全体の流れは以下のとおりです。

  1. Azure IoT Hub を作成し、デバイスからのデータを受け止める場所を用意する
  2. Raspberry Pi Webシミュレーター(気温・湿度センサー付き)からIoT Hubへデータを送信する
  3. IoT Explorer でIoT Hubに届いているデータをリアルタイムに確認する
  4. Stream Analytics + Storage Account で受信データをBlobストレージに保存する
  5. Power BI でリアルタイムダッシュボードを作成してデータを可視化する
  6. Time Series Insights でIoT Hubのデータを直接取得して分析・可視化する

1. Azure IoT Hubの作成

まずAzure管理ポータル(portal.azure.com)にアクセスします。

サービス一覧から「IoT Hub」を選択し、新しいIoT Hubを作成します。

設定項目は以下のとおりです。

項目設定値
サブスクリプション任意のサブスクリプション
リソースグループ新規作成(例: iot-test
リージョン東日本
IoT Hub名世界で唯一の名前(例: iot-hub-自分の名字
ネットワークすべてのネットワークから接続可能
価格とスケールティアF1(Free)

チュートリアルの範囲では無料ティアで十分です。設定を確認したら「作成」をクリックします。


2. IoT Hubへのデバイス登録

IoT Hubが作成されたら、リソースに移動してデバイスを登録します。

  1. IoT Hubの「IoT デバイス」メニューを開く
  2. 「新規」からデバイスを作成する

設定例:

項目設定値
デバイスIDraspberrypi2(任意)
認証の種類対称キー
キーの自動生成有効

デバイスを作成したら、プライマリ接続文字列をコピーしておきます。この文字列には接続先ホスト、デバイスID、共有アクセスキーが含まれており、デバイスからIoT Hubへ接続するために使用します。

HostName=xxx.azure-devices.net;DeviceId=raspberrypi2;SharedAccessKey=xxxxxxxxxx

3. Raspberry Pi Webシミュレーターからデータを送信する

ブラウザで新しいタブを開き、「Azure IoT Raspberry Pi Simulator」で検索します。Raspberry Pi Webシミュレーターのページを開いてください。

シミュレーターの画面には、センサーの状態表示・コーディング領域・コンソールウィンドウがあります。

コード内の接続文字列部分を、先ほどコピーしたデバイスの接続文字列に書き換えます。

// YOUR CONNECTION STRING HERE の部分を接続文字列で置き換える
const connectionString = 'HostName=xxx.azure-devices.net;DeviceId=raspberrypi2;SharedAccessKey=xxxxxxxxxx';

「Run」ボタンをクリックすると、シミュレーターが起動し、気温(temperature)・湿度(humidity)のデータが継続的にIoT Hubへ送信されます。コンソールに messageIddeviceIdtemperaturehumidity などの値が表示されれば送信成功です。


4. IoT Explorerで受信データを確認する

IoT Hubに届いているデータを確認するには、Azure IoT Explorer というツールを使います。

インストール

ブラウザで「Azure IoT Explorer」と検索し、リリースページから最新バージョンの .msi パッケージをダウンロードしてインストールします(バージョン例: 0.13.5)。

接続設定

IoT Explorerの接続には、デバイスの接続文字列ではなく、IoT Hub自体の接続文字列が必要です。

  1. Azure管理ポータルでIoT Hubを開く
  2. 「共有アクセスポリシー」をクリック
  3. iothubowner ポリシーを選択
  4. 「接続文字列(プライマリキー)」をコピー

この接続文字列をIoT Explorerに貼り付けて接続します。接続するとすべてのデバイスが一覧表示されます。

データの確認

  1. デバイス一覧から対象デバイスをクリック
  2. 「テレメトリ」を選択
  3. 「スタート」ボタンをクリック

リアルタイムでイベントが表示され、messageIddeviceIdtemperaturehumidity などのデータが受信できていることを確認できます。


5. 受信データをStorage Accountに保存する

IoT Hubに集まったデータを継続的に保存するために、Storage AccountとStream Analyticsジョブを作成します。

5-1. Storage Accountの作成

Azure管理ポータルから「ストレージアカウント」を作成します。

項目設定値
リソースグループiot-test
ストレージアカウント名任意(例: storageiottest
リージョン東日本
パフォーマンスStandard
レプリケーションローカル冗長ストレージ(LRS)

作成後、ストレージアカウント内で「コンテナー」を作成します(例: iot-test)。

5-2. Stream Analyticsジョブの作成

「Stream Analytics ジョブ」をリソース作成から選択します。

項目設定値
ジョブ名任意(例: iot-to-storage
リソースグループiot-test
リージョン東日本
ホスティング環境クラウド
ストリーミングユニット1

5-3. 入力の設定(IoT Hub)

ジョブの「入力」から「ストリーム入力の追加」→「IoT Hub」を選択します。

項目設定値
入力エイリアスiothub(任意)
IoT Hub作成済みのIoT Hub
コンシューマーグループ$Default
共有アクセスポリシーiothubowner

5-4. 出力の設定(Blob Storage)

「出力」から「Blob Storage / ADLS Gen2」を選択します。

項目設定値
出力エイリアスblobstorage(任意)
ストレージアカウント作成済みのストレージアカウント
コンテナー作成済みのコンテナー
シリアル化形式JSON、UTF-8、改行区切り

5-5. クエリの設定

「クエリの編集」を開き、以下のSQLライクなクエリを設定します。

SELECT *
INTO [blobstorage]
FROM [iothub]

これはIoT Hubに届いたすべてのイベントをBlobストレージへ流し込む設定です。クエリを保存したら「テスト」でデータが正しく流れることを確認し、「開始」ボタンをクリックします。開始時刻は「現在」を選択します。

しばらく待ってからStorage Accountのコンテナーを確認すると、JSON形式でデータが保存されているファイルが確認できます。Stream Analyticsジョブが動き続けることでファイルのサイズが増加していきます。


6. Power BIダッシュボードでリアルタイム表示する

次に、IoT Hubのデータをリアルタイムにグラフで表示するPower BIダッシュボードを作成します。

6-1. 新しいコンシューマーグループの作成

Power BI用に別のStream Analyticsジョブを作成するため、IoT Hubに新しいコンシューマーグループを追加します。

  1. Azure管理ポータルでIoT Hubを開く
  2. 「組み込みのエンドポイント」をクリック
  3. コンシューマーグループの入力欄に新しいグループ名を追加(例: powerbi

6-2. Power BI用Stream Analyticsジョブの作成

先ほどと同様の手順でStream Analyticsジョブを作成します(例: iot-to-powerbi)。

入力の設定では、コンシューマーグループとして先ほど作成した powerbi を選択します。

出力の設定では「Power BI」を選択し、承認ボタンからPower BIアカウントでサインインします。

項目設定値
出力エイリアスpowerbi(任意)
グループワークスペースマイワークスペース
データセット名任意(例: iot-dataset
テーブル名任意(例: iot-table

クエリは先ほどと同様に設定します。

SELECT *
INTO [powerbi]
FROM [iothub]

ジョブを開始(開始時刻: 現在)します。

6-3. Power BIダッシュボードの作成

ブラウザでapp.powerbi.comにアクセスし、「マイワークスペース」→「データセット」にStream Analyticsジョブで作成したデータセットが表示されていることを確認します。

  1. 「ダッシュボード」から新規ダッシュボードを作成
  2. 「編集」→「タイルを追加」
  3. 「リアルタイムデータ」を選択
  4. データセットを選択して「次へ」
  5. 視覚化タイプとして「折れ線グラフ」を選択
  6. 軸に EventProcessedUtcTime(時間)、値に temperature を設定
  7. 表示する時間枠(例: 1分)を設定して「適用」

同様の手順でカードタイルや湿度グラフなども追加できます。ダッシュボードにはリアルタイムで気温・湿度のデータがグラフ表示されます。


7. Time Series Insightsでデータを可視化・分析する

最後に、Azure Time Series Insights を使ったデータの保存と分析を行います。Time Series InsightsはStream Analyticsジョブを介さず、IoT Hubから直接データを取得できます。

7-1. Time Series Insightsの作成

Azure管理ポータルから「Time Series Insights」を検索して作成します。

項目設定値
リソースグループiot-test
環境名任意(例: tsi-iot
世代Gen2(推奨)
プロパティ名deviceId
ストレージアカウント新規作成
ウォームストア無効(テスト目的)

7-2. イベントソースの設定

作成時に「イベントソースを作成しますか?」と聞かれるので、IoT Hubを選択します。

  • IoT Hub: 作成済みのIoT Hub
  • 共有アクセスポリシー: iothubowner
  • コンシューマーグループ: 新規作成(例: timeseries

Power BIのときと同様に、新しいコンシューマーグループを作成します。

7-3. エクスプローラーでデータを確認

リソースへ移動後、「TSIエクスプローラーに移動」をクリックします。

エクスプローラーでは以下の操作が可能です。

  • 対象範囲(時間軸)の選択
  • temperature(気温)や humidity(湿度)のグラフ追加
  • 特定範囲へのズームイン
  • 生のイベントデータの確認
  • 統計情報の確認

IoT Hubから流れてくるデータに対して様々な分析をグラフィカルなUIで行うことができます。


まとめ

このチュートリアルでは、Azure IoTの基礎的な構成要素をハンズオン形式で学びました。

  • IoT Hub を作成し、デバイスからのデータを受け止める仕組みを構築しました
  • Raspberry Pi Webシミュレーター を使ってハードウェアなしでデータ送信を体験しました
  • IoT Explorer でIoT Hub上のデータリアルタイム確認を行いました
  • Stream Analytics + Blob Storage でデータをJSONファイルとして継続保存しました
  • Power BI でリアルタイムダッシュボードを作成し、気温・湿度を可視化しました
  • Time Series Insights でIoT Hubから直接データを取得して分析しました

デバイスからIoT Hubでデータを受け止め、その後クラウド上でさまざまな処理を行うという基本的なIoTアーキテクチャを一通り体験できます。今回使用したサービスはすべてAzureの無料ティアや低コストで試せるものを選んでいますので、ぜひ実際に手を動かしながら理解を深めてみてください。