Connettere il dispositivo all'hub IoT usando .NETConnect your device to your IoT hub using .NET

IntroduzioneIntroduction

L'hub IoT di Azure è un servizio completamente gestito che consente comunicazioni bidirezionali affidabili e sicure tra milioni di dispositivi IoT (Internet delle cose) e un back-end della soluzione.Azure IoT Hub is a fully managed service that enables reliable and secure bi-directional communications between millions of Internet of Things (IoT) devices and a solution back end. Una delle maggiori difficoltà con i progetti IoT consiste nel connettere in modo affidabile e sicuro i dispositivi al back-end della soluzione.One of the biggest challenges that IoT projects face is how to reliably and securely connect devices to the solution back end. Per affrontare questa sfida, l'hub IoT:To address this challenge, IoT Hub:

  • Offre messaggistica affidabile da dispositivo a cloud e da cloud a dispositivo su vasta scala.Offers reliable device-to-cloud and cloud-to-device hyper-scale messaging.
  • Rende possibili comunicazioni sicure mediante le credenziali di sicurezza per i singoli dispositivi e il controllo di accesso.Enables secure communications using per-device security credentials and access control.
  • Comprende librerie di dispositivi per i linguaggi e le piattaforme più diffusi.Includes device libraries for the most popular languages and platforms.

Questa esercitazione illustra come:This tutorial shows you how to:

  • Usare il portale di Azure per creare un hub IoT.Use the Azure portal to create an IoT hub.
  • Creare un'identità del dispositivo nell'hub IoT.Create a device identity in your IoT hub.
  • Creare un'app per dispositivo simulato che invii dati di telemetria al back-end della soluzione.Create a simulated device app that sends telemetry to your solution back end.

Al termine di questa esercitazione si avranno tre app di console .NET:At the end of this tutorial, you have three .NET console apps:

  • CreateDeviceIdentity, che crea un'identità del dispositivo e la chiave di sicurezza associata per connettere l'app per dispositivi.CreateDeviceIdentity, which creates a device identity and associated security key to connect your device app.
  • ReadDeviceToCloudMessages, che visualizza i dati di telemetria inviati dall'app per dispositivi.ReadDeviceToCloudMessages, which displays the telemetry sent by your device app.
  • SimulatedDevice, che si connette all'hub IoT con l'identità del dispositivo creata in precedenza e invia un messaggio di telemetria ogni secondo usando il protocollo MQTT.SimulatedDevice, which connects to your IoT hub with the device identity created earlier, and sends a telemetry message every second by using the MQTT protocol.

È possibile scaricare o clonare la soluzione di Visual Studio contenente le tre app da Github.You can download or clone the Visual Studio solution, which contains the three apps from Github.

git clone https://github.com/Azure-Samples/iot-hub-dotnet-simulated-device-client-app.git

Nota

Per informazioni sugli Azure IoT SDK che consentono di compilare le applicazioni da eseguire nei dispositivi e i back-end della soluzione, vedere Azure IoT SDK.For information about the Azure IoT SDKs that you can use to build both applications to run on devices, and your solution back end, see Azure IoT SDKs.

