ブログ

Cactusphere接点入力モデルをAzure IoT Hubに接続してみました

at_yukari.hara
2020年8月31日 13時15分

※この手順は2020年8月31日時点での結果であり、動作を保証するものではありません。
※あくまで参考情報となりますのでご注意願います。

Cactusphereの標準のサンプルプログラムでは、Azure IoT Centralに接続されますが、 今回はAzure IoT Centralではなく、Azure IoT Hubへの接続をしてみました。

今回ご案内する手順は、以下の方を対象としております。

①MSアカウント作成済であること
②Azureアカウント作成済であること
③Cactusphereソフトウェアマニュアルのチュートリアルを既に実行済みであること

1.Azure IoT Hubの設定

まずAzure IoT Hubの設定を行います。
Azure Sphere 用の Azure IoT ハブを設定するの「Device provisioning service を使用して認証する」の手順に従い、設定を行ってください。

2.アプリケーションマニフェストの修正

GitHub の Releases から、ビルド済み Cactusphere ファームウェアをダウンロードし、
アプリケーションマニフェストを修正します。
Run the sample with an IoT Hubの「Connect to the IoT Hub using the device provisioning service」を参考に、
アプリケーションマニュフェストを修正します。

※注意※
2020年8月25日現在のリリースでは、ConnectionTypeの指定に対応しておりませんので、
app_manifest.jsonのCmdArgsにはこれまで通り下記のようにIDスコープ を指定してください。

"CmdArgs": [ "<scope_id>" ],

3.imagepackageを作成し、Cactusphereへ書き込む

ソフトウェアマニュアルの「4.3.3. imagepackage を作成する」以降の手順に沿って、
Cactusphere ファームウェアを書き込んでください。

4.確認方法

①初回接続確認

[IoT Hub] - [IoTデバイス] 画面でデバイスの一覧が表示されます。
ここにCactusphereのDeviceIDが表示されていれば初回接続が成功しています。

②起動時に送信するデバイス情報の確認

[IoT Hub] - [IoTデバイス]で該当するデバイスを選択後、[デバイスツイン]を選択します。
デバイスツインの properties の reportedに、下記の画像のようにデバイス情報が含まれていれば成功しています。

③Azure IoT Hubから設定を行い、テレメントリデータを確認

[IoT Hub] - [IoTデバイス]で該当するデバイスを選択後、[デバイスツイン]を選択します。
今回は例として、DI1をPulseCounter、 DI2をEdge、 DI3をPollingに設定します。
デバイスツインの properties - desiredを下記の通り編集し、保存してください。

※Cactusphere-100 接点入力モデル v201110以降では"value"の指定は不要です。

"properties": {
    "desired": {
      "Counter_DI1": {
        "value": true
      },
      "Edge_DI2": {
        "value": true
      },
      "Polling_DI3": {
        "value": true
      },

デバイスツインを保存しましたら、クイック スタート:デバイスから IoT ハブに利用統計情報を送信して Azure CLI で監視するを参考に、Cloud Shell を起動します。

以下のコマンドを実行し、Azure IoT 拡張機能をインストールしてください。

az extension add --name azure-iot

続いて以下のコマンドを実行し、デバイスを監視します。
※{YourIoTHubName}には、作成しましたIoT Hubの名前に置き換えてください。

az iot hub monitor-events --output table --hub-name {YourIoTHubName}

正常に設定の反映、データの送信ができていましたら、以下のようにデータが確認できます。