Delen via


Zelfstudie: Een voorbeeld-IoT-Plug en Play-apparaattoepassing verbinden die wordt uitgevoerd in Linux of Windows met IoT Hub

In deze zelfstudie leert u hoe u een voorbeeldtoepassing voor IoT Plug en Play-apparaat maakt, deze verbindt met uw IoT-hub en het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing is geschreven in C en is opgenomen in de Azure IoT device SDK voor C. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.

Code zoeken

Vereisten

Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.

U kunt deze zelfstudie uitvoeren in Linux of Windows. De shell-opdrachten in deze zelfstudie volgen de Linux-conventie voor padscheidingstekens /. Als u de stappen uitvoert in Windows, moet u deze scheidingstekens vervangen door \.

De vereisten verschillen per besturingssysteem:

Linux

In deze zelfstudie wordt ervan uitgegaan dat u Ubuntu Linux gebruikt. De stappen in deze zelfstudie zijn getest met Ubuntu 18.04.

Om deze zelfstudie in Linux te voltooien installeert u de volgende software in uw lokale Linux-omgeving:

Installeer GCC, Git, cmakeen alle vereiste afhankelijkheden met behulp van de opdracht apt-get:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

Controleer of de versie van cmake hoger is dan 2.8.12 en of de versie van GCC hoger dan 4.4.7.

cmake --version
gcc --version

Windows

Installeer de volgende software in uw lokale Windows-omgeving om deze zelfstudie in Windows te voltooien:

De code downloaden

In deze zelfstudie bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device C-SDK.

Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Azure IoT C-SDK’s en -bibliotheken te klonen op deze locatie:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

Deze bewerking kan enkele minuten in beslag nemen.

De code bouwen

U kunt de code bouwen en uitvoeren met behulp van Visual Studio of cmake op de opdrachtregel.

Visual Studio gebruiken

  1. Open de hoofdmap van de gekloonde opslagplaats. Na enkele seconden maakt de CMake-ondersteuning in Visual Studio alles wat u nodig hebt om het project uit te voeren en fouten op te sporen.

  2. Wanneer Visual Studio klaar is, gaat u in Solution Explorer naar het voorbeeld iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Klik met de rechtermuisknop op het bestand pnp_simple_thermostat.c en selecteer Configuratie voor foutopsporing toevoegen. Selecteer Standaard.

  4. Het bestand launch.vs.json wordt geopend in Visual Studio. Bewerk dit bestand, zoals wordt weergegeven in het volgende fragment, om de vereiste omgevingsvariabelen in te stellen. U hebt een notitie gemaakt van de bereik-ID en de primaire sleutel voor inschrijving na hetinstellen van uw omgeving voor de quickstarts en zelfstudies voor IoT Plug en Play:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. Klik met de rechtermuisknop op het bestand pnp_simple_thermostat.c en selecteer Instellen als opstartitem.

  6. Als u de uitvoering van de code in Visual Studio wilt traceren, voegt u een onderbrekingspunt toe aan de main functie in het bestand pnp_simple_thermostat.c .

  7. U kunt het voorbeeld nu uitvoeren en fouten opsporen vanuit het menu Foutopsporing.

Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Cmake gebruiken om de code te bouwen

U gebruikt het opdrachtregelprogramma cmake om de code te bouwen:

  1. Maak een submap cmake in de hoofdmap van de device-SDK en navigeer naar die map:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Voer de volgende opdrachten uit om de SDK en voorbeelden te genereren:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

Het apparaatvoorbeeld uitvoeren

In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:

  • IOTHUB_DEVICE_SECURITY_TYPE met de waarde DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
  • IOTHUB_DEVICE_DPS_ENDPOINT met de waarde global.azure-devices-provisioning.net.

Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.

U kunt als volgt de voorbeeldtoepassing in de SDK uitvoeren waarmee een IoT Plug en Play-apparaat wordt gesimuleerd en telemetrie van het apparaat wordt verzonden naar uw IoT-hub:

Navigeer vanuit de map cmake naar de map met het uitvoerbare bestand en voer het uit:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

Tip

