Dela via


Snabbstart: Styra en enhet som är 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 din IoT-hubb. IoT Hub är en Azure-tjänst som låter dig 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örskrivna .NET-program:

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

  • Ett tjänstprogram som anropar direktmetoderna på den simulerade enheten. Om du vill anropa en direktmetod på en enhet ansluter det här programmet till slutpunkten på tjänstsidan 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 Microsoft Azure IoT SDK för .NET från GitHub. Exempelprogrammen som används av den här snabbstarten ingår i SDK:et.

  • 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 avsnittet Anslut till IoT Hub i Kommunicera med en IoT-hubb med hjälp av MQTT-protokollet.

Anmärkning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen kallas 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 för närvarande är installerade 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 .

    Anmärkning

    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 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 Hub-namn i resten av den här snabbstarten var du än ser platshållaren.

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

Hämta tjänstanslutningssträngen

Du behöver också IoT Hubs tjänstanslutningssträng för att göra det möjligt för tjänstprogrammet att 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, som ser ut så här:

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

Du använder 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 direktmetodanropet 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. I ett lokalt terminalfönster navigerar du till rotmappen för SDK:et. 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 det simulerade enhetsprogrammet:

    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:

    Skärmbild av ett terminalfönster som visar utdata från det simulerade enhetsprogrammet.

Anropa den direkta metoden

Tjänstprogrammet ansluter till en slutpunkt på tjänstsidan på din IoT Hub. 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. I ett annat lokalt terminalfönster navigerar du till rotmappen för SDK:et. 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 anslutningssträngen för IoT Hub-tjänsten 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:

    Skärmbild av ett terminalfönster som visar resultatet av direktmetodanropet från tjänstprogrammet.

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

    Skärmbild av ett terminalfönster som visar direktmeddelanderesultatet och uppdaterade utdata från det simulerade enhetsprogrammet.

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

  • Ett simulerat enhetsprogram som svarar på direkta metoder som 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. Under Långsiktigt stöd för Azure och Azure Stack i Java väljer du Java 8 under Långsiktigt stöd.

    Du kan verifiera den aktuella versionen av Java på utvecklingsdatorn med hjälp av följande kommando:

    java -version
    
  • Apache Maven 3.

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

    mvn --version
    
  • Klona eller ladda ned Azure IoT-exempel för Java 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 avsnittet Anslut till IoT Hub i Kommunicera med en IoT-hubb med hjälp av MQTT-protokollet.

Anmärkning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen kallas 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 för närvarande är installerade använder du az extension list.

Skapa en IoT-hubb

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 .

    Anmärkning

    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 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 Hub-namn i resten av den här snabbstarten var du än ser platshållaren.

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

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.

    YourIoTHubName. Ersätt 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.

    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 {YourIoTHubName}
    
  2. Kör följande kommando: az iot hub device-identity connection-string show.

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

    Utdata för anslutningssträng är i följande format:

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

Anmärkning

Håll CLI-appen öppen. Du använder det i senare steg.

Hämta tjänstanslutningssträngen

Du behöver också en tjänstanslutningssträng för att möjliggöra för serverdelsprogrammet att 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 den här platshållaren i följande kommando 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, som ser ut så här:

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

Du använder 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 direktmetodanropet 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. I ett lokalt terminalfönster navigerar du till rotmappen för Java-exempelprojektet. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2 .

  2. Öppna filen src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java i valfri textredigerare.

    Ersätt värdet för variabeln connString med enhetsanslutningssträngen som du antecknade 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 det simulerade enhetsprogrammet:

    mvn clean package
    
  4. Kör följande kommandon i det lokala terminalfönstret för att köra det simulerade enhetsprogrammet:

    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:

    Skärmbild av ett terminalfönster som visar utdata från det simulerade enhetsprogrammet.

Anropa den direkta metoden

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

  1. I ett annat lokalt terminalfönster går du till rotmappen för Java-exempelprojektet. Navigera sedan till mappen iot-hub\Quickstarts\back-end-application .

  2. Öppna filen src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java i valfri textredigerare.

    Ersätt värdet för variabeln iotHubConnectionString med den tjänstanslutningssträng som du antecknade 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. Kör följande kommandon i det lokala terminalfönstret 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:

    Skärmbild av ett terminalfönster som visar resultatet av direktmetodanropet från tjänstprogrammet.

    När du har kört serverdelsprogrammet visas ett meddelande i det lokala terminalfönstret som kör den simulerade enheten och hur snabbt den skickar meddelanden ändras:

    Skärmbild av ett terminalfönster som visar direktmeddelanderesultatet och uppdaterade utdata från det simulerade enhetsprogrammet.

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

  • Ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett serverdelsprogram. För att ta emot direktmetodanrop ansluter det här programmet till en enhetsspecifik slutpunkt på din IoT-hubb.
  • En back-end-applikation som anropar direktmetoder 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

Anmärkning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen kallas 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 för närvarande är installerade använder du az extension list.