Per completare l'esercitazione, sono necessari gli elementi seguenti:To complete this tutorial, you need the following:

  • Visual Studio 2015 o Visual Studio 2017.Visual Studio 2015 or Visual Studio 2017.
  • Un account Azure attivo.An active Azure account. Se non si ha un account, è possibile creare un account gratuito in pochi minuti.(If you don't have an account, you can create a free account in just a couple of minutes.)

Creare un hub IoTCreate an IoT hub

Creare un hub IoT per connettere l'app per dispositivo simulato.Create an IoT hub for your simulated device app to connect to. La procedura seguente illustra come completare questa attività usando il portale di Azure.The following steps show you how to complete this task by using the Azure portal.

  1. Accedere al portale di Azure.Sign in to the Azure portal.
  2. Selezionare Nuovo > Internet delle cose > Hub IoT.Select New > Internet of Things > IoT Hub.

    Indice del portale di Azure

  3. Nel riquadro Hub IoT immettere le informazioni seguenti per l'hub IoT:In the IoT hub pane, enter the following information for your IoT hub:

    • Nome: creare un nome per l'hub IoT.Name: Create a name for your IoT hub. Se il nome immesso è valido, viene visualizzato un segno di spunta verde.If the name you enter is valid, a green check mark appears.

    Importante

    L'hub IoT sarà individuabile pubblicamente come endpoint DNS, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.The IoT hub will be publicly discoverable as a DNS endpoint, so make sure to avoid any sensitive information while naming it.

    • Piano tariffario e livello di scalabilità: per questa esercitazione selezionare il livello F1 gratuito.Pricing and scale tier: For this tutorial, select the F1 - Free tier. Per altre informazioni, vedere la pagina relativa a piano tariffario e livello di scalabilità.For more information, see the Pricing and scale tier.

    • Gruppo di risorse: creare un gruppo di risorse per ospitare l'hub IoT o usarne uno esistente.Resource group: Create a resource group to host the IoT hub or use an existing one. Per altre informazioni, vedere l'articolo su come usare i gruppi di risorse per gestire le risorse di Azure.For more information, see Use resource groups to manage your Azure resources

    • Località: selezionare la località più vicina.Location: Select the closest location to you.

    • Aggiungi al dashboard: selezionare questa opzione per semplificare l'accesso all'hub IoT dal dashboard.Pin to dashboard: Check this option for easy access to your IoT hub from the dashboard.

      Finestra Hub IoT

  4. Fare clic su Crea.Click Create. La creazione dell'hub IoT può richiedere alcuni minuti.Your IoT hub might take a few minutes to create. È possibile monitorare lo stato di avanzamento nel riquadro Notifiche.You can monitor the progress in the Notifications pane.

Ora che è stato creato un hub IoT, individuare le informazioni importanti che consentono di connettere dispositivi e applicazioni all'hub IoT.Now that you have created an IoT hub, locate the important information that you use to connect devices and applications to your IoT hub.

  1. Dopo avere creato l'hub IoT, fare clic sul nuovo riquadro dell'hub IoT nel portale di Azure per aprire la finestra delle proprietà.When the IoT hub has been created successfully, click the new tile for your IoT hub in the Azure portal to open the properties window for the new IoT hub. Annotare il Nome host, quindi fare clic su Criteri di accesso condiviso.Make a note of the Hostname, and then click Shared access policies.

    Finestra del nuovo hub IoT

  2. In Criteri di accesso condivisi fare clic sul criterio iothubowner, quindi copiare e annotare la stringa di connessione dell'hub IoT nella finestra iothubowner.In Shared access policies, click the iothubowner policy, and then copy and make note of the IoT Hub connection string in the iothubowner window. Per altre informazioni, vedere Controllo di accesso nella "Guida per gli sviluppatori dell'hub IoT".For more information, see Access control in the "IoT Hub developer guide."

    Criteri di accesso condivisi

L'hub IoT è stato così creato e sono ora disponibili il nome host e la stringa di connessione dell'hub necessari per completare il resto di questa esercitazione.You have now created your IoT hub, and you have the host name and IoT Hub connection string that you need to complete the rest of this tutorial.

Creare un'identità del dispositivoCreate a device identity

In questa sezione si scriverà un'app console .NET che crea un'identità del dispositivo nel registro delle identità dell'hub IoT.In this section, you create a .NET console app that creates a device identity in the identity registry in your IoT hub. Un dispositivo non può connettersi all'hub IoT a meno che non abbia una voce nel registro di identità.A device cannot connect to IoT hub unless it has an entry in the identity registry. Per altre informazioni, vedere la sezione "Registro di identità" della Guida per gli sviluppatori dell'hub IoT.For more information, see the "Identity registry" section of the IoT Hub developer guide. Quando si esegue questa app console vengono generati un ID dispositivo univoco e una chiave con cui il dispositivo può identificarsi quando invia messaggi da dispositivo a cloud all'hub IoT.When you run this console app, it generates a unique device ID and key that your device can use to identify itself when it sends device-to-cloud messages to IoT Hub. Gli ID dispositivo fanno distinzione tra maiuscole e minuscole.Device IDs are case sensitive.

  1. In Visual Studio aggiungere un progetto desktop classico di Windows Visual C# a una nuova soluzione usando il modello di progetto App console (.NET Framework).In Visual Studio, add a Visual C# Windows Classic Desktop project to a new solution by using the Console App (.NET Framework) project template. Verificare che la versione di .NET Framework sia 4.5.1 o successiva.Make sure the .NET Framework version is 4.5.1 or later. Denominare il progetto CreateDeviceIdentity e denominare la soluzione IoTHubGetStarted.Name the project CreateDeviceIdentity and name the solution IoTHubGetStarted.

    Nuovo progetto desktop di Windows classico in Visual C#

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto CreateDeviceIdentity e quindi scegliere Gestisci pacchetti NuGet.In Solution Explorer, right-click the CreateDeviceIdentity project, and then click Manage NuGet Packages.
  3. Nella finestra Gestione pacchetti NuGet selezionare Esplora, cercare microsoft.azure.devices, selezionare Installa per installare il pacchetto Microsoft.Azure.Devices e accettare le condizioni per l'uso.In the NuGet Package Manager window, select Browse, search for microsoft.azure.devices, select Install to install the Microsoft.Azure.Devices package, and accept the terms of use. Questa procedura scarica, installa e aggiunge un riferimento al pacchetto NuGet Azure IoT - SDK per dispositivi e alle relative dipendenze.This procedure downloads, installs, and adds a reference to the Azure IoT service SDK NuGet package and its dependencies.

    Finestra Gestione pacchetti NuGet

  4. Aggiungere le istruzione using seguenti all'inizio del file Program.cs :Add the following using statements at the top of the Program.cs file:

     using Microsoft.Azure.Devices;
     using Microsoft.Azure.Devices.Common.Exceptions;
    
  5. Aggiungere i campi seguenti alla classe Program .Add the following fields to the Program class. Sostituire il valore del segnaposto con la stringa di connessione dell'hub IoT creato nella sezione precedente.Replace the placeholder value with the IoT Hub connection string for the hub that you created in the previous section.

     static RegistryManager registryManager;
     static string connectionString = "{iot hub connection string}";
    
  6. Aggiungere il metodo seguente alla classe Program :Add the following method to the Program class:

     private static async Task AddDeviceAsync()
     {
         string deviceId = "myFirstDevice";
         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);
     }
    

    Questo metodo crea un'identità del dispositivo con ID myFirstDevice.This method creates a device identity with ID myFirstDevice. Se questo ID dispositivo è già disponibile nel registro delle identità, il codice recupera semplicemente le informazioni sul dispositivo esistenti. L'app visualizzerà quindi la chiave primaria per l'identità.(If that device ID already exists in the identity registry, the code simply retrieves the existing device information.) The app then displays the primary key for that identity. Questa chiave verrà usata dall'app per dispositivo simulato per connettersi all'hub IoT.You use this key in the simulated device app to connect to your IoT hub.

    Importante

    L'ID dispositivo può essere visibile nei log raccolti per il supporto tecnico e la risoluzione dei problemi, quindi evitare di indicare informazioni riservate nell'assegnazione del nome.The device ID may be visible in the logs collected for customer support and troubleshooting, so make sure to avoid any sensitive information while naming it.

  7. Aggiungere infine le righe seguenti al metodo Main :Finally, add the following lines to the Main method:

     registryManager = RegistryManager.CreateFromConnectionString(connectionString);
     AddDeviceAsync().Wait();
     Console.ReadLine();
    
  8. Eseguire l'applicazione e prendere nota della chiave del dispositivo.Run this application, and make a note of the device key.

    Chiave del dispositivo generata dall'applicazione