Om de code-uitvoering in Visual Studio in Windows bij te houden, voegt u een onderbrekingspunt toe aan de functie main in het bestand pnp_simple_thermostat.c.

Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Code valideren met Azure IoT Explorer

Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.

  1. Open Azure IoT Explorer.

  2. Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.

  3. Selecteer + Lokale map toevoegen > op de pagina IoT Plug en Play-instellingen en selecteer de map met lokale modellen waarin u uw modelbestanden hebt opgeslagen.

  4. Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.

  5. Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.

  6. In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.

  7. Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.

  8. U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele extra onderdelen. Selecteer een onderdeel om mee te werken.

  9. Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.

  10. Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.

  11. Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.

  12. Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.

  13. Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.

  14. Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.

  15. Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.

De code bekijken

Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het thermostaatmodel maakt geen gebruik van IoT-Plug en Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.

De apparaatcode maakt gebruik van de standaardfunctie om verbinding te maken met uw IoT-hub:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.

De code maakt gebruik van de Parson-bibliotheek om JSON-objecten in de payloads te parseren die worden verzonden vanuit uw IoT-hub:

// JSON parser
#include "parson.h"

Resources opschonen

Als u klaar bent met de quickstarts en zelfstudies, raadpleegt u Resources opschonen.

In deze zelfstudie leert u hoe u een voorbeeldtoepassing voor IoT Plug en Play-apparaat maakt, deze verbindt met uw IoT-hub en het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing is geschreven in C# en is opgenomen in de Azure IoT SDK voor C#. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.

Code zoeken

Vereisten

Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.

U kunt deze zelfstudie uitvoeren in Linux of Windows. De shell-opdrachten in deze zelfstudie volgen de Linux-conventie voor padscheidingstekens /. Als u de stappen uitvoert in Windows, moet u deze scheidingstekens vervangen door \.

De code downloaden

In deze zelfstudie bereidt u een ontwikkelomgeving voor die u kunt gebruiken om de Azure IoT SDK voor C#-opslagplaats te klonen en te bouwen.

Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats microsoft Azure IoT SDK voor C# (.NET) te klonen op deze locatie:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

De code bouwen

U kunt nu het voorbeeld bouwen en uitvoeren. Voer de volgende opdrachten uit om het voorbeeld te bouwen:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Het apparaatvoorbeeld uitvoeren

Voer de volgende opdracht uit om het voorbeeld uit te voeren:

dotnet run

Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Code valideren met Azure IoT Explorer

Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.

  1. Open Azure IoT Explorer.

  2. Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.

  3. Selecteer + Lokale map toevoegen > op de pagina IoT Plug en Play-instellingen en selecteer de map met lokale modellen waarin u uw modelbestanden hebt opgeslagen.

  4. Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.

  5. Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.

  6. In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.

  7. Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.

  8. U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele extra onderdelen. Selecteer een onderdeel om mee te werken.

  9. Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.

  10. Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.

  11. Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.

  12. Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.

  13. Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.

  14. Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.

  15. Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.

De code bekijken

Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het Digital Twins Definition Language-modelbestand (DTDL) voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.

De apparaatcode maakt verbinding met uw IoT-hub met behulp van de standaardmethode CreateFromConnectionString. Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

De model-id wordt in de code opgeslagen, zoals weergegeven in het volgende fragment:

private const string ModelId = "dtmi:com:example:Thermostat;1";

De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.

Het voorbeeld maakt gebruik van een JSON-bibliotheek om JSON-objecten in de nettoladingen te parseren die worden verzonden vanuit uw IoT-hub:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

Resources opschonen

Als u klaar bent met de quickstarts en zelfstudies, raadpleegt u Resources opschonen.

In deze zelfstudie leert u hoe u een voorbeeldtoepassing voor IoT Plug en Play-apparaat maakt, deze verbindt met uw IoT-hub en het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven in Java en is inbegrepen in de Azure IoT Device SDK voor Java. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.

Code zoeken

Vereisten

Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.

U kunt deze zelfstudie uitvoeren in Linux of Windows. De shell-opdrachten in deze zelfstudie volgen de Linux-conventie voor padscheidingstekens /. Als u de stappen uitvoert in Windows, moet u deze scheidingstekens vervangen door \.

Installeer de volgende software in uw lokale ontwikkelomgeving om deze zelfstudie te voltooien:

De code downloaden

In deze zelfstudie bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device Java-SDK.

Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Azure IoT Java-SDK’s en -bibliotheken te klonen op deze locatie:

git clone https://github.com/Azure/azure-iot-sdk-java.git

De code bouwen

Navigeer naar de hoofdmap van het thermostaatvoorbeeld in de gekloonde Java SDK-opslagplaats en bouw deze:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Het apparaatvoorbeeld uitvoeren

