Självstudie: Anslut ett exempel på ett IoT Plug and Play-enhetsprogram som körs på Linux eller Windows till IoT Hub

Den här självstudien visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT-hubb och använder verktyget Azure IoT Explorer för att visa telemetrin som skickas. Exempelprogrammet är skrivet i C och ingår i Azure IoT-enhets-SDK för C. En lösningsbyggare kan använda Verktyget Azure IoT Explorer för att förstå funktionerna i en IoT Plug and Play-enhet utan att behöva visa någon enhetskod.

Sökkod

Förutsättningar

Innan du fortsätter kontrollerar du att du har konfigurerat din miljö, inklusive din IoT-hubb.

Du kan köra den här självstudien i Linux eller Windows. Shell-kommandona i den här självstudien följer Linux-konventionen för sökvägsavgränsare ,/ om du följer med i Windows måste du växla dessa avgränsare mot "\".

Förutsättningarna skiljer sig åt beroende på operativsystem:

Linux

Den här självstudien förutsätter att du använder Ubuntu Linux. Stegen i den här självstudien har testats med Ubuntu 18.04.

Slutför den här självstudien om Linux genom att installera följande programvara i din lokala Linux-miljö:

Installera GCC, Git, cmake och alla nödvändiga beroenden apt-get med kommandot :

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

Kontrollera att versionen av cmake är över 2.8.12 och att versionen av GCC är över 4.4.7.

cmake --version
gcc --version

Windows

Slutför den här självstudien i Windows genom att installera följande programvara i din lokala Windows-miljö:

Ladda ned koden

I den här självstudien förbereder du en utvecklingsmiljö som du kan använda för att klona och skapa Azure IoT Hub Device C SDK.

Öppna en kommandotolk i valfri katalog. Kör följande kommando för att klona GitHub-lagringsplatsen azure IoT C SDK:er och bibliotek till den här platsen:

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

Förvänta dig att den här åtgärden tar flera minuter att slutföra.

Skapa koden

Du kan skapa och köra koden med hjälp av Visual Studio eller cmake på kommandoraden.

Använda Visual Studio

  1. Öppna rotmappen för den klonade lagringsplatsen. Efter ett par sekunder skapar CMake-stödet i Visual Studio allt du behöver för att köra och felsöka projektet.

  2. När Visual Studio är klart går du till Solution Explorer och går till exempel iothub_client/samples/pnp/pnp_simple_thermostat/.

  3. Högerklicka på filen pnp_simple_thermostat.c och välj Lägg till felsökningskonfiguration. Välj Standard.

  4. Visual Studio öppnar filen launch.vs.json . Redigera den här filen enligt följande kodfragment för att ange de miljövariabler som krävs. Du antecknade primärnyckeln för omfångs-ID och registrering när du slutförde konfigurationen av din miljö för snabbstarter och självstudier för IoT Plug and 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. Högerklicka på filen pnp_simple_thermostat.c och välj Ange som startobjekt.

  6. Om du vill spåra kodkörningen i Visual Studio lägger du till main en brytpunkt i funktionen i filen pnp_simple_thermostat.c .

  7. Nu kan du köra och felsöka exemplet från felsökningsmenyn.

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Se till att exemplet körs när du slutför nästa steg.

Använda cmake för att skapa koden

Du använder kommandoradsverktyget cmake för att skapa koden:

  1. Skapa en cmake-underkatalog i rotmappen för enhetens SDK och gå till den mappen:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. Kör följande kommandon för att skapa SDK och exempel:

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

Kör enhetsexemplet