Nota

Il registro di identità dell'hub IoT archivia solo le identità del dispositivo per abilitare l'accesso sicuro all'hub.The IoT Hub identity registry only stores device identities to enable secure access to the IoT hub. Archivia gli ID dispositivo e le chiavi da usare come credenziali di sicurezza e un flag di attivazione/disattivazione che consente di disabilitare l'accesso per un singolo dispositivo.It stores device IDs and keys to use as security credentials, and an enabled/disabled flag that you can use to disable access for an individual device. Se l'applicazione deve archiviare altri metadati specifici del dispositivo, dovrà usare un archivio specifico dell'applicazione.If your application needs to store other device-specific metadata, it should use an application-specific store. Per altre informazioni, vedere la Guida per gli sviluppatori dell'hub IoT.For more information, see IoT Hub developer guide.

Ricezione di messaggi da dispositivo a cloudReceive device-to-cloud messages

In questa sezione si crea un'app console di .NET che legge i messaggi da dispositivo a cloud dall'hub IoT.In this section, you create a .NET console app that reads device-to-cloud messages from IoT Hub. Un hub IoT espone un endpoint compatibile con gli hub eventi di Azure per abilitare la lettura dei messaggi dispositivo a cloud.An IoT hub exposes an Azure Event Hubs-compatible endpoint to enable you to read device-to-cloud messages. Per semplicità, questa esercitazione crea un lettore di base non adatto per una distribuzione con velocità effettiva elevata.To keep things simple, this tutorial creates a basic reader that is not suitable for a high throughput deployment. Per informazioni sull'elaborazione di messaggi dispositivo a cloud su vasta scala, vedere l'esercitazione Elaborare messaggi dispositivo a cloud.To learn how to process device-to-cloud messages at scale, see the Process device-to-cloud messages tutorial. Per altre informazioni su come elaborare i messaggi da Hub eventi, vedere l'esercitazione Introduzione all'Hub eventi.For more information about how to process messages from Event Hubs, see the Get Started with Event Hubs tutorial. Questa esercitazione è applicabile agli endpoint compatibili con Hub eventi di hub IoT.(This tutorial is applicable to the IoT Hub Event Hub-compatible endpoints.)