In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:

  • IOTHUB_DEVICE_SECURITY_TYPE met de waarde DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
  • IOTHUB_DEVICE_DPS_ENDPOINT met de waarde global.azure-devices-provisioning.net.

Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.

Voer de toepassing uit vanuit de map /device/iot-device-samples/pnp-device-sample/thermostat-device-sample :

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Het apparaat is nu klaar om opdrachten en updates van eigenschappen te ontvangen, en is begonnen met het verzenden van telemetriegegevens naar de hub. Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Code valideren met Azure IoT Explorer

Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.

  1. Open Azure IoT Explorer.

  2. Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.

  3. Selecteer + Lokale map toevoegen > op de pagina IoT Plug en Play-instellingen en selecteer de map met lokale modellen waarin u uw modelbestanden hebt opgeslagen.

  4. Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.

  5. Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.

  6. In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.

  7. Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.

  8. U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele extra onderdelen. Selecteer een onderdeel om mee te werken.

  9. Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.

  10. Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.

  11. Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.

  12. Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.

  13. Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.

  14. Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.

  15. Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.

De code bekijken

Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.

De apparaatcode maakt gebruik van de standaard DeviceClient-klasse om verbinding te maken met uw IoT-hub. Het apparaat verzendt de model-id van het DTDL-model dat het in de verbindingsaanvraag implementeert. Een apparaat dat een model-id verzendt, is een IoT Plug and Play-apparaat:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

De model-id wordt in de code opgeslagen, zoals weergegeven in het volgende fragment:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

De code die eigenschappen bijwerkt, opdrachten verwerkt en telemetrie verzendt, is identiek aan de code voor een apparaat die de IoT Plug and Play-conventies niet gebruikt.

Het voorbeeld maakt gebruik van een JSON-bibliotheek om JSON-objecten in de nettoladingen te parseren die worden verzonden vanuit uw IoT-hub:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

Resources opschonen

Als u klaar bent met de quickstarts en zelfstudies, raadpleegt u Resources opschonen.

In deze zelfstudie leert u hoe u een voorbeeldtoepassing voor IoT Plug en Play-apparaat maakt, deze verbindt met uw IoT-hub en het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven in Node.js en is opgenomen in de Azure IoT Device-SDK voor Node.js. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.

Code zoeken

Vereisten

Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.

U kunt deze zelfstudie uitvoeren in Linux of Windows. De shell-opdrachten in deze zelfstudie volgen de Linux-conventie voor padscheidingstekens /. Als u de stappen uitvoert in Windows, moet u deze scheidingstekens vervangen door \.

Voor deze zelfstudie hebt u Node.js nodig op uw ontwikkelcomputer. U kunt de nieuwste aanbevolen omgeving voor meerdere platforms downloaden van nodejs.org.

Gebruik de volgende opdracht om de huidige versie van Node.js op uw ontwikkelcomputer te controleren:

node --version

De code downloaden

In deze zelfstudie bereidt u een ontwikkelomgeving voor die kan worden gebruikt voor het klonen en compileren van de Azure IoT Hub Device-SDK voor Node.js.

Open een opdrachtprompt in de map van uw keuze. Voer de volgende opdracht uit om de GitHub-opslagplaats Microsoft Azure IoT SDK voor Node.js te klonen op deze locatie:

git clone https://github.com/Azure/azure-iot-sdk-node

Vereiste bibliotheken installeren

U gebruikt de SDK van het apparaat om de opgenomen voorbeeldcode te maken. De toepassing die u bouwt, simuleert een apparaat dat is verbonden met een IoT-hub. De toepassing verzendt telemetrie en eigenschappen en ontvangt opdrachten.

  1. Ga in een lokaal terminalvenster naar de map van uw gekloonde opslagplaats en navigeer naar de map /azure-iot-sdk-node/device/samples/javascript . Voer vervolgens de volgende opdracht uit om de vereiste bibliotheken te installeren:

    npm install
    

Het voorbeeldapparaat uitvoeren

Met dit voorbeeld wordt een eenvoudig IoT Plug and Play-thermostaatapparaat geïmplementeerd. Het model dat met dit voorbeeld wordt geïmplementeerd, maakt geen gebruik van IoT Plug and Play-onderdelen. Het DTDL-modelbestand voor het thermostaatapparaat definieert de telemetrie, eigenschappen en opdrachten die het apparaat implementeert.