I Konfigurera din miljö skapade du fyra miljövariabler för att konfigurera exemplet för att använda Device Provisioning Service (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdetDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE med DPS-ID-omfånget.
  • IOTHUB_DEVICE_DPS_DEVICE_ID med värdet my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY med den primära registreringsnyckeln.
  • IOTHUB_DEVICE_DPS_ENDPOINT med värdet global.azure-devices-provisioning.net.

Mer information om exempelkonfigurationen finns i exempelläsningen.

Så här kör du exempelprogrammet i SDK som simulerar en IoT Plug and Play-enhet som skickar telemetri till din IoT-hubb:

Från mappen cmake navigerar du till mappen som innehåller den körbara filen och kör den:

# 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

Dricks

Om du vill spåra kodkörningen i Visual Studio i Windows lägger du till main en brytpunkt i funktionen i filen pnp_simple_thermostat.c .

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Se till att exemplet körs när du slutför nästa steg.

Använda Azure IoT Explorer för att verifiera koden

När enhetsklientexemplet har startat använder du Azure IoT Explorer-verktyget för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. Om du inte redan har lagt till en anslutning till din IoT-hubb på sidan IoT-hubbar väljer du + Lägg till anslutning. Ange anslutningssträng för den IoT-hubb som du skapade tidigare och välj Spara.

  3. På sidan IoT Plug and Play Inställningar väljer du + Lägg till > lokal mapp och väljer mappen lokala modeller där du sparade modellfilerna.

  4. På sidan IoT-hubbar klickar du på namnet på den hubb som du vill arbeta med. Du ser en lista över enheter som är registrerade på IoT-hubben.

  5. Klicka på Enhets-ID för den enhet som du skapade tidigare.

  6. Menyn till vänster visar de olika typerna av information som är tillgängliga för enheten.

  7. Välj IoT Plug and Play-komponenter för att visa modellinformationen för din enhet.

  8. Du kan visa de olika komponenterna på enheten. Standardkomponenten och eventuella extra komponenter. Välj en komponent att arbeta med.

  9. Välj sidan Telemetri och välj sedan Start för att visa telemetridata som enheten skickar för den här komponenten.

  10. Välj sidan Egenskaper (skrivskyddad) för att visa de skrivskyddade egenskaper som rapporterats för den här komponenten.

  11. Välj sidan Egenskaper (skrivbar) för att visa de skrivbara egenskaper som du kan uppdatera för den här komponenten.

  12. Välj en egenskap efter dess namn, ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet väljer du knappen Uppdatera .

  14. Välj sidan Kommandon för att visa alla kommandon för den här komponenten.

  15. Välj det kommando som du vill testa för att ange parametern om det finns någon. Välj Skicka kommando för att anropa kommandot på enheten. Du kan se att enheten svarar på kommandot i kommandotolken där exempelkoden körs.

Granska koden

Det här exemplet implementerar en enkel IoT Plug and Play-termostatenhet. Termostatmodellen använder inte IoT Plug and Play-komponenter. DTDL-modellfilen för termostatenheten definierar telemetri, egenskaper och kommandon som enheten implementerar.

Enhetskoden använder standardfunktionen för att ansluta till din IoT-hubb:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Enheten skickar modell-ID:t för den DTDL-modell som den implementerar i anslutningsbegäran. En enhet som skickar ett modell-ID är en IoT Plug and Play-enhet:

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

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Koden som uppdaterar egenskaper, hanterar kommandon och skickar telemetri är identisk med koden för en enhet som inte använder IoT Plug and Play-konventionerna.

Koden använder Parson-biblioteket för att parsa JSON-objekt i nyttolaster som skickas från din IoT-hubb:

// JSON parser
#include "parson.h"

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du läsa Rensa resurser.

Den här självstudien visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT-hubb och använder verktyget Azure IoT Explorer för att visa telemetrin som skickas. Exempelprogrammet är skrivet i C# och ingår i Azure IoT SDK för C#. En lösningsbyggare kan använda Verktyget Azure IoT Explorer för att förstå funktionerna i en IoT Plug and Play-enhet utan att behöva visa någon enhetskod.

Sökkod

Förutsättningar

Innan du fortsätter kontrollerar du att du har konfigurerat din miljö, inklusive din IoT-hubb.

Du kan köra den här självstudien i Linux eller Windows. Shell-kommandona i den här självstudien följer Linux-konventionen för sökvägsavgränsare ,/ om du följer med i Windows måste du växla dessa avgränsare mot "\".

Ladda ned koden

I den här självstudien förbereder du en utvecklingsmiljö som du kan använda för att klona och skapa Azure IoT SDK för C#-lagringsplatsen.

Öppna en kommandotolk i valfri mapp. Kör följande kommando för att klona GitHub-lagringsplatsen Microsoft Azure IoT SDK för C# (.NET) till den här platsen:

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

Skapa koden

Nu kan du skapa exemplet och köra det. Kör följande kommandon för att skapa exemplet:

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

Kör enhetsexemplet

Kör följande kommando för att köra exemplet:

dotnet run

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Se till att exemplet körs när du slutför nästa steg.

Använda Azure IoT Explorer för att verifiera koden

När enhetsklientexemplet har startat använder du Azure IoT Explorer-verktyget för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. Om du inte redan har lagt till en anslutning till din IoT-hubb på sidan IoT-hubbar väljer du + Lägg till anslutning. Ange anslutningssträng för den IoT-hubb som du skapade tidigare och välj Spara.

  3. På sidan IoT Plug and Play Inställningar väljer du + Lägg till > lokal mapp och väljer mappen lokala modeller där du sparade modellfilerna.

  4. På sidan IoT-hubbar klickar du på namnet på den hubb som du vill arbeta med. Du ser en lista över enheter som är registrerade på IoT-hubben.

  5. Klicka på Enhets-ID för den enhet som du skapade tidigare.

  6. Menyn till vänster visar de olika typerna av information som är tillgängliga för enheten.

  7. Välj IoT Plug and Play-komponenter för att visa modellinformationen för din enhet.

  8. Du kan visa de olika komponenterna på enheten. Standardkomponenten och eventuella extra komponenter. Välj en komponent att arbeta med.

  9. Välj sidan Telemetri och välj sedan Start för att visa telemetridata som enheten skickar för den här komponenten.

  10. Välj sidan Egenskaper (skrivskyddad) för att visa de skrivskyddade egenskaper som rapporterats för den här komponenten.

  11. Välj sidan Egenskaper (skrivbar) för att visa de skrivbara egenskaper som du kan uppdatera för den här komponenten.

  12. Välj en egenskap efter dess namn, ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet väljer du knappen Uppdatera .

  14. Välj sidan Kommandon för att visa alla kommandon för den här komponenten.

  15. Välj det kommando som du vill testa för att ange parametern om det finns någon. Välj Skicka kommando för att anropa kommandot på enheten. Du kan se att enheten svarar på kommandot i kommandotolken där exempelkoden körs.

Granska koden

Det här exemplet implementerar en enkel IoT Plug and Play-termostatenhet. Modellen som det här exemplet implementerar använder inte IoT Plug and Play-komponenter. DTDL-modellfilen (Digital Twins Definition Language) för termostatenheten definierar telemetri, egenskaper och kommandon som enheten implementerar.

Enhetskoden ansluter till din IoT-hubb med standardmetoden CreateFromConnectionString . Enheten skickar modell-ID:t för den DTDL-modell som den implementerar i anslutningsbegäran. En enhet som skickar ett modell-ID är en IoT Plug and Play-enhet:

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}.");
  });
}

