AWSのIoT Coreでは、LoRA WAN通信のデバイスを登録してデバイスの状態をクラウドから取得することができます。デバイスの登録はコンソール画面から行うのですが、いろいろと面倒なところがあり、これをAPIっぽくカスタムのサイト上で行えるようにしたくなりました。ところが参考となる資料がなかなかないため、ここで紹介します。
必要なパッケージ
using Amazon.IoTWireless.Model; using Amazon.IoTWireless; using Amazon.Runtime;
登録しているデバイスの取得
var credentials = new BasicAWSCredentials("YOUR_KEY", "SECRET_KEY");
AmazonIoTWirelessClient client = new AmazonIoTWirelessClient(credentials, Amazon.RegionEndpoint.APNortheast1);
ListWirelessDevicesRequest request = new ListWirelessDevicesRequest(); request.WirelessDeviceType = WirelessDeviceType.LoRaWAN; request.MaxResults = 100;
ListWirelessDevicesResponse response = client.ListWirelessDevices(request);
デバイスの登録
var credentials = new BasicAWSCredentials("YOUR_KEY", "SECRET_KEY");
AmazonIoTWirelessClient client = new AmazonIoTWirelessClient(credentials, Amazon.RegionEndpoint.APNortheast1);
OtaaV1_0_x otaa = new OtaaV1_0_x() {
AppKey = appkey, AppEui = appeui };
LoRaWANDevice lora = new LoRaWANDevice { OtaaV1_0_x = otaa, DevEui = deveui, DeviceProfileId = deviceprofileid, ServiceProfileId = serviceprofileid };
CreateWirelessDeviceRequest request = new CreateWirelessDeviceRequest { Name = devname, LoRaWAN = lora, DestinationName = destination, Type = WirelessDeviceType.LoRaWAN };
名前はオプションですが、これで最低限のデバイスの登録が行えます。ほかにもデバイスの説明や位置情報なども追加できます。