如何以安全的方式在IotHub中添加设备?

时间:2017-04-15 16:23:01

标签: c# azure azure-iot-hub

使用下面给出的代码片段在azure iot hub中添加设备

static RegistryManager registryManager;
static string connectionString = "{2131ueuruewejds342r2r2qq23udsjf}";

private static async Task AddDeviceAsync()
 {
     **string deviceId = "myFirstDevice"; // from where we get device id?**
     Device device;
     try
     {
         device = await registryManager.AddDeviceAsync(new Device(deviceId));
     }
     catch (DeviceAlreadyExistsException)
     {
         device = await registryManager.GetDeviceAsync(deviceId);
     }
     Console.WriteLine("Generated device key: {0}", device.Authentication.SymmetricKey.PrimaryKey);
 }

我的问题是,从哪里获取设备ID?

快乐编码

1 个答案:

答案 0 :(得分:1)

您正在使用的方法是在IoT Hub中创建新设备。您可以使用任何设备ID,例如“myNewIoTHubDevice”或“AcceleratorDevice”。

此方法使用您的设备ID创建一个新设备,并返回设备的主键。之后,您可以使用该设备将数据发送到IoT Hub,如下面的代码段所示:

private static async void SendDeviceToCloudMessagesAsync()
{
 double avgWindSpeed = 10;
 Random rand = new Random();

 while (true)
 {
     double currentWindSpeed = avgWindSpeed + rand.NextDouble() * 4 - 2;

     var telemetryDataPoint = new
     {
         deviceId = "myFirstDevice",
         windSpeed = currentWindSpeed
     };
     var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
     var message = new Message(Encoding.ASCII.GetBytes(messageString));

     await deviceClient.SendEventAsync(message);
     Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);

     await Task.Delay(1000);
 }
}

如果您调用此方法并且此方法调用已成功,则可以在“设备资源管理器”下的IoT Hub下的Azure门户中查看该设备。

这种方式是一种安全的方式,可以生成新设备。

阅读this description以了解有关IoT Hub的更多信息。

我希望,我理解你的问题。