Snabbstart: Kontrollera en enhet ansluten till en IoT-hubb

I den här snabbstarten använder du en direktmetod för att styra en simulerad enhet som är ansluten till IoT Hub. IoT Hub är en Azure-tjänst som gör att du kan hantera dina IoT-enheter från molnet och mata in stora volymer av enhetstelemetri till molnet för lagring eller bearbetning. Du kan använda direkta metoder för att fjärr ändra beteendet för enheter som är anslutna till din IoT-hubb.

Snabbstarten använder två färdiga .NET-program:

  • Ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett tjänstprogram. För att kunna ta emot direkta metodanrop ansluter det här programmet till en enhetsspecifik slutpunkt på din IoT-hubb.

  • Ett tjänstprogram som anropar direktmetoderna på den simulerade enheten. För att kunna anropa en direkt metod på en enhet ansluter det här programmet till en serverdelsslutpunkt på din IoT-hubb.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.

  • De två exempelprogram som du kör i den här snabbstarten skrivs med C#. Du behöver .NET SDK 6.0 eller senare på utvecklingsdatorn.

    Du kan ladda ned .NET Core-SDK:n för flera plattformar från .NET.

    Du kan kontrollera den aktuella versionen av C# på utvecklingsdatorn med följande kommando:

    dotnet --version
    
  • Klona eller ladda ned Azure IoT C# SDK från GitHub.

  • Kontrollera att port 8883 är öppen i brandväggen. Enhetsexemplet i den här snabbstarten använder MQTT-protokollet, som kommunicerar över port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer. Mer information och sätt att kringgå det här problemet finns i Ansluta till IoT Hub (MQTT).

Anteckning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget med namnet azure-iot. Den äldre versionen heter azure-cli-iot-ext. Du bör bara ha en version installerad åt gången. Du kan använda kommandot az extension list för att verifiera de för närvarande installerade tilläggen.

Använd az extension remove --name azure-cli-iot-ext för att ta bort den äldre versionen av tillägget.

Använd az extension add --name azure-iot för att lägga till den nya versionen av tillägget.

Om du vill se vilka tillägg som du har installerat använder du az extension list.

I det här avsnittet använder du Azure CLI för att skapa en IoT-hubb och en resursgrupp. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En IoT-hubb fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ditt IoT-program och enheterna.

Om du redan har en IoT-hubb i din Azure-prenumeration kan du hoppa över det här avsnittet.

Så här skapar du en IoT-hubb och en resursgrupp:

  1. Starta din CLI-app. Om du vill köra CLI-kommandona i resten av den här artikeln kopierar du kommandosyntaxen, klistrar in den i CLI-appen, redigerar variabelvärden och trycker på Enter.

    • Om du använder Cloud Shell väljer du knappen Prova på CLI-kommandona för att starta Cloud Shell i ett delat webbläsarfönster. Eller så kan du öppna Cloud Shell på en separat webbläsarflik.
    • Om du använder Azure CLI lokalt startar du CLI-konsolappen och loggar in på Azure CLI.
  2. Kör az extension add för att installera eller uppgradera azure-iot-tillägget till den aktuella versionen.

    az extension add --upgrade --name azure-iot
    
  3. I CLI-appen kör du kommandot az group create för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup på platsen eastus .

    Anteckning

    Du kan också ange en annan plats. Om du vill se tillgängliga platser kör du az account list-locations. Den här snabbstarten använder eastus enligt exempelkommandot.

    az group create --name MyResourceGroup --location eastus
    
  4. Kör kommandot az iot hub create för att skapa en IoT-hubb. Det kan ta några minuter att skapa en IoT-hubb.

    YourIotHubName. Ersätt den här platshållaren och de omgivande klammerparenteserna i följande kommando med det namn du valde för din IoT-hubb. Ett IoT-hubbnamn måste vara globalt unikt i Azure. Använd ditt IoT-hubbnamn i resten av den här snabbstarten var du än ser platshållaren.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Hämta anslutningssträngen för tjänsten

Du behöver också IoT-hubbens tjänstanslutningssträng för att tjänstprogrammet ska kunna ansluta till hubben och hämta meddelandena. Tjänstanslutningssträngen är för din IoT-hubb som helhet och skiljer sig från enhetsanslutningssträngen som du hämtade i föregående avsnitt.

Följande kommando hämtar tjänstanslutningssträngen för din IoT-hubb:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Anteckna tjänstanslutningssträngen. Den ser ut ungefär som:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Du kommer att använda det här värdet senare i snabbstarten.

Simulera en enhet

Det simulerade enhetsprogrammet ansluter till en enhetsspecifik slutpunkt på din IoT-hubb, skickar simulerad telemetri och lyssnar efter direkta metodanrop från din hubb. I den här snabbstarten uppmanar det direkta metodanropet från hubben enheten att ändra det intervall med vilket den skickar telemetri. Den simulerade enheten skickar tillbaka en bekräftelse till hubben när den har kört direktmetoden.

  1. Navigera till C#-exempelprojektets rotmapp i ett lokalt terminalfönster. Navigera sedan till mappen iothub\device\samples\getting started\SimulatedDeviceWithCommand .

  2. Kör följande kommando för att installera de paket som krävs för simulerat enhetsprogram:

    dotnet restore
    
  3. Kör följande kommando för att skapa och köra det simulerade enhetsprogrammet.

    {DeviceConnectionString}: Ersätt den här platshållaren med enhetsanslutningssträngen som du antecknade tidigare.

    dotnet run -- -c "{DeviceConnectionString}"
    

    Följande skärmbild visar utdata när det simulerade enhetsprogrammet skickar telemetri till din IoT-hubb:

    Kör den simulerade enheten

Anropa den direkta metoden

Tjänstprogrammet ansluter till en slutpunkt på tjänstsidan på din IoT-hubb. Programmet gör direkta metodanrop till en enhet via din IoT-hubb och lyssnar efter bekräftelser. Ett IoT Hub tjänstprogram körs vanligtvis i molnet.

  1. Navigera till C#-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Navigera sedan till mappen iothub\service\samples\getting started\InvokeDeviceMethod .

  2. I det lokala terminalfönstret kör du följande kommandon för att installera de bibliotek som krävs för tjänstprogrammet:

    dotnet build
    
  3. I det lokala terminalfönstret kör du följande kommandon för att skapa och köra tjänstprogrammet.

    {ServiceConnectionString}: Ersätt den här platshållaren med IoT Hub tjänstanslutningssträng som du antecknade tidigare.

    {DeviceName}: Ersätt den här platshållaren med namnet på den enhet som du registrerade.

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    Följande skärmbild visar utdata när programmet gör ett direkt metodanrop till enheten och får en bekräftelse:

    Kör tjänstprogrammet

    När du har kört tjänstprogrammet visas ett meddelande i konsolfönstret som kör den simulerade enheten och hur snabbt den skickar meddelanden ändras:

    Ändring i den simulerade klienten

Den här snabbstarten använder två Java-program:

  • Ett simulerat enhetsprogram som svarar på direkta metoder anropas från ett serverdelsprogram.
  • Ett tjänstprogram som anropar direktmetoden på den simulerade enheten.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.

  • Java SE Development Kit 8. I Långsiktigt Java-stöd för Azure och Azure Stack går du till Långsiktigt stöd och väljer Java 8.

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

    java -version
    
  • Apache Maven 3.

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

    mvn --version
    
  • Klona eller ladda ned Azure IoT Java-exempel från GitHub.

  • Kontrollera att port 8883 är öppen i brandväggen. Enhetsexemplet i den här snabbstarten använder MQTT-protokollet, som kommunicerar via port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer. Mer information och sätt att kringgå det här problemet finns i Ansluta till IoT Hub (MQTT).

Anteckning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen heter azure-cli-iot-ext. Du bör bara ha en version installerad i taget. Du kan använda kommandot az extension list för att verifiera de tillägg som är installerade.

Använd az extension remove --name azure-cli-iot-ext för att ta bort den äldre versionen av tillägget.

Använd az extension add --name azure-iot för att lägga till den nya versionen av tillägget.

Om du vill se vilka tillägg som du har installerat använder az extension listdu .

Skapa en IoT Hub

I det här avsnittet använder du Azure CLI för att skapa en IoT-hubb och en resursgrupp. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En IoT-hubb fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ditt IoT-program och enheterna.

Om du redan har en IoT-hubb i din Azure-prenumeration kan du hoppa över det här avsnittet.

Så här skapar du en IoT-hubb och en resursgrupp:

  1. Starta din CLI-app. Om du vill köra CLI-kommandona i resten av den här artikeln kopierar du kommandosyntaxen, klistrar in den i CLI-appen, redigerar variabelvärden och trycker på Enter.

    • Om du använder Cloud Shell väljer du knappen Prova på CLI-kommandona för att starta Cloud Shell i ett delat webbläsarfönster. Eller så kan du öppna Cloud Shell på en separat webbläsarflik.
    • Om du använder Azure CLI lokalt startar du cli-konsolappen och loggar in på Azure CLI.
  2. Kör az extension add för att installera eller uppgradera tillägget azure-iot till den aktuella versionen.

    az extension add --upgrade --name azure-iot
    
  3. Kör kommandot az group create i CLI-appen för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup på platsen eastus .

    Anteckning

    Du kan också ange en annan plats. Om du vill se tillgängliga platser kör du az account list-locations. Den här snabbstarten använder eastus enligt exempelkommandot.

    az group create --name MyResourceGroup --location eastus
    
  4. Kör kommandot az iot hub create för att skapa en IoT-hubb. Det kan ta några minuter att skapa en IoT-hubb.

    YourIotHubName. Ersätt den här platshållaren och de omgivande klammerparenteserna i följande kommando med det namn du valde för din IoT-hubb. Ett IoT-hubbnamn måste vara globalt unikt i Azure. Använd namnet på din IoT-hubb i resten av den här snabbstarten var du än ser platshållaren.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrera en enhet

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I det här avsnittet använder du Azure CLI för att skapa en enhetsidentitet.

Om du redan har en enhet registrerad i din IoT-hubb kan du hoppa över det här avsnittet.

Så här skapar du en enhetsidentitet:

  1. Kör kommandot az iot hub device-identity create i CLI-gränssnittet . Det här kommandot skapar enhetsidentiteten.

    your_iot_hub_name. Ersätt platshållaren nedan med det namn som du har valt för din IoT-hubb.

    myDevice. Du kan använda det här namnet för enhets-ID:t i den här artikeln eller ange ett annat enhetsnamn.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Kör kommandot az iot hub device-identity connection-string show .

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Anslutningssträngens utdata har följande format:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Spara anslutningssträngen på en säker plats.

Anteckning

Håll CLI-appen öppen. Du kommer att använda det senare.

Hämta anslutningssträngen för tjänsten

Du måste också ha en tjänstanslutningssträng för att kunna aktivera serverdelsprogrammet och ansluta till din IoT-hubb och hämta meddelanden. Följande kommando hämtar tjänstanslutningssträngen för din IoT-hubb:

YourIoTHubName: Ersätt platshållaren nedan med det namn du valde för din IoT-hubb.

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

Anteckna tjänstanslutningssträngen. Den ser ut ungefär som:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Du kommer att använda det här värdet senare i snabbstarten. Den här tjänstanslutningssträngen skiljer sig från enhetsanslutningssträngen som du antecknade i föregående steg.

Simulera en enhet

Det simulerade enhetsprogrammet ansluter till en enhetsspecifik slutpunkt på din IoT-hubb, skickar simulerad telemetri och lyssnar efter direkta metodanrop från din hubb. I den här snabbstarten uppmanar det direkta metodanropet från hubben enheten att ändra det intervall med vilket den skickar telemetri. Den simulerade enheten skickar en bekräftelse tillbaka till hubben när den har kört direktmetoden.

  1. Navigera till Java-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2.

  2. Öppna filen src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java i en textredigerare som du väljer.

    Ersätt värdet för variabeln connString med enhetsanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna i SimulatedDevice.java.

  3. I det lokala terminalfönstret kör du följande kommandon för att installera de bibliotek som krävs och skapa programmet för simulerad enhet:

    mvn clean package
    
  4. I det lokala terminalfönstret kör du följande kommandon för att köra programmet för simulerad enhet:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    Följande skärmbild visar utdata när det simulerade enhetsprogrammet skickar telemetri till din IoT-hubb:

    Utdata från telemetrin som skickas av enheten till din IoT-hubb

Anropa den direkta metoden

Serverdelsprogrammet ansluter till en slutpunkt på tjänstsidan på din IoT-hubb. Programmet gör direkta metodanrop till en enhet via din IoT-hubb och lyssnar efter bekräftelser. Ett IoT Hub-serverdelsprogram körs normalt i molnet.

  1. Navigera till Java-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Gå sedan till mappen Quickstarts\back-end-application.

  2. Öppna filen src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java i en textredigerare som du väljer.

    Ersätt värdet för variabeln iotHubConnectionString med tjänstanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna i BackEndApplication.java.

  3. I det lokala terminalfönstret kör du följande kommandon för att installera de bibliotek som krävs och skapa serverdelsprogrammet:

    mvn clean package
    
  4. I det lokala terminalfönstret kör du följande kommandon för att köra serverdelsprogrammet:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    Följande skärmbild visar utdata när programmet gör ett direkt metodanrop till enheten och får en bekräftelse:

    Utdata när programmet gör ett direkt metodanrop via din IoT-hubb

    När du har kört serverdelsprogrammet visas ett meddelande i det konsolfönster som kör den simulerade enheten och hastigheten med vilken den skickar meddelandeändringar:

    Konsolmeddelande från enheten visar den hastighet med vilken den ändras

Den här snabbstarten använder två Node.js-program:

  • Ett simulerat enhetsprogram som svarar på direkta metoder anropas från ett serverdelsprogram. För att kunna ta emot direkta metodanrop ansluter det här programmet till en enhetsspecifik slutpunkt på din IoT-hubb.
  • Ett serverdelsprogram som anropar de dirEkta metoderna på den simulerade enheten. Om du vill anropa en direktmetod på en enhet ansluter det här programmet till en tjänstspecifik slutpunkt på din IoT-hubb.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.

  • Node.js 12+.

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

    node --version
    
  • Klona eller ladda ned Azure IoT-Node.js-exempel från GitHub.

  • Kontrollera att port 8883 är öppen i brandväggen. Enhetsexemplet i den här snabbstarten använder MQTT-protokollet, som kommunicerar via port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer. Mer information och sätt att kringgå det här problemet finns i Ansluta till IoT Hub (MQTT).

Anteckning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen heter azure-cli-iot-ext. Du bör bara ha en version installerad i taget. Du kan använda kommandot az extension list för att verifiera de tillägg som är installerade.

Använd az extension remove --name azure-cli-iot-ext för att ta bort den äldre versionen av tillägget.

Använd az extension add --name azure-iot för att lägga till den nya versionen av tillägget.

Om du vill se vilka tillägg som du har installerat använder az extension listdu .

Skapa en IoT Hub

I det här avsnittet använder du Azure CLI för att skapa en IoT-hubb och en resursgrupp. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En IoT-hubb fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ditt IoT-program och enheterna.

Om du redan har en IoT-hubb i din Azure-prenumeration kan du hoppa över det här avsnittet.

Så här skapar du en IoT-hubb och en resursgrupp:

  1. Starta din CLI-app. Om du vill köra CLI-kommandona i resten av den här artikeln kopierar du kommandosyntaxen, klistrar in den i CLI-appen, redigerar variabelvärden och trycker på Enter.

    • Om du använder Cloud Shell väljer du knappen Prova på CLI-kommandona för att starta Cloud Shell i ett delat webbläsarfönster. Eller så kan du öppna Cloud Shell på en separat webbläsarflik.
    • Om du använder Azure CLI lokalt startar du cli-konsolappen och loggar in på Azure CLI.
  2. Kör az extension add för att installera eller uppgradera tillägget azure-iot till den aktuella versionen.

    az extension add --upgrade --name azure-iot
    
  3. Kör kommandot az group create i CLI-appen för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup på platsen eastus .

    Anteckning

    Du kan också ange en annan plats. Om du vill se tillgängliga platser kör du az account list-locations. Den här snabbstarten använder eastus enligt exempelkommandot.

    az group create --name MyResourceGroup --location eastus
    
  4. Kör kommandot az iot hub create för att skapa en IoT-hubb. Det kan ta några minuter att skapa en IoT-hubb.

    YourIotHubName. Ersätt den här platshållaren och de omgivande klammerparenteserna i följande kommando med det namn du valde för din IoT-hubb. Ett IoT-hubbnamn måste vara globalt unikt i Azure. Använd namnet på din IoT-hubb i resten av den här snabbstarten var du än ser platshållaren.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrera en enhet

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I det här avsnittet använder du Azure CLI för att skapa en enhetsidentitet.

Om du redan har en enhet registrerad i din IoT-hubb kan du hoppa över det här avsnittet.

Så här skapar du en enhetsidentitet:

  1. Kör kommandot az iot hub device-identity create i CLI-gränssnittet . Det här kommandot skapar enhetsidentiteten.

    your_iot_hub_name. Ersätt platshållaren nedan med det namn som du har valt för din IoT-hubb.

    myDevice. Du kan använda det här namnet för enhets-ID:t i den här artikeln eller ange ett annat enhetsnamn.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Kör kommandot az iot hub device-identity connection-string show .

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Anslutningssträngens utdata har följande format:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Spara anslutningssträngen på en säker plats.

Anteckning

Håll CLI-appen öppen. Du kommer att använda det senare.

Hämta anslutningssträngen för tjänsten

Du behöver också IoT-hubbens tjänstanslutningssträng för att serverdelsprogrammet ska kunna ansluta till din IoT-hubb och hämta meddelandena. Följande kommando hämtar tjänstanslutningssträngen för din IoT-hubb:

YourIoTHubName: Ersätt platshållaren nedan med det namn du valde för din IoT-hubb.

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

Anteckna tjänstanslutningssträngen. Den ser ut ungefär som:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Du kommer att använda det här värdet senare i snabbstarten. Den här tjänstanslutningssträngen skiljer sig från enhetsanslutningssträngen som du antecknade i föregående steg.

Simulera en enhet

Det simulerade enhetsprogrammet ansluter till en enhetsspecifik slutpunkt på din IoT-hubb, skickar simulerad telemetri och lyssnar efter direkta metodanrop från din hubb. I den här snabbstarten uppmanar det direkta metodanropet från hubben enheten att ändra det intervall med vilket den skickar telemetri. Den simulerade enheten skickar en bekräftelse tillbaka till hubben när den har kört direktmetoden.

  1. I ditt lokala terminalfönster navigerar du till Node.js-exempelprojektets rotmapp i ett annat terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2.

  2. Öppna filen SimulatedDevice.js i en valfri textredigerare.

    Ersätt värdet för variabeln connectionString med enhetsanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna iSimulatedDevice.js.

  3. Installera de lokala bibliotek som krävs för det simulerade enhetsprogrammet genom att köra följande kommandon i terminalfönstret:

    npm install
    node SimulatedDevice.js
    

    Följande skärmbild visar utdata när det simulerade enhetsprogrammet skickar telemetri till din IoT-hubb:

    Kör den simulerade enheten

Anropa den direkta metoden

Serverdelsprogrammet ansluter till en slutpunkt på tjänstsidan på din IoT-hubb. Programmet gör direkta metodanrop till en enhet via din IoT-hubb och lyssnar efter bekräftelser. Ett IoT Hub-serverdelsprogram körs normalt i molnet.

  1. I ett annat lokalt terminalfönster navigerar du till Node.js-exempelprojektets rotmapp i ett annat terminalfönster. Gå sedan till mappen Quickstarts\back-end-application.

  2. Öppna filen BackEndApplication.js i en valfri textredigerare.

    Ersätt värdet för variabeln connectionString med tjänstanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna iBackEndApplication.js.

  3. Installera de bibliotek som krävs för serverdelsprogrammet genom att köra följande kommandon i det lokala terminalfönstret:

    npm install
    node BackEndApplication.js
    

    Följande skärmbild visar utdata när programmet gör ett direkt metodanrop till enheten och får en bekräftelse:

    Utdata när programmet gör ett direkt metodanrop till enheten

    När du har kört serverdelsprogrammet visas ett meddelande i det konsolfönster som kör den simulerade enheten och hastigheten med vilken den skickar meddelandeändringar:

    Utdata när det sker en ändring i den simulerade klienten

Den här snabbstarten använder två Python-program:

  • Ett simulerat enhetsprogram som svarar på direkta metoder anropas från ett serverdelsprogram.
  • Ett serverdelsprogram som anropar de dirEkta metoderna på den simulerade enheten.

Förutsättningar

Anteckning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen heter azure-cli-iot-ext. Du bör bara ha en version installerad i taget. Du kan använda kommandot az extension list för att verifiera de tillägg som är installerade.

Använd az extension remove --name azure-cli-iot-ext för att ta bort den äldre versionen av tillägget.

Använd az extension add --name azure-iot för att lägga till den nya versionen av tillägget.

Om du vill se vilka tillägg som du har installerat använder az extension listdu .

Skapa en IoT Hub

I det här avsnittet använder du Azure CLI för att skapa en IoT-hubb och en resursgrupp. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. En IoT-hubb fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan ditt IoT-program och enheterna.

Om du redan har en IoT-hubb i din Azure-prenumeration kan du hoppa över det här avsnittet.

Så här skapar du en IoT-hubb och en resursgrupp:

  1. Starta din CLI-app. Om du vill köra CLI-kommandona i resten av den här artikeln kopierar du kommandosyntaxen, klistrar in den i CLI-appen, redigerar variabelvärden och trycker på Enter.

    • Om du använder Cloud Shell väljer du knappen Prova på CLI-kommandona för att starta Cloud Shell i ett delat webbläsarfönster. Eller så kan du öppna Cloud Shell på en separat webbläsarflik.
    • Om du använder Azure CLI lokalt startar du cli-konsolappen och loggar in på Azure CLI.
  2. Kör az extension add för att installera eller uppgradera tillägget azure-iot till den aktuella versionen.

    az extension add --upgrade --name azure-iot
    
  3. Kör kommandot az group create i CLI-appen för att skapa en resursgrupp. Följande kommando skapar en resursgrupp med namnet MyResourceGroup på platsen eastus .

    Anteckning

    Du kan också ange en annan plats. Om du vill se tillgängliga platser kör du az account list-locations. Den här snabbstarten använder eastus enligt exempelkommandot.

    az group create --name MyResourceGroup --location eastus
    
  4. Kör kommandot az iot hub create för att skapa en IoT-hubb. Det kan ta några minuter att skapa en IoT-hubb.

    YourIotHubName. Ersätt den här platshållaren och de omgivande klammerparenteserna i följande kommando med det namn du valde för din IoT-hubb. Ett IoT-hubbnamn måste vara globalt unikt i Azure. Använd namnet på din IoT-hubb i resten av den här snabbstarten var du än ser platshållaren.

    az iot hub create --resource-group MyResourceGroup --name {your_iot_hub_name}
    

Registrera en enhet

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I det här avsnittet använder du Azure CLI för att skapa en enhetsidentitet.

Om du redan har en enhet registrerad i din IoT-hubb kan du hoppa över det här avsnittet.

Så här skapar du en enhetsidentitet:

  1. Kör kommandot az iot hub device-identity create i CLI-gränssnittet . Det här kommandot skapar enhetsidentiteten.

    your_iot_hub_name. Ersätt platshållaren nedan med det namn som du har valt för din IoT-hubb.

    myDevice. Du kan använda det här namnet för enhets-ID:t i den här artikeln eller ange ett annat enhetsnamn.

    az iot hub device-identity create --device-id myDevice --hub-name {your_iot_hub_name}
    
  2. Kör kommandot az iot hub device-identity connection-string show .

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {your_iot_hub_name}
    

    Anslutningssträngens utdata har följande format:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. Spara anslutningssträngen på en säker plats.

Anteckning

Håll CLI-appen öppen. Du kommer att använda det senare.

Hämta anslutningssträngen för tjänsten

Du måste också ha en tjänstanslutningssträng för att kunna aktivera serverdelsprogrammet och ansluta till din IoT-hubb och hämta meddelanden. Följande kommando hämtar tjänstanslutningssträngen för din IoT-hubb:

YourIoTHubName : Ersätt platshållaren nedan med det namn du väljer för din IoT-hubb.

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

Anteckna tjänstanslutningssträngen. Den ser ut ungefär som:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

Du kommer att använda det här värdet senare i snabbstarten. Den här tjänstanslutningssträngen skiljer sig från enhetsanslutningssträngen som du antecknade i föregående steg.

Simulera en enhet

Det simulerade enhetsprogrammet ansluter till en enhetsspecifik slutpunkt på din IoT-hubb, skickar simulerad telemetri och lyssnar efter direkta metodanrop från din hubb. I den här snabbstarten uppmanar det direkta metodanropet från hubben enheten att ändra det intervall med vilket den skickar telemetri. Den simulerade enheten skickar tillbaka en bekräftelse till hubben när den har kört direktmetoden.

  1. Navigera till Python-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2.

  2. Öppna filen SimulatedDeviceSync.py i valfri textredigerare.

    Ersätt värdet för variabeln CONNECTION_STRING med enhetsanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna i SimulatedDeviceSync.py.

  3. Installera de bibliotek som krävs för det simulerade enhetsprogrammet genom att köra följande kommandon i det lokala terminalfönstret:

    pip install azure-iot-device
    
  4. I det lokala terminalfönstret kör du följande kommandon för att köra programmet för simulerad enhet:

    python SimulatedDeviceSync.py
    

    Följande skärmbild visar utdata när det simulerade enhetsprogrammet skickar telemetri till din IoT-hubb:

    Kör den simulerade enheten

Anropa den direkta metoden

Serverdelsprogrammet ansluter till en slutpunkt på tjänstsidan på din IoT-hubb. Programmet gör direkta metodanrop till en enhet via din IoT-hubb och lyssnar efter bekräftelser. Ett IoT Hub-serverdelsprogram körs normalt i molnet.

  1. Navigera till Python-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Gå sedan till mappen Quickstarts\back-end-application.

  2. Öppna filen BackEndApplication.py i en valfri textredigerare.

    Ersätt värdet för variabeln CONNECTION_STRING med tjänstanslutningssträngen som du antecknar tidigare. Spara sedan ändringarna i BackEndApplication.py.

  3. Installera de bibliotek som krävs för det simulerade enhetsprogrammet genom att köra följande kommandon i det lokala terminalfönstret:

    pip install azure-iot-hub
    
  4. I det lokala terminalfönstret kör du följande kommandon för att köra serverdelsprogrammet:

    python BackEndApplication.py
    

    Följande skärmbild visar utdata när programmet gör ett direkt metodanrop till enheten och får en bekräftelse:

    Kör serverdelsprogrammet

    När du har kört serverdelsprogrammet visas ett meddelande i det konsolfönster som kör den simulerade enheten och hastigheten med vilken den skickar meddelandeändringar:

    Ändring i den simulerade klienten

Rensa resurser

Om du ska fortsätta till nästa rekommenderade artikel kan du behålla de resurser som du redan har skapat och återanvända dem.

Annars kan du ta bort Azure-resurser som skapats i den här artikeln om du vill undvika kostnader.

Viktigt

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser som ingår i den tas bort permanent. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser. Om du har skapat IoT Hub:en inuti en befintlig resursgrupp som innehåller resurser som du vill behålla, ta bara bort själva IoT Hub-resursen i stället för att ta bort resursgruppen.

Ta bort en resursgrupp med namnet:

  1. Logga in på Azure Portal och välj Resursgrupper.

  2. I textrutan Filtrera efter namn skriver du namnet på resursgruppen som innehåller din IoT Hub.

  3. Till höger om resursgruppen i resultatlistan väljer du ... och sedan Ta bort resursgrupp.

    Ta bort

  4. Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen igen för att bekräfta och välj sedan Ta bort. Efter en liten stund tas resursgruppen och resurser som finns i den bort.

Nästa steg

I den här snabbstarten anropade du en direktmetod på en enhet från ett tjänstprogram och svarade på direktmetodanropet i ett simulerat enhetsprogram.

Om du vill lära dig mer om hur man skickar enhet-till-molnet-meddelanden till olika mål i molnet går du vidare till nästa självstudier.