Jaa


Azure IoT Hub にデバイスを複数台登録する方法

Azure Iot Hubに、数十台以上の規模でデバイス登録を行い、Iot Hubに接続するためのキー情報を得たいようなシナリオがあります。この場合、Azure Portal のデバイス エクスプローラーで一つ一つ手作業でこれを行うのは大変です。

 

clip_image002

 

 

そのような時、以下のサンプルをそのまま動作いただければ、一度に複数台「デバイス登録」と「Iot Hubに接続するためのキー情報を得る」ことができます。

 

  How to read events from an IoT Hub with the Service Bus Explorer

  https://code.msdn.microsoft.com/How-to-read-events-from-an-1641eb1b

 

   Create a new device to the device identity registry using the Microsoft.Azure.Devices.RegistryManager.AddDeviceAsync(Microsoft.Azure.Devices.Device)"> AddDeviceAsync method of the  RegistryManager class.

 

動作手順の例は以下の通りです。

 

<動作手順>

1. 上記ページの「Download」の右にある「C# (4.8MB)」をクリックし、How to read events from an IoT Hub with the Service Bus Explorer.zip をダウンロードし、解凍します。

2. Visual Studio 2015 で、C# フォルダの DeviceEmulator.sln を開きます。

3. ソリューションエクスプローラーで、ソリューションをビルドします。

 

clip_image004

 

4. C#\DeviceEmulator\bin\Debug\ フォルダに DeviceEmulator.exe が生成されますので、これを起動します。

5. Azure Portal で IoT Hub のリソースを選択し、[共有アクセス ポリシー] で、[iothubowner] ポリシーをクリックし、[iothubowner] ウィンドウで IoT Hub 接続文字列を確認します。

 

clip_image006

 

6. DeviceEmulator.exe の ConnectionString に、5. で確認した接続文字列を入力します。

7. Device Count に、作成したい個数を入力します。

8. Create をクリックすると、Device が作成され、キーも取得できます。

 

clip_image008

 

 

なお、上記に該当する実装は、MainForm.cs のInitializeDevicesAsync() です。

以下のfor ループでDevice Count の個数分、AddDeviceAsync メソッドでデバイスの登録を行っていることを確認できます。

 

            for (var i = 1; i <= txtDeviceCount.IntegerValue; i++)

 

                        // try to create the device in the device identity registry

                        device = await registryManager.AddDeviceAsync(new Device(deviceId));

 

また、プライマリキーもその次の行で取得できます。

 

                        WriteToLog($"Device [{deviceId}] successfully created in the device identity registry with key[{device.Authentication.SymmetricKey.PrimaryKey}]");

 

 

上記の実装を各言語で実施するにあたり、AddDeviceAsync() に相当する処理が、他の言語ではどうなっているのか確認するために、以下のドキュメントの「デバイスID の作成」の項目がご参考になるかと思います。

 

Azure IoT Hub とシミュレートされたデバイス入門チュートリアル

/ja-jp/azure/iot-hub/iot-hub-get-started-simulated

 

.NET

/ja-jp/azure/iot-hub/iot-hub-csharp-csharp-getstarted#create-a-device-identity

 

Java

/ja-jp/azure/iot-hub/iot-hub-java-java-getstarted#create-a-device-identity

 

Node.js

/ja-jp/azure/iot-hub/iot-hub-node-node-getstarted#create-a-device-identity

 

Python

/ja-jp/azure/iot-hub/iot-hub-python-getstarted#create-a-device-identity

 

REST API の場合は以下をご覧ください。

 

REST API

/en-us/rest/api/iothub/DeviceApi/PutDevice

 

 

以上の内容がお役に立ちましたら幸いです。

 

Azure IoT 開発サポートチーム 津田