Nota

L'endpoint compatibile con Hub eventi per la lettura di messaggi da dispositivo a cloud usa sempre il protocollo AMQP.The Event Hub-compatible endpoint for reading device-to-cloud messages always uses the AMQP protocol.

  1. In Visual Studio aggiungere un progetto desktop di Windows classico Visual C# alla soluzione corrente usando il modello di progetto App console (.NET Framework).In Visual Studio, add a Visual C# Windows Classic Desktop project to the current solution, by using the Console App (.NET Framework) project template. Verificare che la versione di .NET Framework sia 4.5.1 o successiva.Make sure the .NET Framework version is 4.5.1 or later. Denominare il progetto ReadDeviceToCloudMessages.Name the project ReadDeviceToCloudMessages.

    Nuovo progetto desktop di Windows classico in Visual C#

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ReadDeviceToCloudMessages e quindi scegliere Gestisci pacchetti NuGet.In Solution Explorer, right-click the ReadDeviceToCloudMessages project, and then click Manage NuGet Packages.

  3. Nella finestra Gestione pacchetti NuGet cercare WindowsAzure.ServiceBus, fare clic su Installa e accettare le condizioni per l'uso.In the NuGet Package Manager window, search for WindowsAzure.ServiceBus, select Install, and accept the terms of use. Questa procedura scarica, installa e aggiunge un riferimento al bus di servizio di Microsoft Azure con le relative dipendenze.This procedure downloads, installs, and adds a reference to Azure Service Bus, with all its dependencies. Questo pacchetto consente all'applicazione di connettersi all'endpoint compatibile con l'hub eventi dell'hub IoT.This package enables the application to connect to the Event Hub-compatible endpoint on your IoT hub.

  4. Aggiungere le istruzione using seguenti all'inizio del file Program.cs :Add the following using statements at the top of the Program.cs file:

    using Microsoft.ServiceBus.Messaging;
    using System.Threading;
    
  5. Aggiungere i campi seguenti alla classe Program .Add the following fields to the Program class. Sostituire il valore del segnaposto con la stringa di connessione dell'hub IoT creato nella sezione "Creare un hub IoT".Replace the placeholder value with the IoT Hub connection string for the hub you created in the "Create an IoT hub" section.

    static string connectionString = "{iothub connection string}";
    static string iotHubD2cEndpoint = "messages/events";
    static EventHubClient eventHubClient;
    
  6. Aggiungere il metodo seguente alla classe Program :Add the following method to the Program class:

    private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
    {
        var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
        while (true)
        {
            if (ct.IsCancellationRequested) break;
            EventData eventData = await eventHubReceiver.ReceiveAsync();
            if (eventData == null) continue;
    
            string data = Encoding.UTF8.GetString(eventData.GetBytes());
            Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
        }
    }
    

    Questo metodo usa un'istanza EventHubReceiver per ricevere i messaggi da tutte le partizioni di ricezione da dispositivo a cloud dell'hub IoT.This method uses an EventHubReceiver instance to receive messages from all the IoT hub device-to-cloud receive partitions. Si noti come viene passato un parametro DateTime.Now quando si crea l'oggetto EventHubReceiver in modo che riceva solo i messaggi inviati dopo l'avvio.Notice how you pass a DateTime.Now parameter when you create the EventHubReceiver object, so that it only receives messages sent after it starts. Questo filtro è utile in un ambiente di test perché consente di visualizzare il set di messaggi corrente.This filter is useful in a test environment so you can see the current set of messages. In un ambiente di produzione, il codice deve verificare di avere elaborato tutti i messaggi.In a production environment, your code should make sure that it processes all the messages. Per altre informazioni, vedere l'esercitazione Come elaborare messaggi da dispositivo a cloud dell'hub IoT.For more information, see the tutorial How to process IoT Hub device-to-cloud messages.

  7. Aggiungere infine le righe seguenti al metodo Main :Finally, add the following lines to the Main method:

    Console.WriteLine("Receive messages. Ctrl-C to exit.\n");
    eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);
    
    var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;
    
    CancellationTokenSource cts = new CancellationTokenSource();
    
    System.Console.CancelKeyPress += (s, e) =>
    {
        e.Cancel = true;
        cts.Cancel();
        Console.WriteLine("Exiting...");
    };
    
    var tasks = new List<Task>();
    foreach (string partition in d2cPartitions)
    {
        tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
    }  
    Task.WaitAll(tasks.ToArray());
    

