Permalink
Fetching contributors…
Cannot retrieve contributors at this time
95 lines (66 sloc) 3.63 KB
title description keywords author ms.author manager ms.date ms.topic ms.prod ms.technology ms.devlang ms.service
Azure IoT libraries for .NET
Reference for Azure IoT libraries for .NET
Azure, .NET, SDK, API, IoT
camsoper
casoper
douge
07/21/2017
reference
azure
azure
dotnet
multiple

Azure IoT libraries for .NET

Overview

Azure IoT Hub is a fully managed service that enables reliable and secure bi-directional communications between millions of devices and a solution back end.

Devices and data sources in an IoT solution can range from a simple network-connected sensor to a powerful, standalone computing device. Devices may have limited processing capability, memory, communication bandwidth, and communication protocol support. The IoT device SDKs enable you to implement client applications for a wide variety of devices and back-end applications.

The device SDK for .NET facilitates building devices running .NET that connect to Azure IoT Hub.

The service SDK for .NET facilitates building back-end applications using .NET that manage and allow controlling devices from the Cloud.

Learn more about Azure IoT.

Client library

Use the .NET IoT devices client to connect and send messages to your IoT Hub.

Install the NuGet package directly from the Visual Studio Package Manager console or with the .NET Core CLI.

Visual Studio Package Manager

Install-Package Microsoft.Azure.Devices.Client
dotnet add package Microsoft.Azure.Devices.Client

Code Examples

This example connects to the IoT Hub and sends one message per second.

string deviceKey = "<deviceKey>";
string deviceId = "<deviceId>";
string iotHubHostName = "<IoTHubHostname>";
DeviceAuthenticationWithRegistrySymmetricKeyvar deviceAuthentication = new DeviceAuthenticationWithRegistrySymmetricKey(deviceId, deviceKey);

DeviceClient deviceClient = DeviceClient.Create(iotHubHostName, deviceAuthentication, TransportType.Mqtt);

while (true)
{
    double currentTemperature = 20 + Rand.NextDouble() * 15;
    double currentHumidity = 60 + Rand.NextDouble() * 20;

    var telemetryDataPoint = new
    {
        messageId = _messageId++,
        deviceId = deviceId,
        temperature = currentTemperature,
        humidity = currentHumidity
    };
    string messageString = JsonConvert.SerializeObject(telemetryDataPoint);
    Message message = new Message(Encoding.ASCII.GetBytes(messageString));
    message.Properties.Add("temperatureAlert", (currentTemperature > 30) ? "true" : "false");

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

    await Task.Delay(1000);
}

[!div class="nextstepaction"] Explore the client APIs

Samples

View the complete list of Azure IoT Upsamples.

View the Azure IoT Hub developer guide for more guidance.