Modell-ID:t lagras i koden enligt följande kodfragment:

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

Koden som uppdaterar egenskaper, hanterar kommandon och skickar telemetri är identisk med koden för en enhet som inte använder IoT Plug and Play-konventionerna.

Exemplet använder ett JSON-bibliotek för att parsa JSON-objekt i nyttolaster som skickas från din IoT-hubb:

using Newtonsoft.Json;

...

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

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du läsa Rensa resurser.

Den här självstudien visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT-hubb och använder verktyget Azure IoT Explorer för att visa telemetrin som skickas. Exempelprogrammet är skrivet i Java och ingår i Azure IoT-enhetens SDK för Java. En lösningsbyggare kan använda Verktyget Azure IoT Explorer för att förstå funktionerna i en IoT Plug and Play-enhet utan att behöva visa någon enhetskod.

Sökkod

Förutsättningar

Innan du fortsätter kontrollerar du att du har konfigurerat din miljö, inklusive din IoT-hubb.

Du kan köra den här självstudien i Linux eller Windows. Shell-kommandona i den här självstudien följer Linux-konventionen för sökvägsavgränsare ,/ om du följer med i Windows måste du växla dessa avgränsare mot "\".

Slutför den här självstudien genom att installera följande programvara i din lokala utvecklingsmiljö:

Ladda ned koden

I den här självstudien förbereder du en utvecklingsmiljö som du kan använda för att klona och skapa Azure IoT Hub Device Java SDK.

Öppna en kommandotolk i valfri katalog. Kör följande kommando för att klona GitHub-lagringsplatsen Azure IoT Java SDK:er och bibliotek till den här platsen:

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

Skapa koden

Gå till rotmappen för termostatexemplet i den klonade Java SDK-lagringsplatsen och skapa den:

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

Kör enhetsexemplet

I Konfigurera din miljö skapade du fyra miljövariabler för att konfigurera exemplet för att använda Device Provisioning Service (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdetDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE med DPS-ID-omfånget.
  • IOTHUB_DEVICE_DPS_DEVICE_ID med värdet my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY med den primära registreringsnyckeln.
  • IOTHUB_DEVICE_DPS_ENDPOINT med värdet global.azure-devices-provisioning.net.

Mer information om exempelkonfigurationen finns i exempelläsningen.

Kör programmet från mappen /device/iot-device-samples/pnp-device-sample/thermostat-device-sample:

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

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Se till att exemplet körs när du slutför nästa steg.

Använda Azure IoT Explorer för att verifiera koden

När enhetsklientexemplet har startat använder du Azure IoT Explorer-verktyget för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. Om du inte redan har lagt till en anslutning till din IoT-hubb på sidan IoT-hubbar väljer du + Lägg till anslutning. Ange anslutningssträng för den IoT-hubb som du skapade tidigare och välj Spara.

  3. På sidan IoT Plug and Play Inställningar väljer du + Lägg till > lokal mapp och väljer mappen lokala modeller där du sparade modellfilerna.

  4. På sidan IoT-hubbar klickar du på namnet på den hubb som du vill arbeta med. Du ser en lista över enheter som är registrerade på IoT-hubben.

  5. Klicka på Enhets-ID för den enhet som du skapade tidigare.

  6. Menyn till vänster visar de olika typerna av information som är tillgängliga för enheten.

  7. Välj IoT Plug and Play-komponenter för att visa modellinformationen för din enhet.

  8. Du kan visa de olika komponenterna på enheten. Standardkomponenten och eventuella extra komponenter. Välj en komponent att arbeta med.

  9. Välj sidan Telemetri och välj sedan Start för att visa telemetridata som enheten skickar för den här komponenten.

  10. Välj sidan Egenskaper (skrivskyddad) för att visa de skrivskyddade egenskaper som rapporterats för den här komponenten.

  11. Välj sidan Egenskaper (skrivbar) för att visa de skrivbara egenskaper som du kan uppdatera för den här komponenten.

  12. Välj en egenskap efter dess namn, ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet väljer du knappen Uppdatera .

  14. Välj sidan Kommandon för att visa alla kommandon för den här komponenten.

  15. Välj det kommando som du vill testa för att ange parametern om det finns någon. Välj Skicka kommando för att anropa kommandot på enheten. Du kan se att enheten svarar på kommandot i kommandotolken där exempelkoden körs.

Granska koden

Det här exemplet implementerar en enkel IoT Plug and Play-termostatenhet. Modellen som det här exemplet implementerar använder inte IoT Plug and Play-komponenter. DTDL-modellfilen för termostatenheten definierar telemetri, egenskaper och kommandon som enheten implementerar.

Enhetskoden använder standardklassen DeviceClient för att ansluta till din IoT-hubb. Enheten skickar modell-ID:t för den DTDL-modell som den implementerar i anslutningsbegäran. En enhet som skickar ett modell-ID är en IoT Plug and Play-enhet:

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();
}