Creare un'app per dispositiviCreate a device app

In questa sezione si crea un'app console di .NET che simula un dispositivo che invia messaggi da dispositivo a cloud a un hub IoT.In this section, you create a .NET console app that simulates a device that sends device-to-cloud messages to an IoT hub.

  1. In Visual Studio aggiungere un progetto desktop di Windows classico Visual C# alla soluzione corrente usando il modello di progetto App console (.NET Framework).In Visual Studio, add a Visual C# Windows Classic Desktop project to the current solution, by using the Console App (.NET Framework) project template. Verificare che la versione di .NET Framework sia 4.5.1 o successiva.Make sure the .NET Framework version is 4.5.1 or later. Denominare il progetto SimulatedDevice.Name the project SimulatedDevice.

    Nuovo progetto desktop di Windows classico in Visual C#

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto SimulatedDevice e quindi scegliere Gestisci pacchetti NuGet.In Solution Explorer, right-click the SimulatedDevice project, and then click Manage NuGet Packages.

  3. Nella finestra Gestione pacchetti NuGet selezionare Esplora, cercare Microsoft.Azure.Devices.Client, selezionare Installa per installare il pacchetto Microsoft.Azure.Devices.Client e accettare le condizioni per l'uso.In the NuGet Package Manager window, select Browse, search for Microsoft.Azure.Devices.Client, select Install to install the Microsoft.Azure.Devices.Client package, and accept the terms of use. Questa procedura scarica, installa e aggiunge un riferimento al pacchetto NuGet Azure IoT SDK per dispositivi e alle relative dipendenze.This procedure downloads, installs, and adds a reference to the Azure IoT device SDK NuGet package and its dependencies.

  4. Aggiungere l'istruzione using seguente all'inizio del file Program.cs :Add the following using statement at the top of the Program.cs file:

    using Microsoft.Azure.Devices.Client;
    using Newtonsoft.Json;
    
  5. Aggiungere i campi seguenti alla classe Program .Add the following fields to the Program class. Sostituire {iot hub hostname} con il nome host dell'hub IoT recuperato nella sezione relativa alla creazione di un hub IoT.Substitute {iot hub hostname} with the IoT hub host name you retrieved in the "Create an IoT hub" section. Sostituire {device key} con la chiave di dispositivo recuperata nella sezione relativa alla creazione di un'identità del dispositivo.Substitute {device key} with the device key you retrieved in the "Create a device identity" section.

    static DeviceClient deviceClient;
    static string iotHubUri = "{iot hub hostname}";
    static string deviceKey = "{device key}";
    
  6. Aggiungere il metodo seguente alla classe Program :Add the following method to the Program class:

    private static async void SendDeviceToCloudMessagesAsync()
    {
        double minTemperature = 20;
        double minHumidity = 60;
        int messageId = 1;
        Random rand = new Random();
    
        while (true)
        {
            double currentTemperature = minTemperature + rand.NextDouble() * 15;
            double currentHumidity = minHumidity + rand.NextDouble() * 20;
    
            var telemetryDataPoint = new
            {
                messageId = messageId++,
                deviceId = "myFirstDevice",
                temperature = currentTemperature,
                humidity = currentHumidity
            };
            var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
            var 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);
        }
    }
    

    Questo metodo invia un nuovo messaggio da dispositivo a cloud ogni secondo.This method sends a new device-to-cloud message every second. Il messaggio contiene un oggetto serializzato JSON con ID dispositivo e numeri generati casualmente per simulare un sensore temperatura e un sensore umidità.The message contains a JSON-serialized object, with the device ID and randomly generated numbers to simulate a temperature sensor, and a humidity sensor.

  7. Aggiungere infine le righe seguenti al metodo Main :Finally, add the following lines to the Main method:

    Console.WriteLine("Simulated device\n");
    deviceClient = DeviceClient.Create(iotHubUri, new DeviceAuthenticationWithRegistrySymmetricKey ("myFirstDevice", deviceKey), TransportType.Mqtt);
    deviceClient.ProductInfo = "HappyPath_Simulated-CSharp";
    SendDeviceToCloudMessagesAsync();
    Console.ReadLine();
    

    Per impostazione predefinita, il metodo Create in un'app .NET Framework crea un'istanza di DeviceClient che usa il protocollo AMQP per comunicare con l'hub IoT.By default, the Create method in a .NET Framework app creates a DeviceClient instance that uses the AMQP protocol to communicate with IoT Hub. Per usare il protocollo MQTT o HTTPS, usare l'override del metodo Crea, che consente di specificare il protocollo.To use the MQTT or HTTPS protocol, use the override of the Create method that enables you to specify the protocol. I client UWP e PCL usano il protocollo HTTPS per impostazione predefinita.UWP and PCL clients use the HTTPS protocol by default. Se si usa il protocollo HTTPS, è necessario aggiungere anche il pacchetto NuGet Microsoft.AspNet.WebApi.Client al progetto per includere lo spazio dei nomi System.Net.Http.Formatting.If you use the HTTPS protocol, you should also add the Microsoft.AspNet.WebApi.Client NuGet package to your project to include the System.Net.Http.Formatting namespace.