Open het pnp_simple_thermostat.js-bestand . In dit bestand ziet u hoe u het volgende kunt doen:

  1. De vereiste interfaces importeren.
  2. Een handler voor updates en een handler voor opdrachten schrijven.
  3. De gewenste patches voor eigenschappen verwerken en telemetrie verzenden.
  4. Uw apparaat desgewenst inrichten met behulp van Azure Device Provisioning Service (DPS).

In de main-functie kunt u zien hoe alles bij elkaar komt:

  1. Maak het apparaat met behulp van de tekenreeks voor verbinding of richt het apparaat in met behulp van DPS.
  2. Gebruik de optie modelID om het IoT Plug en Play-apparaatmodel op te geven.
  3. Schakel de opdracht-handler in.
  4. Verzend telemetrie van het apparaat naar uw hub.
  5. Haal de apparaatdubbel op en werk de gerapporteerde eigenschappen bij.
  6. Schakel de gewenste handler voor het bijwerken van eigenschappen in.

In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:

  • IOTHUB_DEVICE_SECURITY_TYPE met de waarde DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
  • IOTHUB_DEVICE_DPS_ENDPOINT met de waarde global.azure-devices-provisioning.net.

Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.

Voer de voorbeeldtoepassing uit om een IoT Plug en Play-apparaat te simuleren dat telemetrie verzendt naar uw IoT-hub. Gebruik de volgende opdracht om de voorbeeldtoepassing uit te voeren:

node pnp_simple_thermostat.js

U ziet de volgende uitvoer, wat aangeeft dat het apparaat nu telemetriegegevens naar de hub stuurt en nu klaar is om opdrachten en updates van eigenschappen te ontvangen.

Bevestigingsberichten van apparaat

Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Code valideren met Azure IoT Explorer

Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.

  1. Open Azure IoT Explorer.

  2. Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.

  3. Selecteer + Lokale map toevoegen > op de pagina IoT Plug en Play-instellingen en selecteer de map met lokale modellen waarin u uw modelbestanden hebt opgeslagen.

  4. Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.

  5. Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.

  6. In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.

  7. Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.

  8. U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele extra onderdelen. Selecteer een onderdeel om mee te werken.

  9. Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.

  10. Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.

  11. Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.

  12. Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.

  13. Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.

  14. Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.

  15. Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.

Resources opschonen

Als u klaar bent met de quickstarts en zelfstudies, raadpleegt u Resources opschonen.

In deze zelfstudie leert u hoe u een voorbeeldtoepassing voor IoT Plug en Play-apparaat maakt, deze verbindt met uw IoT-hub en het hulpprogramma Azure IoT Explorer gebruikt om de telemetrie weer te geven die wordt verzonden. De voorbeeldtoepassing wordt geschreven voor Python en is inbegrepen in de Azure IoT Hub Device SDK for Python. Een ontwikkelaar van oplossingen kan het hulpprogramma Azure IoT Explorer gebruiken om inzicht te krijgen in de mogelijkheden van een IoT Plug and Play-apparaat zonder apparaatcode weer te geven.

Code zoeken

Vereisten

Zorg er, voordat u doorgaat, voor dat u uw omgeving hebt ingesteld, inclusief de IoT-hub.

Als u deze zelfstudie wilt voltooien, moet Python zijn geïnstalleerd op uw ontwikkelcomputer. Controleer de Azure IoT Python SDK op de huidige python-versievereisten. U kunt uw Python-versie controleren met de volgende opdracht:

python --version

U kunt de nieuwste aanbevolen versie voor meerdere platforms downloaden van python.org.

Installeer het pakket in uw lokale Python-omgeving als volgt:

pip install azure-iot-device

Kloon de IoT-opslagplaats van de Python-SDK:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

Het voorbeeldapparaat uitvoeren

De map azure-iot-sdk-python/samples/pnp bevat de voorbeeldcode voor het IoT-Plug en Play-apparaat. In deze zelfstudie wordt het simple_thermostat.py-bestand gebruikt. Met deze voorbeeldcode wordt een apparaat geïmplementeerd dat compatibel is met IoT Plug. In de voorbeeldcode wordt gebruikgemaakt van de clientbibliotheek van het Azure IoT Python-apparaat.

