Raspberry Pi mit Azure IoT-Hub verbinden

Das nachfolgende C#-Script zeigt, wie ein Raspberry Pi mit Windows 10 IoT Core schnell und effizient mit einem Microsoft Azure IoT-Hub verbunden werden kann.

Benötigt wird nur der DeviceConnectionString, der für registrierte Geräte in der Geräteverwaltung des IoT-Hubs angezeigt wird.

Raspberry Pi Code

// Define the connection string to connect to IoT Hub
private const string DeviceConnectionString = "<replace>";
static void Main(string[] args)
{
  // Create the IoT Hub Device Client instance
  DeviceClient deviceClient = DeviceClient.CreateFromConnectionString(DeviceConnectionString);
  // Send an event
  SendEvent(deviceClient).Wait();
  // Receive commands in the queue
  ReceiveCommands(deviceClient).Wait();
  Console.WriteLine("Exited!\n");
}
// Create a message and send it to IoT Hub.
static async Task SendEvent(DeviceClient deviceClient)
{
  string dataBuffer;
  dataBuffer = Guid.NewGuid().ToString();
  Message eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer));
  await deviceClient.SendEventAsync(eventMessage);
}
// Receive messages from IoT Hub
static async Task ReceiveCommands(DeviceClient deviceClient)
{
  Console.WriteLine("\nDevice waiting for commands from IoTHub...\n");
  Message receivedMessage;
  string messageData;
  while (true)
  {
    receivedMessage = await deviceClient.ReceiveAsync(TimeSpan.FromSeconds(1));
    if (receivedMessage != null)
    {
      messageData = Encoding.ASCII.GetString(receivedMessage.GetBytes());
      Console.WriteLine("\t{0}> Received message: {1}", DateTime.Now.ToLocalTime(), messageData);
      await deviceClient.CompleteAsync(receivedMessage);
    }
  }
}

Schreibe einen Kommentar