Questa esercitazione illustra i passaggi per creare un'app per dispositivi dell'hub IoT.This tutorial takes you through the steps to create an IoT Hub device app. È anche possibile usare l'estensione di Visual Studio Connected Service for Azure IoT Hub (Servizio connesso per hub IoT Azure) per aggiungere il codice necessario all'app per dispositivo.You can also use the Connected Service for Azure IoT Hub Visual Studio extension to add the necessary code to your device app.

Nota

Per semplicità, in questa esercitazione non si implementa alcun criterio di ripetizione dei tentativi.To keep things simple, this tutorial does not implement any retry policy. Nel codice di produzione è consigliabile implementare criteri per i tentativi, ad esempio un backoff esponenziale, come illustrato nell'articolo di MSDN Transient Fault Handling (Gestione degli errori temporanei).In production code, you should implement retry policies (such as an exponential backoff), as suggested in the MSDN article Transient Fault Handling.

Eseguire le appRun the apps

A questo punto è possibile eseguire le app.You are now ready to run the apps.

  1. In Esplora soluzioni in Visual Studio fare clic con il pulsante destro del mouse sulla soluzione e quindi scegliere Imposta progetti di avvio.In Visual Studio, in Solution Explorer, right-click your solution, and then click Set StartUp projects. Selezionare Progetti di avvio multipli e quindi selezionare Avvio come azione per entrambi i progetti ReadDeviceToCloudMessages e SimulatedDevice.Select Multiple startup projects, and then select Start as the action for both the ReadDeviceToCloudMessages and SimulatedDevice projects.

    Proprietà del progetto di avvio

  2. Premere F5 avviare entrambe le app in esecuzione.Press F5 to start both apps running. L'output della console dall'app SimulatedDevice visualizza i messaggi inviati dall'app per dispositivi all'hub IoT.The console output from the SimulatedDevice app shows the messages your device app sends to your IoT hub. L'output della console dall'app ReadDeviceToCloudMessages visualizza i messaggi ricevuti dall'hub IoT.The console output from the ReadDeviceToCloudMessages app shows the messages that your IoT hub receives.

    Output della console dalle app

  3. Il riquadro Utilizzo nel portale di Azure mostra il numero di messaggi inviati all'hub IoT:The Usage tile in the Azure portal shows the number of messages sent to the IoT hub:

    Riquadro Utilizzo del portale di Azure

Passaggi successiviNext steps

In questa esercitazione è stato configurato un hub IoT nel portale di Azure ed è stata quindi creata un'identità del dispositivo nel registro di identità dell'hub IoT.In this tutorial, you configured an IoT hub in the Azure portal, and then created a device identity in the IoT hub's identity registry. Questa identità del dispositivo è stata usata per consentire all'app per dispositivi di inviare messaggi da dispositivo a cloud all'hub IoT.You used this device identity to enable the device app to send device-to-cloud messages to the IoT hub. È stata anche creata un'app che visualizza i messaggi ricevuti dall'hub IoT.You also created an app that displays the messages received by the IoT hub.

Per altre informazioni sulle attività iniziali con l'hub IoT e per esplorare altri scenari IoT, vedere:To continue getting started with IoT Hub and to explore other IoT scenarios, see:

Per informazioni sull'estensione della soluzione IoT e l'elaborazione di messaggi dispositivo a cloud su vasta scala, vedere l'esercitazione Elaborare messaggi dispositivo a cloud.To learn how to extend your IoT solution and process device-to-cloud messages at scale, see the Process device-to-cloud messages tutorial.

Per altre informazioni sulle attività iniziali con l'hub IoT di Azure e per esplorare altri scenari IoT, vedere:To continue to get started with Azure IoT Hub and to explore other IoT scenarios, see the following: