🕸️

Azure IoT Hubをつかってみる-Azure Portalでの環境構築とVSCode IoT拡張機能によるメッセージ送信

に公開

はじめに

Azure IoT Hubどんな感じか使ってみました。
自身の備忘録を含め、Azure Portal を利用して IoT Hub を作成し、Visual Studio Code の IoT 拡張機能から簡単なメッセージ送信を実施する手順を紹介します。


本記事の作業範囲

  • Azure IoT Hubを作成する
  • デバイスからのメッセージの保存先としてストレージアカウントを作成する
  • vscode拡張機能を利用し、メッセージを発行する
  • メッセージがAzure内のストレージに保存されることを確認する

関連記事

前提条件と準備

  • Azure アカウント:Azure Portal にアクセスするためのアカウント
  • Visual Studio Code (VSCode):コードエディタ。拡張機能をインストールして利用

作業手順

Azure Portalでの環境構築

IoT Hub の作成

  • IoT Hubを作成
  • 今回はレベル - Standardで作成します

メッセージのエンドポイント設定(ストレージアカウント作成)

  • メッセージルーティングを選択
  • 追加を選択
  • ストレージを選択し、コンテナを選択する
    • ストレージアカウントを作成
    • 保存先のコンテナを作成
  • 最終的に以下の設定とした
    • バッチ頻度を100秒->60秒に変更(はやめの適用が見たいため)
    • エンコードをAVRO->JSONに変更

メッセージのルーティング設定

つづけてRouteを設定する

  • 下記のように設定した
    • ルートを有効にする にチェック
    • ルーティングクエリは、以下
      $body.status='error'
      
      • status:errorの場合に、コンテナerror-msgsに保存予定
  • ルーティングクエリが正しいか確認する
    • 上記を記載し、"ルートのテスト"を実行
      • メッセージがクエリの条件に合致することを確認

デバイスの作成

デバイスの作成をします

  • デバイス管理のデバイスを選択する
  • 下記の設定とした
    • デバイスID : ユニークなID, この名前をベースにアクセス
    • 対称キー:Shared Access Signature
      • Azure Cloudに対する認証を行うためにAzureが自動生成するトークン
  • 作成すると一覧に表示される

共有アクセスの確認

vscodeからのIoT hubに接続するには、接続のための文字列が必要となる。
共有アクセスポリシーから確認できる。

  • 共有ポリシーから、iothubownerを選択
    • 最も権限を持っている
  • プライマリ接続文字列をコピー

上記の接続文字列は、vscode側のセットアップに利用する

vscode側の操作

拡張機能 - Azure IoT Hubのセットアップ

  • 拡張機能をインストール
  • エクスプローラー下部にAZURE IOT HUBあり
  • 右クリックし、事前に取得したプライマリ接続文字列をコピペする
  • 接続に成功すると、iot hub, Devicesが表示される

拡張機能からAzure側にメッセージを送信する

  • デバイスを右クリックし、"Send D2C Message to IoT Hub"を選択
  • 下記を入力し、"Send"する
    • Editには、クエリの条件に合致するようstatus:errorとする
    {
    "status": "error",
    "message": "failed to retrieve data"
    }
    

Azure側で確認

メトリックから確認

  • メトリックから確認することができる
  • Routing: data delivered to storageを指定

ストレージのコンテナを確認

  • 指定したストレージコンテナをみるとjsonファイル(分名)が存在する

  • 上記のファイルを開く

{"EnqueuedTimeUtc":"2025-03-28T20:27:03.8040000Z","Properties":{},"SystemProperties":{"connectionDeviceId":"iotdev1","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\"}","connectionDeviceGenerationId":"638787901862736111","contentType":"application/json","contentEncoding":"utf-8","enqueuedTime":"2025-03-28T20:27:03.8040000Z"},"Body":{
"status": "error",
"message": "failed to retrieve data"
}
}

送信データを確認できました


まとめ

Azure IoT hubの作成から、簡単なメッセージ送信の確認ができました
次はコードベースでメッセージ送信をしたいと思います

GitHubで編集を提案
株式会社ジード テックブログ

Discussion