Modell-ID:t lagras i koden enligt följande kodfragment:

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

Koden som uppdaterar egenskaper, hanterar kommandon och skickar telemetri är identisk med koden för en enhet som inte använder IoT Plug and Play-konventionerna.

Exemplet använder ett JSON-bibliotek för att parsa JSON-objekt i nyttolaster som skickas från din IoT-hubb:

import com.google.gson.Gson;

...

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

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du läsa Rensa resurser.

Den här självstudien visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT-hubb och använder verktyget Azure IoT Explorer för att visa telemetrin som skickas. Exempelprogrammet är skrivet i Node.js och ingår i Azure IoT-enhets-SDK för Node.js. En lösningsbyggare kan använda Verktyget Azure IoT Explorer för att förstå funktionerna i en IoT Plug and Play-enhet utan att behöva visa någon enhetskod.

Sökkod

Förutsättningar

Innan du fortsätter kontrollerar du att du har konfigurerat din miljö, inklusive din IoT-hubb.

Du kan köra den här självstudien i Linux eller Windows. Shell-kommandona i den här självstudien följer Linux-konventionen för sökvägsavgränsare ,/ om du följer med i Windows måste du växla dessa avgränsare mot "\".

För att slutföra den här självstudien behöver du Node.js på utvecklingsdatorn. Du kan ladda ned den senaste rekommenderade versionen för flera plattformar från nodejs.org.

Du kan kontrollera den aktuella versionen av Node.js på utvecklingsdatorn med följande kommando:

node --version

Ladda ned koden

I den här självstudien förbereder du en utvecklingsmiljö som du kan använda för att klona och skapa Azure IoT Hub Device SDK för Node.js.

Öppna en kommandotolk i valfri katalog. Kör följande kommando för att klona Microsoft Azure IoT SDK för Node.js GitHub-lagringsplats till den här platsen:

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

Installera nödvändiga bibliotek

Du använder enhets-SDK:n för att skapa den inkluderade exempelkoden. Programmet du skapar simulerar en enhet som ansluter till en IoT-hubb. Programmet skickar telemetri och egenskaper och tar emot kommandon.

  1. I ett lokalt terminalfönster går du till mappen för den klonade lagringsplatsen och navigerar till mappen /azure-iot-sdk-node/device/samples/javascript . Kör sedan följande kommando för att installera de bibliotek som krävs:

    npm install
    

Kör exempelenheten

Det här exemplet implementerar en enkel IoT Plug and Play-termostatenhet. Modellen som det här exemplet implementerar använder inte IoT Plug and Play-komponenter. DTDL-modellfilen för termostatenheten definierar telemetri, egenskaper och kommandon som enheten implementerar.

Öppna filen pnp_simple_thermostat.js . I den här filen kan du se hur du:

  1. Importera de gränssnitt som krävs.
  2. Skriv en egenskapsuppdateringshanterare och en kommandohanterare.
  3. Hantera önskade egenskapskorrigeringar och skicka telemetri.
  4. Du kan också etablera din enhet med hjälp av Azure Device Provisioning Service (DPS).

I huvudfunktionen kan du se hur allt kommer ihop:

  1. Skapa enheten från din anslutningssträng eller etablera den med DPS.)
  2. Använd alternativet modelID för att ange enhetsmodellen IoT Plug and Play.
  3. Aktivera kommandohanteraren.
  4. Skicka telemetri från enheten till din hubb.
  5. Hämta enhetstvillingen och uppdatera de rapporterade egenskaperna.
  6. Aktivera önskad egenskapsuppdateringshanterare.

I Konfigurera din miljö skapade du fyra miljövariabler för att konfigurera exemplet för att använda Device Provisioning Service (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdetDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE med DPS-ID-omfånget.
  • IOTHUB_DEVICE_DPS_DEVICE_ID med värdet my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY med den primära registreringsnyckeln.
  • IOTHUB_DEVICE_DPS_ENDPOINT med värdet global.azure-devices-provisioning.net.

Mer information om exempelkonfigurationen finns i exempelläsningen.

Kör exempelprogrammet för att simulera en IoT Plug and Play-enhet som skickar telemetri till din IoT-hubb. Om du vill köra exempelprogrammet använder du följande kommando:

node pnp_simple_thermostat.js

Du ser följande utdata som anger att enheten har börjat skicka telemetridata till hubben och nu är redo att ta emot kommandon och egenskapsuppdateringar.

Enhetsbekräftelsemeddelanden

Se till att exemplet körs när du slutför nästa steg.

Använda Azure IoT Explorer för att verifiera koden

När enhetsklientexemplet har startat använder du Azure IoT Explorer-verktyget för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. Om du inte redan har lagt till en anslutning till din IoT-hubb på sidan IoT-hubbar väljer du + Lägg till anslutning. Ange anslutningssträng för den IoT-hubb som du skapade tidigare och välj Spara.

  3. På sidan IoT Plug and Play Inställningar väljer du + Lägg till > lokal mapp och väljer mappen lokala modeller där du sparade modellfilerna.

  4. På sidan IoT-hubbar klickar du på namnet på den hubb som du vill arbeta med. Du ser en lista över enheter som är registrerade på IoT-hubben.

  5. Klicka på Enhets-ID för den enhet som du skapade tidigare.

  6. Menyn till vänster visar de olika typerna av information som är tillgängliga för enheten.

  7. Välj IoT Plug and Play-komponenter för att visa modellinformationen för din enhet.

  8. Du kan visa de olika komponenterna på enheten. Standardkomponenten och eventuella extra komponenter. Välj en komponent att arbeta med.

  9. Välj sidan Telemetri och välj sedan Start för att visa telemetridata som enheten skickar för den här komponenten.

  10. Välj sidan Egenskaper (skrivskyddad) för att visa de skrivskyddade egenskaper som rapporterats för den här komponenten.

  11. Välj sidan Egenskaper (skrivbar) för att visa de skrivbara egenskaper som du kan uppdatera för den här komponenten.

  12. Välj en egenskap efter dess namn, ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet väljer du knappen Uppdatera .

  14. Välj sidan Kommandon för att visa alla kommandon för den här komponenten.

  15. Välj det kommando som du vill testa för att ange parametern om det finns någon. Välj Skicka kommando för att anropa kommandot på enheten. Du kan se att enheten svarar på kommandot i kommandotolken där exempelkoden körs.

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du läsa Rensa resurser.

Den här självstudien visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT-hubb och använder verktyget Azure IoT Explorer för att visa telemetrin som skickas. Exempelprogrammet är skrivet för Python och ingår i Azure IoT Hub Device SDK för Python. En lösningsbyggare kan använda Verktyget Azure IoT Explorer för att förstå funktionerna i en IoT Plug and Play-enhet utan att behöva visa någon enhetskod.

Sökkod

Förutsättningar

Innan du fortsätter kontrollerar du att du har konfigurerat din miljö, inklusive din IoT-hubb.

För att slutföra den här självstudien behöver du Python installerat på utvecklingsdatorn. Kontrollera Azure IoT Python SDK för aktuella versionskrav för Python. Du kan kontrollera Python-versionen med följande kommando:

python --version

Du kan ladda ned den senaste rekommenderade versionen för flera plattformar från python.org.

Installera paketet på följande sätt i din lokala Python-miljö:

pip install azure-iot-device

Klona Python SDK IoT-lagringsplatsen:

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

Kör exempelenheten

Mappen azure-iot-sdk-python/samples/pnp innehåller exempelkoden för IoT Plug and Play-enheten. I den här självstudien används filen simple_thermostat.py . Den här exempelkoden implementerar en IoT Plug and Play-kompatibel enhet och använder Azure IoT Python-enhetsklientbiblioteket.

Öppna filen simple_thermostat.py i en textredigerare. Lägg märke till hur det:

  1. Definierar en modellidentifierare för en enskild enhetstvilling (DTMI) som unikt representerar termostaten. En DTMI måste vara känd för användaren och varierar beroende på scenariot med enhetsimplementering. För det aktuella exemplet representerar modellen en termostat som har telemetri, egenskaper och kommandon som är associerade med övervakningstemperaturen.

  2. Har funktioner för att definiera implementeringar av kommandohanterare. Du skriver dessa hanterare för att definiera hur enheten svarar på kommandobegäranden.

  3. Har en funktion för att definiera ett kommandosvar. Du skapar kommandosvarsfunktioner för att skicka tillbaka ett svar till din IoT-hubb.

  4. Definierar en indatafunktion för tangentbordslyssnare så att du kan avsluta programmet.

  5. Har en huvudfunktion . Huvudfunktionen:

    1. Använder enhetens SDK för att skapa en enhetsklient och ansluta till din IoT-hubb.

    2. Uppdateringar egenskaper. Termostatmodellen definierar targetTemperature och maxTempSinceLastReboot som de två egenskaperna för termostaten. Egenskaperna uppdateras med hjälp av den patch_twin_reported_properties metod som definierats i device_client.

    3. Börjar lyssna efter kommandobegäranden med hjälp av funktionen execute_command_listener . Funktionen konfigurerar en lyssnare för att lyssna efter kommandon som kommer från tjänsten. När du konfigurerar lyssnaren anger du en method_name, user_command_handleroch create_user_response_handler.

      • Funktionen user_command_handler definierar vad enheten ska göra när den tar emot ett kommando.
      • Funktionen create_user_response_handler skapar ett svar som ska skickas till din IoT-hubb när ett kommando körs. Du kan visa det här svaret i portalen.
    4. Börjar skicka telemetri. Pnp_send_telemetry definieras i filen pnp_methods.py. Exempelkoden använder en loop för att anropa den här funktionen var åttonde sekund.

    5. Inaktiverar alla lyssnare och uppgifter och finns i loopen när du trycker på Q eller q.

I Konfigurera din miljö skapade du fyra miljövariabler för att konfigurera exemplet för att använda Device Provisioning Service (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdetDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE med DPS-ID-omfånget.
  • IOTHUB_DEVICE_DPS_DEVICE_ID med värdet my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY med den primära registreringsnyckeln.
  • IOTHUB_DEVICE_DPS_ENDPOINT med värdet global.azure-devices-provisioning.net.

Mer information om exempelkonfigurationen finns i exempelläsningen.

Nu när du har sett koden använder du följande kommando för att köra exemplet:

python simple_thermostat.py

Du ser följande utdata som anger att enheten skickar telemetridata till hubben och nu är redo att ta emot kommandon och egenskapsuppdateringar:

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

Se till att exemplet körs när du slutför nästa steg.

Använda Azure IoT Explorer för att verifiera koden

När enhetsklientexemplet har startat använder du Azure IoT Explorer-verktyget för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. Om du inte redan har lagt till en anslutning till din IoT-hubb på sidan IoT-hubbar väljer du + Lägg till anslutning. Ange anslutningssträng för den IoT-hubb som du skapade tidigare och välj Spara.

  3. På sidan IoT Plug and Play Inställningar väljer du + Lägg till > lokal mapp och väljer mappen lokala modeller där du sparade modellfilerna.

  4. På sidan IoT-hubbar klickar du på namnet på den hubb som du vill arbeta med. Du ser en lista över enheter som är registrerade på IoT-hubben.

  5. Klicka på Enhets-ID för den enhet som du skapade tidigare.

  6. Menyn till vänster visar de olika typerna av information som är tillgängliga för enheten.

  7. Välj IoT Plug and Play-komponenter för att visa modellinformationen för din enhet.

  8. Du kan visa de olika komponenterna på enheten. Standardkomponenten och eventuella extra komponenter. Välj en komponent att arbeta med.

  9. Välj sidan Telemetri och välj sedan Start för att visa telemetridata som enheten skickar för den här komponenten.

  10. Välj sidan Egenskaper (skrivskyddad) för att visa de skrivskyddade egenskaper som rapporterats för den här komponenten.

  11. Välj sidan Egenskaper (skrivbar) för att visa de skrivbara egenskaper som du kan uppdatera för den här komponenten.

  12. Välj en egenskap efter dess namn, ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet väljer du knappen Uppdatera .

  14. Välj sidan Kommandon för att visa alla kommandon för den här komponenten.

  15. Välj det kommando som du vill testa för att ange parametern om det finns någon. Välj Skicka kommando för att anropa kommandot på enheten. Du kan se att enheten svarar på kommandot i kommandotolken där exempelkoden körs.

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du läsa Rensa resurser.

Om du utvecklar för begränsade enheter kan du använda IoT Plug and Play med:

Den här artikeln innehåller länkar och resurser för dessa begränsade scenarier.

Förutsättningar

Många av exemplen nedan kräver en specifik maskinvaruenhet och förutsättningarna är olika för vart och ett av exemplen. Följ länken till det relevanta exemplet för detaljerade krav, konfiguration och bygginstruktioner.

Använda SDK:t för Embedded C

SDK för inbäddad C erbjuder en enkel lösning för att ansluta begränsade enheter till Azure IoT-tjänster, inklusive användning av IoT Plug and Play-konventionerna. Följande länkar innehåller exempel för MCU-baserade enheter och i utbildnings- och felsökningssyfte.

Använda en MCU-baserad enhet

En fullständig självstudie från slutpunkt till slutpunkt med hjälp av SDK:n för Embedded C, Device Provisioning Service och IoT Plug and Play på en MCU finns i Repurpose PIC-IoT Wx Development Board to Anslut to Azure through IoT Hub Device Provisioning Service (Återanvänd PIC-IoT Wx Development Board för att Anslut till Azure via IoT Hub Device Provisioning Service.

Introduktionsexempel

SDK för inbäddad C-lagringsplats innehåller flera exempel som visar hur du använder IoT Plug and Play:

Kommentar

De här exemplen visas när de körs i Windows och Linux i utbildnings- och felsökningssyfte. I ett produktionsscenario är exemplen endast avsedda för begränsade enheter.

Använda Eclipse ThreadX

Eclipse ThreadX innehåller ett enkelt lager som lägger till intern anslutning till Azure IoT-molntjänster. Det här lagret ger en enkel mekanism för att ansluta begränsade enheter till Azure IoT när du använder de avancerade funktionerna i Eclipse ThreadX. Mer information finns i Översikt över Eclipse ThreadX.

Verktygskedjor

Eclipse ThreadX-exemplen är försett med olika typer av IDE- och verktygskedjakombinationer, till exempel:

Exempel

I följande tabell visas exempel som visar hur du kommer igång på olika enheter med Eclipse ThreadX och IoT Plug and Play:

Tillverkare Enhet Exempel
Mikrochip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Nästa steg

I den här självstudien har du lärt dig hur du ansluter en IoT Plug and Play-enhet till en IoT-hubb. Mer information om hur du skapar en lösning som interagerar med dina IoT Plug and Play-enheter finns i: