MRが楽しい

MRやVRについて学習したことを書き残す

HoloLens2でAzure Digital Twinのラーニングパスを試す その9

本日は HoloLens2 の技術調査枠です。
HoloLens2でAzure Digital Twinのラーニングパスを試して実施記録を記事にします。
f:id:bluebirdofoz:20210617213053j:plain

前提条件

前回記事の続きです。
bluebirdofoz.hatenablog.com

風力発電所のパフォーマンスイベントを特定してアクションを実行する

実在の情報をエミュレートするにはシミュレーターを編集して、風力発電所用のデータパイプライン内の実際の IoT デバイスを置き換えます。
シミュレーターはテレメトリデータを IoT Hub に送信します。
これにより、Azure Digital Twin サービスに通知され、SignalR によってインターフェイスが作成され、データが HoloLens 2 アプリに取り込まれます。

シミュレーターの機能

風力発電所のデジタルツインでは、シミュレーターはユーザーから要求時に Azure Digital Twin にプロパティの更新を送信してアラートを通知します。
このアラートは操作イベントを知らせるもので、HoloLens アプリで表示され、ユーザーは UI を使用してイベントを解決できます。
Azure Digital Twin と Digital Twin の間の通信は Azure Digital Twin の REST API を通じて行われます。

これは実際のソリューションアーキテクチャを正確に表現するものではありません。
通常、IoT デバイスは Azure Digital Twin と直接通信しません。Azure IoT Hub を介して行います。

シミュレーターの動作

シミュレーターは Azure Digital Twin に 5 秒ごとにテレメトリが送信します。
このテレメトリは正常な状態を表し、「turbine OK」というイベントコードを持ちます。

シミュレーターでアラートをトリガーすると、アラートの状況を表すテレメトリが送信されます。
シミュレーターは特定のタービンの Digital Twin のアラートプロパティを True に設定して Azure Digital Twin に送信します。
その後、シミュレーターはアラートプロパティが False に設定されるまで、一定の間隔で Azure Digital Twin のポーリングを開始します。
これはユーザーが HoloLens 内のアプリからアラートをクリアすることによってトリガーされます。

アラートがクリアされると、シミュレーターは「turbine OK」のイベントコードでテレメトリの送信を再開します。

シミュレーターの目的

シミュレーターは、次の 2 つの目的で ADT REST API に接続します。

・プロパティの更新を Azure Digital Twin に送信する (Turbine T102 のアラート状態を切り替える)
・アラートの状態をポーリングする (ユーザーによってフラグが設定され、クリアされるまで)

本項では DeviceSimulator ソリューションを使用して風力発電所をシミュレートし、テレメトリ データを Azure Digital Twin に送信します。

風力発電所のデバイスシミュレーションを開始する

1. 風力発電所のデバイスシミュレーションを開始するため、DeviceSimulator.sln を開きます。
f:id:bluebirdofoz:20210617213219j:plain

2. 再生 ボタンまたは F5 キーを押して、DeviceSimulator を実行します。
f:id:bluebirdofoz:20210617213228j:plain

3. コンソール ウィンドウが開き、タービン ID と、接続性やデバイスの取得/作成に関するメッセージが表示されます。
f:id:bluebirdofoz:20210617213237j:plain

4. 任意のキーを押してシミュレーションを開始します。
適切な Azure サービスに接続されている場合は一連のストリーミングコンソールメッセージ「Message received」が表示されます。
これは Azure Digital Twin サービスがシミュレートされた IoT データの受信を認識したことを示します。
f:id:bluebirdofoz:20210617213249j:plain

既定ではテレメトリの読み取り値が以下のイベントコードとともに送信されます。

Value: 100
Description: OK

風力発電所のパフォーマンスの概要を確認する

1. HoloLens2 にデプロイしたアプリを起動します。
f:id:bluebirdofoz:20210617213300j:plain

2. [SITE OVERVIEW]メニューを開きます。
HoloLens2 上では掌を見ると表示されるメニューに、パネルの表示切替ボタンがあります。
f:id:bluebirdofoz:20210617213310j:plain

1つのタービンでのライトアイシングイベントをシミュレートする

1. [DeviceSimulator]ウィンドウに戻り、キーボードのスペースバーを押下します。
これにより、ライトアイシングアラートが Turbine T102 に送信されます。
Turbine T102 オブジェクトは、True に設定されているアラートプロパティの更新を受け取ります。
f:id:bluebirdofoz:20210617213323j:plain

テレメトリの読み取り値が以下の新しいイベントコードとともに送信されます。

Value: 400
Description: Light icing (rotor bl. ice sensor)

Turbine T102のアラートを確認し、クリアする

1. HoloLens2 アプリに戻り、[Turbine T102] を選択します。
マップ内のタービンの上にアラートアイコンが表示され、Turbine T102 の UI パネルの横にアラート条件が強調表示されます。
f:id:bluebirdofoz:20210617213338j:plain

2. [Command Reset]ボタンをクリックします。
これにより、Azure Digital Twin にメッセージが送信され、Turbine T102 のアラートプロパティが False に設定されます。
f:id:bluebirdofoz:20210617213351j:plain

3. UI パネルに更新が成功したことを示すメッセージが表示されます。
f:id:bluebirdofoz:20210617213407j:plain

4. 最後にラーニングパスを全て完了した旨のダイアログが表示されます。
f:id:bluebirdofoz:20210617213430j:plain

Turbine T102のアラートの更新を検証する

1. [DeviceSimulator]ウィンドウに戻り、メッセージを確認します。
Turbine T102 について通常のテレメトリメッセージ(Value: 100)が送信されていることを確認します。
f:id:bluebirdofoz:20210617213451j:plain

DeviceSimulatorを停止する

コマンドウィンドウで Ctrl + C キーを押すか、Visual Studio IDE の[停止]ボタンを押します
これは Azure アカウントに対する不要な課金を回避するために重要です。
f:id:bluebirdofoz:20210617213626j:plain

HoloLens2アプリの終了

1. 開始ジェスチャでスタートメニューを開き、Mixed Reality ホーム ボタンを選択します。
f:id:bluebirdofoz:20210617213709j:plain

2. アプリウィンドウの右上にある閉じるアイコンを使用してアプリを完全に終了します。
f:id:bluebirdofoz:20210617213800j:plain

リソースの削除

誤ってリソースグループを使用しないようにするため、本ラーニングパスで作成したリソースグループを削除しておきます。
f:id:bluebirdofoz:20210617213814j:plain

これで HoloLens2 で Azure Digital Twin を試すチュートリアルは全て完了です。