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

Den här snabbstarten visar hur du skapar ett exempelprogram för IoT Plug and Play-enheter, ansluter det till din IoT Hub och använder Azure IoT Explorer-verktyget för att visa telemetrin som skickas. Exempelprogrammet är skrivet i C och ingår i Sdk för Azure IoT-enheter 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 ställt in din miljö, inklusive din IoT-hubb.

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

Kraven skiljer sig åt beroende på operativsystem:

Linux

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

För att slutföra den här snabbstarten i Linux installerar du följande programvara i din lokala Linux-miljö:

Installera GCC, Git, cmake och alla nödvändiga beroenden med hjälp av apt-get 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

För att slutföra den här snabbstarten Windows installera följande programvara på din lokala Windows miljö:

Ladda ned koden

I den här snabbstarten 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 Azure IoT C-SDK:er och GitHub 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 åtgärden tar flera minuter att slutföra.

Skapa koden

Du använder enhets-SDK för att skapa den inkluderade exempelkoden:

  1. Skapa en cmake-underkatalog i rotmappen för enhets-SDK och navigera 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 .
    

Tips

På Windows kan du öppna lösningen som genererades cmake av kommandot i Visual Studio 2019. Öppna projektfilen azure_iot_sdks.sln i cmake-katalogen och ange pnp_simple_thermostat-projektet som startprojekt i lösningen. Nu kan du skapa exemplet i Visual Studio köra det i felsökningsläge.

Kör enhetsexempel