Skapa en IoT-hubb

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 .

    Anmärkning

    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 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 Hub-namn i resten av den här snabbstarten var du än ser platshållaren.

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

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.

    YourIoTHubName. Ersätt 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.

    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 {YourIoTHubName}
    
  2. Kör följande kommando: az iot hub device-identity connection-string show.

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

    Utdata för anslutningssträng är i följande format:

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

Anmärkning

Håll CLI-appen öppen. Du använder det i senare steg.

Hämta tjänstanslutningssträngen

Du behöver också din IoT tjänstanslutningssträng för att möjliggöra för baksystemets applikation att ansluta till din IoT-hubb och ta emot meddelandena. Följande kommando hämtar tjänstanslutningssträngen för din IoT-hubb:

YourIoTHubName: Ersätt den här platshållaren i följande kommando 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, som ser ut så här:

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

Du använder 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 direktmetodanropet 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. I ett lokalt terminalfönster navigerar du till rotmappen för exempelprojektet Node.js. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2 .

  2. Öppna filenSimulatedDevice.js i valfri textredigerare.

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

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

    npm install
    node SimulatedDevice.js
    

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

    Skärmbild av ett terminalfönster som visar utdata från det simulerade enhetsprogrammet.

Anropa den direkta metoden

Back-end-applikationen ansluter till en tjänsteslutpunkt 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 vanligtvis i molnet.

  1. I ett annat lokalt terminalfönster navigerar du till rotmappen för exempelprojektet Node.js. Navigera sedan till mappen iot-hub\Quickstarts\back-end-application .

  2. Öppna filenBackEndApplication.js i valfri textredigerare.

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

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

    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:

    Skärmbild av ett terminalfönster som visar resultatet av direktmetodanropet från tjänstprogrammet.

    När du har kört serverdelsprogrammet visas ett meddelande i det lokala terminalfönstret som kör den simulerade enheten och hur snabbt den skickar meddelanden ändras:

    Skärmbild av ett terminalfönster som visar direktmeddelanderesultatet och uppdaterade utdata från det simulerade enhetsprogrammet.

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

  • Ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett serverdelsprogram.
  • En back-end-applikation som anropar direktmetoder på den simulerade enheten.

Förutsättningar

Anmärkning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget, som kallas azure-iot. Den äldre versionen kallas 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 för närvarande är installerade använder du az extension list.

Skapa en IoT-hubb

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 .

    Anmärkning

    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 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 Hub-namn i resten av den här snabbstarten var du än ser platshållaren.

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

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.

    YourIoTHubName. Ersätt 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.

    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 {YourIoTHubName}
    
  2. Kör följande kommando: az iot hub device-identity connection-string show.

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

    Utdata för anslutningssträng är i följande format:

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

Anmärkning

Håll CLI-appen öppen. Du använder det i senare steg.

Hämta tjänstanslutningssträngen

Du behöver också en tjänstanslutningssträng för att möjliggöra för serverdelsprogrammet att 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 den här platshållaren i följande kommando 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, som ser ut så här:

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

Du använder 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 direktmetodanropet 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. I ett lokalt terminalfönster navigerar du till rotmappen för Python-exempelprojektet. 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 antecknade tidigare. Spara sedan ändringarna i SimulatedDeviceSync.py.

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

    pip install azure-iot-device
    
  4. Kör följande kommandon i det lokala terminalfönstret för att köra det simulerade enhetsprogrammet:

    python SimulatedDeviceSync.py
    

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

    Skärmbild av ett terminalfönster som visar utdata från det simulerade enhetsprogrammet.

Anropa den direkta metoden

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

  1. I ett annat lokalt terminalfönster navigerar du till rotmappen för Python-exempelprojektet. Navigera sedan till mappen iot-hub\Quickstarts\back-end-application .

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

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

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

    pip install azure-iot-hub
    
  4. Kör följande kommandon i det lokala terminalfönstret 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:

    Skärmbild av ett terminalfönster som visar resultatet av direktmetodanropet från tjänstprogrammet.

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

    Skärmbild av ett terminalfönster som visar direktmeddelanderesultatet och uppdaterade utdata från det simulerade enhetsprogrammet.

Rensa resurser

Om du fortsätter 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 De Azure-resurser som skapas i den här artikeln för att undvika avgifter.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser som ingår i den tas bort permanent. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat IoT-hubben i en befintlig resursgrupp som innehåller resurser som du vill behålla tar du 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 valfritt fält skriver du namnet på resursgruppen som innehåller din IoT-hubb.

  3. I resultatlistan väljer du den resursgrupp som innehåller din IoT-hubb.

  4. I arbetsfönstret för resursgruppen väljer du Ta bort resursgrupp i kommandofältet.

    Skärmbild som visar arbetsfönstret för en resursgrupp i Azure-portalen med kommandot Ta bort resursgrupp markerat i kommandofältet.

  5. Du blir ombedd att bekräfta borttagningen av resursgruppen. Skriv 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.

För att lära dig hur du dirigerar meddelanden från enhet till moln till olika mål i molnet, fortsätt till nästa handledning.