IoT Centralのデバイスコード自動生成

久しぶりにAzure IoT Centralをイジっていたら、、、テスト用のデバイスコードを自動生成する機能がありましたので試しました。

この機能、まぁまぁ以前からあったのかもしれません。気づいていませんでした。

Azure IoT Centralを立てる

料金プランの内容が補記されてた。これは分かりやすくてグー。
そうそう、そういえば今年の春ぐらいから(?)、場所日本が選べるようになったんですよね。

f:id:matsujirushix:20200712205224p:plain

バイステンプレートを追加する

次に、デバイステンプレートを追加します。
今回は、実デバイスを用意してつなげるわけではないので、、、あらかじめ用意されているAzure Sphere Sample Deviceを追加することに。
バイステンプレート > 新規 > Azure Sphere Sample Device を選択、作成します。

f:id:matsujirushix:20200712210008p:plain

テスト用のデバイスコードを生成する

で、ここからが本題。

作成したデバイステンプレートのテストデバイスの管理で、テストデバイスのコードを自動生成、ダウンロードします。

f:id:matsujirushix:20200712210406p:plain

現時点、選べる言語は4種類。

ここでは、CSharpを選んでみました。

f:id:matsujirushix:20200712210526p:plain

ダウンロードしたzipの中に、C#プロジェクトファイル(.csproj)があります。

f:id:matsujirushix:20200712210800p:plain

バイスコードを実行

Visual StudioC#プロジェクトファイルを開いて実行してみると、、、

黒画面が起動して、Sending telemetry ...と、送信されているっぽいメッセージが表示されて、

f:id:matsujirushix:20200712210953p:plain

Azure IoT Centralのグラフに値が表示されました!

f:id:matsujirushix:20200712211426p:plain

バイスコードの中身

ふむふむ。.NET Core 3.1。

f:id:matsujirushix:20200712211929p:plain

Azure IoT Centralへは、AMQPプロトコルで対称キー(!= クライアント証明書)を使ってAzure IoT DPSに接続している。

f:id:matsujirushix:20200712212205p:plain

なので、Azure IoT Centralで事前にデバイスを作成しておく必要は無い。

500[ms] * 20 = 10秒周期にTelemetryとDeviceTwinを送信していて、

f:id:matsujirushix:20200712212502p:plain

Telemetryの値は固定値。

f:id:matsujirushix:20200712212611p:plain

まとめ

  • バイステンプレートに合わせた(テスト用途の)デバイスコードが自動生成できる。
  • Azure IoT DPSに接続。事前にデバイスの追加は不要。
  • 認証は対称キー。(クライアント証明書ではない。)
  • データは固定値。周期は10秒。

バイスを作る前に、Azure IoT Centralのデバイステンプレートを作って見た目とか動きを確認するときに使うと良さそう。