【初心者向け】Azure IoT チュートリアル — ハンズオンで基礎を学ぼう
この記事の内容
- ハードウェア不要・すべてソフトウェアとAzureクラウドだけでIoTを体験できます
- Azure IoT Hubを作成し、Raspberry Pi Webシミュレーターからデータを送信します
- IoT Explorerを使って受信データをリアルタイムに確認します
- Stream AnalyticsとStorage Accountを組み合わせてデータをJSONファイルとして保存します
- Power BIダッシュボードでリアルタイム可視化、Time Series Insightsでデータ分析を行います
全体構成の概要
このチュートリアルのコンセプトは「まず手を動かして動くものを作り、その中で理解していく」ことです。ハードウェアは一切使用せず、すべてソフトウェアとAzureで完結します。
全体の流れは以下のとおりです。
- Azure IoT Hub を作成し、デバイスからのデータを受け止める場所を用意する
- Raspberry Pi Webシミュレーター(気温・湿度センサー付き)からIoT Hubへデータを送信する
- IoT Explorer でIoT Hubに届いているデータをリアルタイムに確認する
- Stream Analytics + Storage Account で受信データをBlobストレージに保存する
- Power BI でリアルタイムダッシュボードを作成してデータを可視化する
- 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が作成されたら、リソースに移動してデバイスを登録します。
- IoT Hubの「IoT デバイス」メニューを開く
- 「新規」からデバイスを作成する
設定例:
| 項目 | 設定値 |
|---|---|
| デバイスID | raspberrypi2(任意) |
| 認証の種類 | 対称キー |
| キーの自動生成 | 有効 |
デバイスを作成したら、プライマリ接続文字列をコピーしておきます。この文字列には接続先ホスト、デバイスID、共有アクセスキーが含まれており、デバイスからIoT Hubへ接続するために使用します。
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へ送信されます。コンソールに messageId、deviceId、temperature、humidity などの値が表示されれば送信成功です。
4. IoT Explorerで受信データを確認する
IoT Hubに届いているデータを確認するには、Azure IoT Explorer というツールを使います。
インストール
ブラウザで「Azure IoT Explorer」と検索し、リリースページから最新バージョンの .msi パッケージをダウンロードしてインストールします(バージョン例: 0.13.5)。
接続設定
IoT Explorerの接続には、デバイスの接続文字列ではなく、IoT Hub自体の接続文字列が必要です。
- Azure管理ポータルでIoT Hubを開く
- 「共有アクセスポリシー」をクリック
iothubownerポリシーを選択- 「接続文字列(プライマリキー)」をコピー
この接続文字列をIoT Explorerに貼り付けて接続します。接続するとすべてのデバイスが一覧表示されます。
データの確認
- デバイス一覧から対象デバイスをクリック
- 「テレメトリ」を選択
- 「スタート」ボタンをクリック
リアルタイムでイベントが表示され、messageId、deviceId、temperature、humidity などのデータが受信できていることを確認できます。
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に新しいコンシューマーグループを追加します。
- Azure管理ポータルでIoT Hubを開く
- 「組み込みのエンドポイント」をクリック
- コンシューマーグループの入力欄に新しいグループ名を追加(例:
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ジョブで作成したデータセットが表示されていることを確認します。
- 「ダッシュボード」から新規ダッシュボードを作成
- 「編集」→「タイルを追加」
- 「リアルタイムデータ」を選択
- データセットを選択して「次へ」
- 視覚化タイプとして「折れ線グラフ」を選択
- 軸に
EventProcessedUtcTime(時間)、値にtemperatureを設定 - 表示する時間枠(例: 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の無料ティアや低コストで試せるものを選んでいますので、ぜひ実際に手を動かしながら理解を深めてみてください。