I Konfigurera din miljö skapadedu fyra miljövariabler för att konfigurera exemplet för att använda Enhetsetableringstjänsten (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdet DPS
  • 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 readme-exemplet.

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

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

Tips

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

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Låt exemplet fortsätta att köras när du slutför nästa steg.

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

När enhetsklientexempel startar använder du Verktyget Azure IoT Explorer för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. På sidan IoT-hubbar väljer du + Lägg till anslutning om du inte redan har lagt till en anslutning till din IoT-hubb. Ange anslutningssträngen 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 i IoT-hubben.

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

  6. Menyn till vänster visar de olika typer 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 ytterligare komponenter. Välj en komponent att arbeta med.

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

  10. Välj sidan Egenskaper (skrivskyddade) 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 med namnet , ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet klickar du på 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 och 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 kommandotolkens fönster där exempelkoden körs.

Granska koden

Det här exemplet implementerar en enkel IoT Plug and Play termostatenhet. Den modell 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 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 Hub:

// JSON parser
#include "parson.h"

Rensa resurser

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

Den här snabbstarten visar hur du skapar ett exempel på ett IoT Plug and Play-enhetsprogram, ansluter det till din IoT Hub och använder Azure IoT Explorer-verktyget för att visa telemetrin som skickas. Exempelprogrammet är skrivet i C# och ingår i Azure IoT-exempel 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 ställt in din miljö, inklusive din IoT-hubb.

För att slutföra den här snabbstarten Windows behöver du följande programvara installerad på utvecklingsdatorn:

Ladda ned koden

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

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

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

Skapa koden

Nu kan du skapa exemplet i Visual Studio köra det i felsökningsläge.

  1. Öppna projektfilen azure-iot-samples-csharp\iot-hub\Samples\device\PnpDeviceSamples\Termostat\Termostat.csproj i Visual Studio 2019.

  2. I Visual Studio du till Project > Termostategenskaper > Felsöka. Lägg sedan till följande miljövariabler i projektet:

    Name Värde
    IOTHUB_DEVICE_SECURITY_TYPE DPS
    IOTHUB_DEVICE_DPS_ENDPOINT global.azure-devices-provisioning.net
    IOTHUB_DEVICE_DPS_ID_SCOPE Det värde som du antecknade när du slutförde Konfigurera din miljö
    IOTHUB_DEVICE_DPS_DEVICE_ID my-pnp-device
    IOTHUB_DEVICE_DPS_DEVICE_KEY Det värde som du antecknade när du slutförde Konfigurera din miljö

Nu kan du skapa exemplet i Visual Studio köra det i felsökningsläge.

Kör enhetsexempel

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

Enheten är nu redo att ta emot kommandon och egenskapsuppdateringar och har börjat skicka telemetridata till hubben. Låt exemplet fortsätta att köras när du slutför nästa steg.

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

När enhetsklientexempel startar använder du Verktyget Azure IoT Explorer för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. På sidan IoT-hubbar väljer du + Lägg till anslutning om du inte redan har lagt till en anslutning till din IoT-hubb. Ange anslutningssträngen 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 i IoT-hubben.

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

  6. Menyn till vänster visar de olika typer 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 ytterligare komponenter. Välj en komponent att arbeta med.

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

  10. Välj sidan Egenskaper (skrivskyddade) 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 med namnet , ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet klickar du på 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 och 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 kommandotolkens fönster där exempelkoden körs.

Granska koden

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

Enhetskoden ansluter till din IoT Hub med hjälp av CreateFromConnectionString standardmetoden. 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 kodavsnitt:

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 Hub:

using Newtonsoft.Json;

...

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

Rensa resurser

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

Den här snabbstarten visar hur du skapar ett exempel på ett IoT Plug and Play-enhetsprogram, ansluter det till din IoT Hub och använder Azure IoT Explorer-verktyget för att visa telemetrin som skickas. Exempelprogrammet är skrivet i Java och ingår i Sdk för Azure IoT-enheter 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 ställt in din miljö, inklusive din IoT-hubb.

För att slutföra den här snabbstarten Windows installera följande programvara på din lokala Windows miljö:

Ladda ned koden

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

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

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

Skapa koden

På Windows navigerar du till rotmappen för den klonade Java SDK-lagringsplatsen.

Kör följande kommando för att skapa exempelprogrammet:

mvn install -T 2C -DskipTests

Kör enhetsexempel

I Konfigurera din miljö skapadedu fyra miljövariabler för att konfigurera exemplet för att använda Enhetsetableringstjänsten (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdet DPS
  • 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 readme-exemplet.

Gå till mappen \device\iot-device-samples\pnp-device-sample\termostat-device-sample.

Kör exempelprogrammet genom att köra följande kommando:

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. Låt exemplet fortsätta att köras när du slutför nästa steg.

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

När enhetsklientexempel startar använder du Verktyget Azure IoT Explorer för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. På sidan IoT-hubbar väljer du + Lägg till anslutning om du inte redan har lagt till en anslutning till din IoT-hubb. Ange anslutningssträngen 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 i IoT-hubben.

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

  6. Menyn till vänster visar de olika typer 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 ytterligare komponenter. Välj en komponent att arbeta med.

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

  10. Välj sidan Egenskaper (skrivskyddade) 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 med namnet , ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet klickar du på 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 och 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 kommandotolkens fönster där exempelkoden körs.

Granska koden

Det här exemplet implementerar en enkel IoT Plug and Play termostatenhet. Den modell 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 kodavsnitt:

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 Hub:

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 se Rensa resurser.

Den här snabbstarten visar hur du skapar ett exempel på ett IoT Plug and Play-enhetsprogram, ansluter det till din IoT Hub och använder Azure IoT Explorer-verktyget för att visa telemetrin som skickas. Exempelprogrammet är skrivet i Node.js ingår i Azure IoT-enhetens 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 ställt in din miljö, inklusive din IoT-hubb.

För att slutföra den här snabbstarten behöver 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 snabbstarten 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 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 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
    
  2. Konfigurera miljövariabeln med enhetsanslutningssträngen som du antecknade tidigare:

    set IOTHUB_DEVICE_CONNECTION_STRING=<YourDeviceConnectionString>
    

Kör exempelenheten

Det här exemplet implementerar en enkel IoT Plug and Play termostatenhet. Den modell 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 pnp_simple_thermostat.js fil. 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 fungerar tillsammans:

  1. Skapa enheten från anslutningssträngen eller etablera den med DPS.)
  2. Använd alternativet modelID för att ange vilken IoT Plug and Play enhetsmodell som ska användas.
  3. Aktivera kommandohanteraren.
  4. Skicka telemetri från enheten till hubben.
  5. Hämta enheternas tvilling och uppdatera de rapporterade egenskaperna.
  6. Aktivera önskad egenskapsuppdateringshanterare.

I Konfigurera din miljö skapadedu fyra miljövariabler för att konfigurera exemplet för att använda Enhetsetableringstjänsten (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdet DPS
  • 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 readme-exemplet.

Kör exempelprogrammet för att simulera en IoT Plug and Play enhet som skickar telemetri till din IoT-hubb. Kör exempelprogrammet med 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.

Bekräftelsemeddelanden för enhet

Låt exemplet fortsätta att köras när du slutför nästa steg.

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

När enhetsklientexempel startar använder du Verktyget Azure IoT Explorer för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. På sidan IoT-hubbar väljer du + Lägg till anslutning om du inte redan har lagt till en anslutning till din IoT-hubb. Ange anslutningssträngen 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 i IoT-hubben.

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

  6. Menyn till vänster visar de olika typer 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 ytterligare komponenter. Välj en komponent att arbeta med.

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

  10. Välj sidan Egenskaper (skrivskyddade) 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 med namnet , ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet klickar du på 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 och 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 kommandotolkens fönster där exempelkoden körs.

Rensa resurser

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

Den här snabbstarten visar hur du skapar ett exempel på ett IoT Plug and Play-enhetsprogram, ansluter det till din IoT Hub och använder Azure IoT Explorer-verktyget 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 ställt in din miljö, inklusive din IoT-hubb.

För att slutföra den här snabbstarten behöver du Python 3.7 på utvecklingsdatorn. Du kan ladda ned den senaste rekommenderade versionen för flera plattformar från python.org. Du kan kontrollera din Python-version med följande kommando:

python --version

Installera paketet enligt följande i din lokala Python-miljö:

pip install azure-iot-device

Klona Python SDK IoT-lagringsplatsen och checka ut huvuddatabasen:

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

Kör exempelenheten

Mappen azure-iot-sdk-python\azure-iot-device\samples\pnp innehåller exempelkoden för IoT-Plug and Play enheten. Den här snabbstarten använder simple_thermostat.py-filen. 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. Observera hur det är:

  1. Definierar en enhetstvillingmodellidentifierare (DTMI) som unikt representerar termostaten. Ett DTMI måste vara känt för användaren och varierar beroende på scenariot för enhetsimplementering. För det aktuella exemplet representerar modellen en termostat som har telemetri, egenskaper och kommandon 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 funktioner för kommandosvar för att skicka ett svar tillbaka till din IoT-hubb.

  4. Definierar en lyssnarfunktion för indatatangentbord så att du kan avsluta programmet.

  5. Har en huvudfunktion. Huvudfunktionen:

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

    2. Uppdaterar egenskaper. Modellen som vi använder, Termostat, definierar och som två egenskaper för vår targetTemperature maxTempSinceLastReboot termostat, så det är det vi kommer att använda. Egenskaperna uppdateras med hjälp av patch_twin_reported_properties metoden som definierats på device_client .

    3. Börjar lyssna efter kommandobegäranden med hjälp execute_command_listener-funktionen. Funktionen ställer in en "lyssnare" för att lyssna efter kommandon som kommer från tjänsten. När du ställer in lyssnaren anger du method_name en , user_command_handler och create_user_response_handler .

      • Funktionen user_command_handler definierar vad enheten ska göra när den tar emot ett kommando. Om ditt larm till exempel går av är effekten av att du får det här kommandot att aktiveras. Tänk på detta som "effekten" av kommandot som anropas.
      • Funktionen create_user_response_handler skapar ett svar som ska skickas till din IoT-hubb när ett kommando körs. Om ditt larm till exempel går av svarar du genom att trycka på snooze, vilket är feedback till tjänsten. Tänk på detta som det svar du ger till tjänsten. Du kan visa det här svaret i portalen.
    4. Börjar skicka telemetri. Den 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ö skapadedu fyra miljövariabler för att konfigurera exemplet för att använda Enhetsetableringstjänsten (DPS) för att ansluta till din IoT-hubb:

  • IOTHUB_DEVICE_SECURITY_TYPE med värdet DPS
  • 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 readme-exemplet.

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

Låt exemplet fortsätta att köras när du slutför nästa steg.

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

När enhetsklientexempel startar använder du Verktyget Azure IoT Explorer för att kontrollera att det fungerar.

  1. Öppna Azure IoT Explorer.

  2. På sidan IoT-hubbar väljer du + Lägg till anslutning om du inte redan har lagt till en anslutning till din IoT-hubb. Ange anslutningssträngen 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 i IoT-hubben.

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

  6. Menyn till vänster visar de olika typer 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 ytterligare komponenter. Välj en komponent att arbeta med.

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

  10. Välj sidan Egenskaper (skrivskyddade) 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 med namnet , ange ett nytt värde för den och välj Uppdatera önskat värde.

  13. Om du vill se det nya värdet klickar du på 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 och 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 kommandotolkens fönster där exempelkoden körs.

Rensa resurser

Om du är klar med snabbstarterna och självstudierna kan du se 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 kraven är olika för vart och ett av exemplen. Följ länken till relevant exempel för detaljerade krav, konfiguration och bygginstruktioner.

Använda SDK för Embedded C

SDK för Embedded 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 för utbildnings- och felsökningsändamål.

Använda en MCU-baserad enhet

En fullständig självstudie från start till slut med SDK 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.

Introduktionsexempel

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

Anteckning

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

Använda Azure RTOS

Azure RTOS ett enkelt lager som lägger till inbyggd anslutning till Azure IoT-molntjänster. Det här lagret ger en enkel mekanism för att ansluta begränsade enheter till Azure IoT med hjälp av de avancerade funktionerna i Azure RTOS. Mer information finns i Vad är Microsoft Azure RTOS.

Verktygskedjor

De Azure RTOS exemplen tillhandahålls med olika typer av kombinationer av IDE och verktygskedja, till exempel:

Exempel

I följande tabell visas exempel som visar hur du kommer igång på olika enheter med Azure RTOS 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: