「ノーコードで始めるPoC」ブログシリーズ 【第4回】 Azureからリモート制御編
はじめに
この記事では、【第2回】 Azure接続編で接続したIoTデバイス(Acty-G3)をリモート制御する方法を解説します。
Azure IoT Centralからリモート制御
IoTデバイス(Acty-G3)がサポートしているリモート制御には「コマンド」と「プロパティ」があります。
コマンドとは?
Azure IoT CentralからIoTデバイスがサポートする機能を呼び出すための機能で、コマンドに対する応答の有無はコマンドの仕様によって異なります。
例えば、IoTデバイス(Acty-G3)の場合には「再起動コマンド」を提供しており、Azure IoT CentralからIoTデバイス(Acty-G3)の再起動を指示することが可能で、応答コマンドはコマンドがIoTデバイス(Acty-G3)まで届いたか否かのみ送信されます。
IoTデバイス(Acty-G3)は下記4つのコマンド*1をサポートしていますが、このブログでは最も簡単な再起動コマンドを例に手順を説明します。
コマンド | 概要 |
---|---|
Reboot | IoTデバイス(Acty-G3)を再起動します。 |
Sensor List | IoTデバイス(Acty-G3)が現在ペアリングしている外部センサーの一覧を取得します。JSON形式にて取得出来ます。 |
Pairing | 新しく外部センサーのペアリングを要求します。 |
Unpairing | 既にペアリングしている外部センサーの解除を要求します。 |
プロパティとは?
プロパティには読込みのみ可能なものと読書き可能なものがあり、前者はIoTデバイスの属性の参照、後者はIoTデバイスの設定変更と現在値確認に使用されます。
例えば、IoTデバイス(Acty-G3)の場合には「GPS機能の有効/無効プロパティ」を読書き可能で提供しており、IoTデバイス(Acty-G3)でプロパティの値を変更するとAzure IoT Centralで変更後の値が現在値として表示され、Azure IoT Centralでプロパティの値を変更するとIoTデバイス(Acty-G3)に値が同期されGPS機能の有効/無効をリモートから切り替えることができます。
このブログではGPS機能に関する下記3つのプロパティ*2について値を変更する手順を説明します。
プロパティ | 概要 |
---|---|
Enable Telemetry | GPS機能の有効/無効を切り替えます |
Location Accuracy | 位置情報の精度を変更します。 |
Report Telemetry Interval | 位置情報の送信間隔を変更します。 |
*1: 【第2回】 Azure接続編でAzure IoT Centralアプリケーションの雛形として選択したIoTプラグアンドプレイ認定デバイス(CAT-G3)のモデル定義に記述されているコマンド
*2: 【第2回】 Azure接続編でAzure IoT Centralアプリケーションの雛形として選択したIoTプラグアンドプレイ認定デバイス(CAT-G3)のモデル定義に記述されているプロパティ
リモート制御はどうやるの?
Azure IoT Centralでリモート制御を実行する手順を下記の順番で説明します。
-
リモートコマンドを実行してみよう
-
プロパティを変更するビュー(画面)を作ってみよう
-
プロパティを変更してみよう
~ リモートコマンドを実行してみよう ~
ここまでの手順を終えていると、既にリモートコマンドは使用可能な状態となっています。
なぜなら、【第2回】 Azure接続編のAzure Iot Centralアプリケーション作成手順で選択した「CAT-G3」は既にAzure Iot PnP認定を受けているデバイスであるため、Azure IoT Centralの機能で自動的にコマンド呼び出しのGUIを作成してくれます。
これにより、 ノーコードでリモートコマンドを実行 することが出来ます。
ここではIoTデバイス(Acty-G3)の再起動コマンドを試してみましょう。
- 「デバイス」 > 「CAT-G3」から【第2回】 Azure接続編で接続したIoTデバイス(Acty-G3)をクリックします。
- 「コマンド」タブを選択します。
【第2回】 Azure接続編でAzure IoT Centralアプリケーションの雛形として選択したIoTプラグアンドプレイ認定デバイス(CAT-G3)のモデル定義に記述されているコマンドが表示されます - 「実行」をクリックします。
再起動のリモートコマンドがIoTデバイス(Acty-G3)で実行されると、IoTデバイス(Acty-G3)が再起動するのでLEDが一旦全て消えて再度点灯します。
IoTデバイス(Acty-G3)は再起動しましたか?
もしIoTデバイス(Acty-G3)が再起動しない場合は、
- IoTデバイス(Acty-G3)がAzureに接続できていない(Acty-G3の電源オフを含む)
が原因として考えられます。
画面上部に表示されているデバイス接続状態が”Disconnected”の場合は、IoTデバイス(Acty-G3)がネットワーク接続できる環境であることを確認してください。
~ プロパティを変更するビュー(画面)を作ってみよう ~
IoTデバイス(Acty-G3)のGPS機能(位置情報)に関するプロパティを変更するビューを作成してみましょう。
ここでも『~ リモートコマンドを実行してみよう ~』と同様、「CAT-G3」のインターフェース定義にIoTデバイス(Acty-G3)がサポートしているプロパティの定義が記述されているため、細かい情報を入力することなくGUIでプロパティ変更する項目を選択するだけでビューを作成することが出来ます。
- 「デバイステンプレート」をクリックします。 「CAT-G3」をクリックします。
- 「ビュー」をクリックします。
- 「デバイスとクラウドのデータ編集」をクリックします。
- フォームの設定をします。最後に「セクション」をクリックします。
- フォーム名 : プロパティ(任意の名前でも構いません)
- ページレイアウト : 1列のレイアウト(任意のレイアウトでも構いません)
- プロパティ : 右記3項目を選択してください(Location of measurement / Enabled , Location Accuracy , Location of measurement / Report Interval)
- セクションの「設定」をクリックします。
- セクションの設定をします。最後に「適用」をクリックします。
- セクションのタイトル : 位置情報 (任意の名前でも構いません)
- 「保存」をクリックします。
- 作成したフォームを公開します。「公開」をクリックします。
~ プロパティを変更してみよう ~
さきほど『~ プロパティを変更するビューを作ってみよう ~』で作成したビューを使用することで、 ノーコードでプロパティを変更 することが出来ます。
では、実際にプロパティの値を変更してみましょう。
- 「デバイス」 > 「CAT-G3」から【第2回】 Azure接続編で接続したIoTデバイス(Acty-G3)をクリックします。
- 「プロパティ」タブを選択します。 位置情報に関するプロパティが表示されていることを確認します。
GPS機能の有効/無効を変えてみる
「Enable Telemetry」プロパティの値を変更後、「保存」をクリックします。
Value | Description |
---|---|
True | GPS機能を有効にする(位置情報を送信する) |
False | GPS機能を無効にする(位置情報を送信しない) |
Trueに設定するとAzureへ位置情報が送信されるので、画面上部の「データの最終受信日」、および位置情報の現在値も更新されます。
逆に、Falseに設定するとAzureへ位置情報が送信されないので、画面上部の「データの最終受信日」、および位置情報の現在は更新されません。
位置情報の精度を変えてみる
「Location Accuracy」プロパティの値を変更後、「保存」をクリックします。
Value | Description |
---|---|
Low accuracy | 精度は低いですが、バッテリー消費量は少ないです |
Normal accuracy | 精度とバッテリー消費量のバランスが取れています |
High accuracy | 精度は高いですが、バッテリーの消費量が多いです |
位置情報の測定間隔によってバッテリーの消費量が変わるので、使用用途に合わせて選択する必要があります。
精度を求めない場合はバッテリー消費量の少ない「Low accuracy」で使用することをお勧めします。
位置情報の送信間隔を変えてみる
「Report Telemetry Interval」プロパティの値を変更後、「保存」をクリックします。
Value | Description |
---|---|
1~600(秒) | 位置情報の送信間隔を秒単位で設定します |
車で移動した履歴をMAP上にプロットするなど移動スピードが速い場合は、位置情報の送信間隔を長めに設定するとプロット間隔が大きくなり、移動した経路が不明確になる可能性がありますので、使用用途に合わせて送信間隔を調整してください。
最後に
ノーコードで簡単に実現出来るデータ可視化、およびリモート制御を紹介しました。
本記事で手順を説明した位置情報のデータ可視化以外に、IoTデバイス(Acty-G3)のアプリケーションがサポートしている外部BLEセンサーと連携させることで温度や湿度なども可視化することが出来ます。
外部BLEセンサーとの連携についても、ブログに記載した内容と同様に ノーコードで実行 できます。
簡単なので是非お試しください。