-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureIoTCentralTutorial
- 戻る(Azure IoT Central)
- Azure IoT Hubチュートリアル(
MS_AzureIoTHubTutorial.md) - Azure IoT Centralチュートリアル
- Azure IoT Edgeチュートリアル(
MS_AzureIoTEdgeTutorial.md)
- Azure IoT Hubチュートリアル(
補足: Azure IoT Central を実際に構築し、
スマホをセンサー デバイスに見立てて一通り動かす手順の記録である。
「デバイスを繋ぐ → 規則で通知する → データを外部に出す」という
IoT の基本の 3 手が短時間で体験できる構成になっている。なお、Azure IoT Central は
2027 年 3 月末で提供終了が予告されている点に留意すること。
Basic レベル、Standard レベルを選択できるらしい。
補足: IoT Central の料金プランは
Standard 0 / 1 / 2 の 3 段階で、
デバイス 1 台あたりの月額と、送信できるメッセージ数の上限が異なる。
2 台までは無償なので、本チュートリアルの範囲なら費用はかからない
(後述の Data Explorer のクラスタは課金される)。
※ IoT Central アプリは [IOTC] リソース・グループに格納される。
-
Azure IoT Central ビルド Web サイトに移動
-
移動した先で、[アプリのビルド] ボタンを押下して遷移する。
-
遷移先でビルドする IoT アプリケーションを選択する。
-
-
[新しいアプリケーション] ページで
-
[アプリケーション テンプレート] の下で
[カスタム アプリケーション] が選択されていることを確認 -
選択したテンプレートに基づいてアプリ名が自動提案。
独自のアプリケーション名を入力する。 -
アプリ名に基づいて、一意の URL プレフィックスが生成される。
この URL は...- 一意である必要があり。
- アプリケーションにアクセスするために使用する。
-
料金プランを選択
- 料金プランを選択
- 課金情報を選択
ディレクトリを選択
サブスクリプションを選択
場所(リージョン)を選択
-
使用条件を確認し、[作成] ボタンを押下
-
...
-
構築 > ポータルの手順で IoT アプリケーションをビルドする。
- [カスタム アプリ] タイルの [アプリの作成] ボタンを選択する。
- 料金プランは Standard 2 に設定する。
-
アプリ名の URL に飛ぶ
-
QR でスマホアプリが案内されるのでインストールしておく。
-
インストールしたスマホアプリを開き提示された QR で接続
-
接続 > デバイス から接続したデバイスに移動して、
- Overview に移動して、テレメトリ情報を確認する。
- コマンドに移動して、...LightOn の [実行] ボタンを押下しライト点滅を確認する。
-
補足(この手順の巧みさ): スマホの IoT Plug and Play アプリを
デバイスとして使うことで、実機を用意せずに
- テレメトリ(デバイス → クラウド。加速度センサーの値)
- コマンド(クラウド → デバイス。ライトを点灯させる)
という双方向通信の両方を体験できる。
Azure Digital Twins で触れた DTDL により、
アプリを繋いだだけで「このデバイスは何ができるか」が
IoT Central 側に自動認識されるのも、ここで確認できる。
-
新しいテレメトリベースのルールを対象のアプリケーションに追加する
-
[拡張] > [規則] から [ルールの作成] ボタンを押下して、規則の定義画面に遷移、
-
ルール名に「Phone turned over」と入力し、
-
[ターゲット デバイス] セクションの
デバイス・テンプレートから [IoT Plug and Play mobile] を選択する。 -
[条件] セクションでルールをトリガーする条件を定義する。
加速度計 z 軸テレメトリでデバイスが裏向きの際、
各デバイスにつき 5 分ごとに最大 1 つの電子メールを送受信- ルールをトリガーする条件を入力
・条件は1つだけなので [すべての条件が真] or [いずれかの条件が真] のどちらでも OK
・スマホ画面の手前/奥側方向の加速度、前面が上の時プラス、下の時マイナス
- ルールをトリガーする条件を入力
-
| フィールド | 値 |
|---|---|
| 時間の集計 | オン、5 分ごと |
| テレメトリ | Acceleration / Z |
| 演算子 | 次の値未満 |
| 集計 | 最小値 |
| 値 | -9 |
- ルールがトリガーされたときに実行するアクション\
アクションの追加 > 電子メールからアクションを追加して入力
| 設定 | 値 |
|---|---|
| 表示名 | 電話が移動されました |
| ターゲット | メール アドレス |
| Notes | 電話の画面は裏向きです。 |
- 最後に保存ボタンを押下すると、\
・始めに、ルールがx時に発動された旨のメールが届き、\
・次いで、ルールがトリガされたときにメールが届く。
補足(値 -9 の意味と、時間の集計): 加速度センサーは
**重力加速度(約 9.8 m/s²)**を常に検出している。
画面を上に置くと Z 軸は +9.8 前後、
裏返すと -9.8 前後になる。
「-9 未満」という条件は、この向きを判定している。**「時間の集計:5 分ごと・最小値」**が実務上の要点である。
集計せずに瞬間値で判定すると、
少し傾けただけで大量の通知が飛ぶ(アラート疲れ)。
Azure Stream Analytics の
ウィンドウ関数と同じ考え方であり、
IoT の通知設計では必ず必要になる配慮である。
-
IoT Central アプリケーションから Data Explorer にデータを継続的にエクスポート
-
クラスタの URL でアクセスして、当該テーブルに以下のクエリを実行。
- テーブルの作成
.create table acceleration (
EnqueuedTime:datetime,
Device:string,
X:real,
Y:real,
Z:real
);- ストリーミング イングレスの有効化
.alter table acceleration policy streamingingestion enable;-
[拡張] > [データのエクスポート] から [エクスポート先] > [宛先の追加] ボタンを押下
- エクスポート先の名前として "Azure Data Explorer" と入力
- エクスポート先の種類として Azure Data Explorer を選択
- [クラスター URL] に、クラスタ URL を入力
- [データベース名] に、データベース名を入力
- [テーブル名] に、テーブル名を入力
- [承認] で、[システム割り当てマネージド ID] を選択
- 上記の入力が完了したら [保存] ボタンを押下
-
[拡張] > [データのエクスポート] から [エクスポート] > [エクスポートの追加] ボタンを押下
-
エクスポート名として「Phone accelerometer」を入力
-
エクスポートするデータの種類として [テレメトリ] を選択
-
[すべての条件が真] の時にエクスポートする以下の 2 つのフィルタを追加
-
| 名前 | 演算子 | 値 |
|---|---|---|
| Device template | 次の値に等しい | IoT Plug and Play mobile |
| Sensor/ Acceleration / X | 存在する | 該当なし |
- 宛先を定義する。\
・宛先に "Azure Data Explorer" を選択\
・データ変換の [変換クエリの作成] フィールドに以下のクエリを追加
import "iotc" as iotc;
{
Device: .device.id,
EnqueuedTime: .enqueuedTime,
X: .telemetry | iotc::find(.name == "accelerometer").value.x,
Y: .telemetry | iotc::find(.name == "accelerometer").value.y,
Z: .telemetry | iotc::find(.name == "accelerometer").value.z
}
・上記の入力が完了したら [追加] ボタンを押下
- [エクスポートの状態] が「正常」になったら [保存] ボタンを押下
補足(この手順が示す 2 つの設計上の要点)
① マネージド ID による認証
[承認] で「システム割り当てマネージド ID」を選ぶことで、
接続文字列やキーを一切持たずに IoT Central から
Data Explorer に書き込める。
Azure Managed ID が述べる
「秘密を持たない」設計が、そのまま使われている。
(別途、Data Explorer 側で当該 ID に取り込み権限を付与する必要がある)② 変換クエリ(jq 風の DSL)
IoT Central のテレメトリは入れ子の JSON で届くため、
そのままでは Data Explorer のテーブル構造に入らない。
変換クエリで平坦化してから送る、という流れになっている。IoT Central のテレメトリ(入れ子 JSON) │ 変換クエリで平坦化 ▼ { Device, EnqueuedTime, X, Y, Z } → テーブルの列に対応Azure IoT Central の「Data Export が
SaaS 型の制約を回避する唯一の経路」という指摘の、具体例にあたる。
-
クイックスタートと同様に、
構築 > ポータルの手順で IoT アプリケーションをビルドする。- [医療] タブの [患者の継続的なモニタリング] タイルの [アプリの作成] ボタンを選択する。
- 料金プランは Standard 2 に設定する。
-
IoT Central アプリケーションの主な機能について確認できる。
-
接続
- デバイス
- デバイス グループ
- デバイス テンプレート
-
分析
- ダッシュボード
-
管理
- ジョブ
-
拡張
- 規則
-
補足: 業種別テンプレートは、
Azure IoT Central が言う
「サーバー側のプロバイダ向けのテンプレート機能」の実例である。
ダッシュボード・デバイス テンプレート・規則が一式入った状態で
アプリが起動するため、
「何を作ればよいか」の雛形として読む価値がある。
-
Azure IoT 入門
https://www.linkedin.com/learning/learning-azure-iot -
IoT Central を解説
【シリーズ Azure サービスいちから紹介】
ナレコム Azure レシピ | AI に強い情報サイト
https://azure-recipe.kc-cloud.jp/2017/12/iot_central_2017adcal/
- 最初のデバイスを接続する
https://learn.microsoft.com/ja-jp/azure/iot-central/core/quick-deploy-iot-central - 規則とアクションを構成する
https://learn.microsoft.com/ja-jp/azure/iot-central/core/quick-configure-rules - データのエクスポート
https://learn.microsoft.com/ja-jp/azure/iot-central/core/quick-export-data
- IoT デバイス開発
- デバイスを接続し、テレメトリを Azure IoT Central に送信する
https://learn.microsoft.com/ja-jp/azure/iot/tutorial-send-telemetry-iot-central
- デバイスを接続し、テレメトリを Azure IoT Central に送信する
- 業界固有のデモアプリを作成する
- Retail
- エネルギー
- 政府
- 医療
- Azure IoT 患者の継続的なモニタリング
https://learn.microsoft.com/ja-jp/azure/iot-central/healthcare/tutorial-continuous-patient-monitoring - Power BI プロバイダー ダッシュボードを構築する
https://learn.microsoft.com/ja-jp/azure/iot-central/healthcare/tutorial-health-data-triage
- Azure IoT 患者の継続的なモニタリング
Tags: 移行, クラウド, IoT, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。