Open het bestand simple_thermostat.py in een teksteditor. U ziet het volgende:

  1. Het bestand definieert één dubbele model-id (DTMI) van een apparaat die een unieke aanduiding vormt voor de thermostaat. Er moet een DTMI bekend zijn bij de gebruiker, afhankelijk van het scenario voor de implementatie van het apparaat. In het huidige voorbeeld representeert het model een thermostaat met telemetrie, eigenschappen en opdrachten die zijn gekoppeld aan het bewaken van de temperatuur.

  2. Bevat functies voor het definiëren van implementaties van opdrachthandlers. U schrijft deze handlers om te definiëren hoe het apparaat reageert op opdrachtaanvragen.

  3. Heeft een functie om een opdrachtrespons te definiëren. U kunt een opdrachtrespons maken om een antwoord terug te sturen naar uw IoT-hub.

  4. Hiermee wordt een functie voor het invoeren van toetsenbordaanslagen gedefinieerd, waarmee u de toepassing kunt afsluiten.

  5. Heeft een hoofdfunctie. De hoofdfunctie:

    1. De apparaat-SDK gebruikt om een apparaatclient te maken en verbinding te maken met uw IoT-hub.

    2. Werkt de eigenschappen bij. Het thermostaatmodel definieert targetTemperature en maxTempSinceLastReboot als de twee eigenschappen voor de thermostaat. Eigenschappen worden bijgewerkt met behulp van de methode patch_twin_reported_properties die wordt gedefinieerd op device_client.

    3. Begint te luisteren naar opdrachtaanvrage. Hiervoor wordt gebruikgemaakt van de functie execute_command_listener. De functie stelt een listener in om naar opdrachtverzoeken te luisteren die afkomstig zijn van de service. Wanneer u de listener instelt, geeft u een method_name, user_command_handleren create_user_response_handler.

      • De functie user_command_handler definieert wat het apparaat moet doen wanneer het een opdracht ontvangt.
      • De functie create_user_response_handler maakt een antwoord aan dat naar uw IoT-hub verzonden kan worden wanneer een opdracht met succes wordt uitgevoerd. U kunt dit antwoord bekijken in de portal.
    4. Begint telemetrie te verzenden. De pnp_send_telemetry is gedefinieerd in het bestand pnp_methods.py. De voorbeeldcode gebruikt een lus om deze functie elke acht seconden aan te roepen.

    5. Schakelt alle listeners en taken uit, en sluit de lus af wanneer u op Q of q drukt.

In Uw omgeving instellen hebt u vier omgevingsvariabelen gemaakt om het voorbeeld te configureren om de Device Provisioning Service (DPS) te gebruiken om verbinding te maken met uw IoT-hub:

  • IOTHUB_DEVICE_SECURITY_TYPE met de waarde DPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE met het id-bereik van DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID met de waarde my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY met de primaire sleutel voor inschrijving.
  • IOTHUB_DEVICE_DPS_ENDPOINT met de waarde global.azure-devices-provisioning.net.

Zie het Leesmij-voorbeeld voor meer informatie over de voorbeeldconfiguratie.

Nu u de code hebt gezien, gebruikt u de volgende opdracht om het voorbeeld uit te voeren:

python simple_thermostat.py

U ziet de volgende uitvoer, wat aangeeft dat het apparaat telemetriegegevens naar de hub stuurt en nu klaar is om opdrachten en updates van eigenschappen te ontvangen:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

Laat het voorbeeld actief tijdens het uitvoeren van de volgende stappen.

Code valideren met Azure IoT Explorer

Nadat het voorbeeld van de apparaatclient is gestart, gebruikt u het hulpprogramma Azure IoT Explorer om te verifiëren dat het werkt.

  1. Open Azure IoT Explorer.

  2. Selecteer op de pagina IoT-hubs de optie + Verbinding toevoegen als u nog geen verbinding hebt toegevoegd aan uw IoT-hub. Voer de verbindingsreeks toe voor de IoT-hub die u eerder hebt gemaakt, en selecteer Opslaan.

  3. Selecteer + Lokale map toevoegen > op de pagina IoT Plug en Play-instellingen en selecteer de map met lokale modellen waarin u uw modelbestanden hebt opgeslagen.

  4. Klik op de pagina IoT-hubs op de naam van de hub waarmee u wilt werken. U ziet een lijst met apparaten die zijn geregistreerd bij de IoT-hub.

  5. Klik op de apparaat-id van het apparaat dat u eerder hebt gemaakt.

  6. In het menu aan de linkerkant ziet u de verschillende soorten informatie die beschikbaar zijn voor het apparaat.

  7. Selecteer IoT Plug en Play-onderdelen om de modelgegevens voor uw apparaat weer te geven.

  8. U kunt de verschillende onderdelen van het apparaat weergeven. Het standaardonderdeel en eventuele extra onderdelen. Selecteer een onderdeel om mee te werken.

  9. Selecteer de pagina Telemetrie en selecteer vervolgens Start om de telemetriegegevens te bekijken die via het apparaat worden verzonden voor dit onderdeel.

  10. Selecteer de pagina Eigenschappen (alleen-lezen) om de eigenschappen met het kenmerk Alleen-lezen te bekijken die zijn gerapporteerd voor dit onderdeel.

  11. Selecteer de pagina Eigenschappen (schrijfbaar) om de schrijfbare eigenschappen te bekijken die zijn gerapporteerd voor dit onderdeel.

  12. Selecteer een eigenschap via de bijbehorende naam, voer een waarde voor de eigenschap in, en selecteer Gewenste waarde bijwerken.

  13. Selecteer de knop Vernieuwen om de nieuwe waarde weer te geven.

  14. Selecteer de pagineren Opdrachten om alle opdrachten voor dit onderdeel te bekijken.

  15. Selecteer de opdracht die u wilt testen, en stel de parameter in, indien van toepassing. Selecteer Opdracht verzenden om de opdracht aan te roepen op het apparaat. In het opdrachtpromptvenster waar de voorbeeldcode wordt uitgevoerd, ziet u dat het apparaat reageert op de opdracht.

Resources opschonen

Als u klaar bent met de quickstarts en zelfstudies, raadpleegt u Resources opschonen.

Als u ontwikkelt voor beperkte apparaten, kunt u IoT-Plug en Play gebruiken met:

Dit artikel bevat koppelingen en bronnen voor deze beperkte scenario's.

Vereisten

Veel van de onderstaande voorbeelden vereisen een specifiek hardwareapparaat en de vereisten zijn verschillend voor elk van de voorbeelden. Volg de koppeling naar het relevante voorbeeld voor gedetailleerde vereisten, configuratie en build-instructies.

De SDK voor Embedded C gebruiken

De SDK voor Embedded C biedt een lichtgewicht oplossing voor het verbinden van beperkte apparaten met Azure IoT-services, waaronder het gebruik van de IoT-Plug en Play-conventies. De volgende koppelingen bevatten voorbeelden voor op MCU gebaseerde apparaten en voor educatieve en foutopsporingsdoeleinden.

Een apparaat op basis van MCU gebruiken

Zie Voor een volledige end-to-end-zelfstudie met behulp van de SDK voor Embedded C, Device Provisioning Service en IoT Plug en Play op een MCU, repurpose PIC-IoT Wx Development Board om verbinding te maken met Azure via IoT Hub Device Provisioning Service.

Inleidende voorbeelden

De SDK voor Embedded C-opslagplaats bevat verschillende voorbeelden die laten zien hoe u IoT Plug en Play gebruikt:

Notitie

Deze voorbeelden worden uitgevoerd in Windows en Linux voor educatieve en foutopsporingsdoeleinden. In een productiescenario zijn de voorbeelden alleen bedoeld voor beperkte apparaten.

Eclipse ThreadX gebruiken

Eclipse ThreadX bevat een lichtgewicht laag waarmee systeemeigen connectiviteit met Azure IoT-cloudservices wordt toegevoegd. Deze laag biedt een eenvoudig mechanisme om beperkte apparaten te verbinden met Azure IoT terwijl u de geavanceerde functies van Eclipse ThreadX gebruikt. Zie het overzicht van Eclipse ThreadX voor meer informatie.

Hulpprogrammaketens

De Eclipse ThreadX-voorbeelden worden geleverd met verschillende soorten IDE- en hulpprogrammaketencombinaties, zoals:

Voorbeelden

De volgende tabel bevat voorbeelden die laten zien hoe u aan de slag kunt gaan op verschillende apparaten met Eclipse ThreadX en IoT Plug en Play:

Fabrikant Apparaat Voorbeelden
Microchip ATSAME54-XPRO GCC/CMake • IARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMake • IARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMake • IARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMake • IARSTM32Cube

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u een IoT-Plug en Play-apparaat verbindt met een IoT-hub. Als u meer wilt weten over het bouwen van een oplossing die samenwerkt met uw IoT Plug en Play-apparaten, leest u: