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 mängder enhetste telemetri till molnet för lagring eller bearbetning. Du kan använda direktmetoder för att fjärrstyra 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 utan kostnad.

  • De två exempelprogram som du kör i den här snabbstarten skrivs med C#. Du behöver .NET Core SDK 3.1 eller högre 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
    
  • Om du inte redan har gjort det laddar du ned Azure IoT C#-exemplen från och https://github.com/Azure-Samples/azure-iot-samples-csharp/archive/main.zip extraherar ZIP-arkivet.

  • Kontrollera att port 8883 är öppen i brandväggen. Enhetsexempel 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 komma runt det här problemet finns i Ansluta till IoT Hub (MQTT).

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Anteckning

I den här artikeln används 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 validera de installerade tilläggen.

Används 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 du har installerat använder du az extension list .

Skapa en IoT Hub

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

I det här avsnittet beskrivs hur du använder Azure-portalen för att skapa en IoT-hubb.

  1. Logga in på Azure-portalen.

  2. På Startsidan för Azure väljer du knappen + Skapa en resurs och IoT Hub i fältet Sök på Marketplace.

  3. Välj IoT Hub i sökresultatet och välj sedan Skapa.

  4. fliken Grundprinciper fyller du i fälten på följande sätt:

    • Prenumeration: Välj den prenumeration som ska användas för din hubb.

    • Resursgrupp: Välj en resursgrupp eller skapa en ny. Om du vill skapa en ny väljer du Skapa ny och fyller i det namn som du vill använda. Om du vill använda en befintlig resursgrupp väljer du den resursgruppen. Mer information finns i Hantera Azure Resource Manager-resursgrupper.

    • Region: Välj den region där du vill att hubben ska finnas. Välj den plats som är närmast dig. Vissa funktioner, till IoT Hub enhetsströmmar,är endast tillgängliga i vissa regioner. För dessa begränsade funktioner måste du välja en av de regioner som stöds.

    • IoT Hub namn: Ange ett namn för hubben. Det här namnet måste vara globalt unikt, med en längd mellan 3 och 50 alfanumeriska tecken. Namnet kan också innehålla bindestrecket ( '-' ).

    Viktigt

    Eftersom IoT Hub kommer att identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.

    Skapa en hubb i Azure Portal.

  5. Välj Nästa: Nätverk för att fortsätta att skapa hubben.

    Välj de slutpunkter som enheter kan använda för att ansluta till IoT Hub. Du kan välja standardinställningen Offentlig slutpunkt (alla nätverk) eller Offentlig slutpunkt (valda IP-intervall) eller Privat slutpunkt. Acceptera standardinställningen för det här exemplet.

    Välj de slutpunkter som kan ansluta.

  6. Välj Nästa: Hantering för att fortsätta att skapa hubben.

    Ange storlek och skala för en ny hubb med hjälp av Azure Portal.

    Du kan acceptera standardinställningarna här. Om du vill kan du ändra något av följande fält:

    • Pris- och skalningsnivå: Din valda nivå. Du kan välja mellan flera nivåer, beroende på hur många funktioner du vill ha och hur många meddelanden du skickar via din lösning per dag. Den kostnadsfria nivån är avsedd för testning och utvärdering. Det gör att 500 enheter kan anslutas till hubben och upp till 8 000 meddelanden per dag. Varje Azure-prenumeration kan skapa en IoT-hubb på den kostnadsfria nivån.

      Om du arbetar med en snabbstart för IoT Hub enhetsströmmar väljer du den kostnadsfria nivån.

    • IoT Hub-enheter: Antalet meddelanden som tillåts per enhet per dag beror på hubbens prisnivå. Om du till exempel vill att hubben ska stödja inkommande meddelanden på 700 000 väljer du två enheter på S1-nivån. Mer information om de andra alternativen för nivån finns i avsnittet om att välja rätt nivå för IoT Hub.

    • Defender for IoT: Aktivera det här för att lägga till ett extra lager av skydd mot hot i IoT och dina enheter. Det här alternativet är inte tillgängligt för hubbar på den kostnadsfria nivån. Mer information om den här funktionen finns i Microsoft Defender för IoT.

    • Avancerade Inställningar partitioner från enhet till moln: Den här egenskapen relaterar "enhet till molnet"-meddelandena med antalet samtidiga > läsare av meddelandena. De flesta hubbar behöver bara fyra partitioner.

  7. Välj Nästa: Taggar för att fortsätta till nästa skärm.

    Taggar är namn/värde-par. Du kan tilldela samma tagg till flera resurser och resursgrupper för att kategorisera resurser och konsolidera faktureringen. I det här dokumentet lägger du inte till några taggar. Mer information finns i Använda taggar för att organisera dina Azure-resurser.

    Tilldela taggar för hubben med hjälp av Azure Portal.

  8. Välj Nästa: Granska + skapa för att granska dina val. Du ser något som liknar den här skärmen, men med de värden som du valde när du skapade hubben.

    Granska informationen för att skapa den nya hubben.

  9. Välj Skapa för att starta distributionen av den nya hubben. Distributionen pågår några minuter medan hubben skapas. När distributionen är klar väljer du Gå till resurs för att öppna den nya hubben.

Registrera en enhet

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I den här snabbstarten använder du Azure Cloud Shell till att registrera en simulerad enhet.

  1. Kör följande kommando i Azure Cloud Shell för att skapa enhetsidentiteten.

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

    MyDotnetDevice: Det här är namnet på den enhet som du registrerar. Vi rekommenderar att du använder MyDotnetDevice enligt bilden. Om du väljer ett annat namn för din enhet måste du också använda det namnet i hela den här artikeln och uppdatera enhetsnamnet i exempelprogrammen innan du kör dem.

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyDotnetDevice
    
  2. Kör följande kommandon i Azure Cloud Shell för att hämta enhetsanslutningssträngen för enheten du just registrerade:

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

    az iot hub device-identity connection-string show \
      --hub-name {YourIoTHubName} \
      --device-id MyDotnetDevice \
      --output table
    

    Anteckna enhetens anslutningssträng, som ser ut så här:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

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

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

Du behöver också anslutningssträngen för IoT Hub-tjänsten så att tjänstprogrammet kan ansluta till hubben och hämta meddelandena. 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. Den här tjänstanslutningssträngen skiljer sig från enhetsanslutningssträngen som du antecknade i föregående steg.

Lyssna efter direkta metodanrop

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 C#-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\SimulatedDeviceWithCommand.

  2. Installera de paket som krävs för programmet för simulerad enhet genom att köra följande kommandon i det lokala terminalfönstret:

    dotnet restore
    
  3. Kör följande kommando i det lokala terminalfönstret för att skapa och köra det simulerade enhetsprogrammet och ersätt med enhetsanslutningssträngen {DeviceConnectionString} som du antecknade tidigare:

    dotnet run -- {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. Gå sedan till mappen iot-hub\Quickstarts\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 restore
    
  3. I det lokala terminalfönstret kör du följande kommandon för att skapa och köra tjänstprogrammet. Ersätt med tjänstanslutningssträngen {ServiceConnectionString} som du antecknade tidigare:

    dotnet run -- {ServiceConnectionString}
    

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

    Köra tjänstprogrammet

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

    Ändring i den simulerade klienten

Den här snabbstarten använder två Java-program: ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett backend-program och ett tjänstprogram som anropar direktmetoden på den simulerade enheten.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa en utan kostnad.

  • Java SE Development Kit 8. I Långsiktig Java-support för Azure och Azure Stackväljer du Java 8 under Långsiktigt stöd.

    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
    
  • Ett Java-exempelprojekt.

  • Port 8883 är öppen i brandväggen. Enhetsexempel 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 komma runt det här problemet finns i Ansluta till IoT Hub (MQTT).

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Anteckning

I den här artikeln används 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 validera de installerade tilläggen.

Används 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 du har installerat använder du az extension list .

Skapa en IoT Hub

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

I det här avsnittet beskrivs hur du använder Azure-portalen för att skapa en IoT-hubb.

  1. Logga in på Azure-portalen.

  2. På Startsidan för Azure väljer du knappen + Skapa en resurs och IoT Hub i fältet Sök på Marketplace.

  3. Välj IoT Hub i sökresultatet och välj sedan Skapa.

  4. fliken Grundprinciper fyller du i fälten på följande sätt:

    • Prenumeration: Välj den prenumeration som ska användas för din hubb.

    • Resursgrupp: Välj en resursgrupp eller skapa en ny. Om du vill skapa en ny väljer du Skapa ny och fyller i det namn som du vill använda. Om du vill använda en befintlig resursgrupp väljer du den resursgruppen. Mer information finns i Hantera Azure Resource Manager-resursgrupper.

    • Region: Välj den region där du vill att hubben ska finnas. Välj den plats som är närmast dig. Vissa funktioner, till IoT Hub enhetsströmmar,är endast tillgängliga i vissa regioner. För dessa begränsade funktioner måste du välja en av de regioner som stöds.

    • IoT Hub namn: Ange ett namn för hubben. Det här namnet måste vara globalt unikt, med en längd mellan 3 och 50 alfanumeriska tecken. Namnet kan också innehålla bindestrecket ( '-' ).

    Viktigt

    Eftersom IoT Hub kommer att identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.

    Skapa en hubb i Azure Portal.

  5. Välj Nästa: Nätverk för att fortsätta att skapa hubben.

    Välj de slutpunkter som enheter kan använda för att ansluta till IoT Hub. Du kan välja standardinställningen Offentlig slutpunkt (alla nätverk) eller Offentlig slutpunkt (valda IP-intervall) eller Privat slutpunkt. Acceptera standardinställningen för det här exemplet.

    Välj de slutpunkter som kan ansluta.

  6. Välj Nästa: Hantering för att fortsätta att skapa hubben.

    Ange storlek och skala för en ny hubb med hjälp av Azure Portal.

    Du kan acceptera standardinställningarna här. Om du vill kan du ändra något av följande fält:

    • Pris- och skalningsnivå: Din valda nivå. Du kan välja mellan flera nivåer, beroende på hur många funktioner du vill ha och hur många meddelanden du skickar via din lösning per dag. Den kostnadsfria nivån är avsedd för testning och utvärdering. Det gör att 500 enheter kan anslutas till hubben och upp till 8 000 meddelanden per dag. Varje Azure-prenumeration kan skapa en IoT-hubb på den kostnadsfria nivån.

      Om du arbetar med en snabbstart för IoT Hub enhetsströmmar väljer du den kostnadsfria nivån.

    • IoT Hub-enheter: Antalet meddelanden som tillåts per enhet per dag beror på hubbens prisnivå. Om du till exempel vill att hubben ska stödja inkommande meddelanden på 700 000 väljer du två enheter på S1-nivån. Mer information om de andra alternativen för nivån finns i avsnittet om att välja rätt nivå för IoT Hub.

    • Defender for IoT: Aktivera det här för att lägga till ett extra lager av skydd mot hot i IoT och dina enheter. Det här alternativet är inte tillgängligt för hubbar på den kostnadsfria nivån. Mer information om den här funktionen finns i Microsoft Defender för IoT.

    • Avancerade Inställningar partitioner från enhet till moln: Den här egenskapen relaterar "enhet till molnet"-meddelandena med antalet samtidiga > läsare av meddelandena. De flesta hubbar behöver bara fyra partitioner.

  7. Välj Nästa: Taggar för att fortsätta till nästa skärm.

    Taggar är namn/värde-par. Du kan tilldela samma tagg till flera resurser och resursgrupper för att kategorisera resurser och konsolidera faktureringen. I det här dokumentet lägger du inte till några taggar. Mer information finns i Använda taggar för att organisera dina Azure-resurser.

    Tilldela taggar för hubben med hjälp av Azure Portal.

  8. Välj Nästa: Granska + skapa för att granska dina val. Du ser något som liknar den här skärmen, men med de värden som du valde när du skapade hubben.

    Granska informationen för att skapa den nya hubben.

  9. Välj Skapa för att starta distributionen av den nya hubben. Distributionen pågår några minuter medan hubben skapas. När distributionen är klar väljer du Gå till resurs för att öppna den nya hubben.

Registrera en enhet

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I den här snabbstarten använder du Azure Cloud Shell till att registrera en simulerad enhet.

  1. Kör följande kommando i Azure Cloud Shell för att skapa enhetsidentiteten.

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

    MyJavaDevice: Det här är namnet på den enhet som du registrerar. Vi rekommenderar att du använder MyJavaDevice som du ser i bilden. Om du väljer ett annat namn för din enhet måste du också använda det namnet i hela den här artikeln och uppdatera enhetsnamnet i exempelprogrammen innan du kör dem.

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyJavaDevice
    
  2. Kör följande kommandon i Azure Cloud Shell för att hämta enhetsanslutningssträngen för enheten du just registrerade:

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

    az iot hub device-identity connection-string show\
      --hub-name {YourIoTHubName} \
      --device-id MyJavaDevice \
      --output table
    

    Anteckna enhetens anslutningssträng, som ser ut så här:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

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

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 --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.

Lyssna efter direkta metodanrop

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 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 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 telemetri 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 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. 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 tar emot 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 med vilken hastighet den ändras

Den här snabbstarten använder två Node.js-program: ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett backend-program och ett backend-program som anropar direktmetoderna på den simulerade enheten.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett utan kostnad.

  • Node.js 12+.

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

    node --version
    
  • Ett exempel Node.js projekt.

  • Port 8883 är öppen i brandväggen. Enhetsexempel 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 komma runt det här problemet finns i Ansluta till IoT Hub (MQTT).

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Anteckning

I den här artikeln används 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 validera de installerade tilläggen.

Används 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 du har installerat använder du az extension list .

Skapa en IoT Hub

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

I det här avsnittet beskrivs hur du använder Azure-portalen för att skapa en IoT-hubb.

  1. Logga in på Azure-portalen.

  2. På Startsidan för Azure väljer du knappen + Skapa en resurs och IoT Hub i fältet Sök på Marketplace.

  3. Välj IoT Hub i sökresultatet och välj sedan Skapa.

  4. fliken Grundprinciper fyller du i fälten på följande sätt:

    • Prenumeration: Välj den prenumeration som ska användas för din hubb.

    • Resursgrupp: Välj en resursgrupp eller skapa en ny. Om du vill skapa en ny väljer du Skapa ny och fyller i det namn som du vill använda. Om du vill använda en befintlig resursgrupp väljer du den resursgruppen. Mer information finns i Hantera Azure Resource Manager-resursgrupper.

    • Region: Välj den region där du vill att hubben ska finnas. Välj den plats som är närmast dig. Vissa funktioner, till IoT Hub enhetsströmmar,är endast tillgängliga i vissa regioner. För dessa begränsade funktioner måste du välja en av de regioner som stöds.

    • IoT Hub namn: Ange ett namn för hubben. Det här namnet måste vara globalt unikt, med en längd mellan 3 och 50 alfanumeriska tecken. Namnet kan också innehålla bindestrecket ( '-' ).

    Viktigt

    Eftersom IoT Hub kommer att identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.

    Skapa en hubb i Azure Portal.

  5. Välj Nästa: Nätverk för att fortsätta att skapa hubben.

    Välj de slutpunkter som enheter kan använda för att ansluta till IoT Hub. Du kan välja standardinställningen Offentlig slutpunkt (alla nätverk) eller Offentlig slutpunkt (valda IP-intervall) eller Privat slutpunkt. Acceptera standardinställningen för det här exemplet.

    Välj de slutpunkter som kan ansluta.

  6. Välj Nästa: Hantering för att fortsätta att skapa hubben.

    Ange storlek och skala för en ny hubb med hjälp av Azure Portal.

    Du kan acceptera standardinställningarna här. Om du vill kan du ändra något av följande fält:

    • Pris- och skalningsnivå: Din valda nivå. Du kan välja mellan flera nivåer, beroende på hur många funktioner du vill ha och hur många meddelanden du skickar via din lösning per dag. Den kostnadsfria nivån är avsedd för testning och utvärdering. Det gör att 500 enheter kan anslutas till hubben och upp till 8 000 meddelanden per dag. Varje Azure-prenumeration kan skapa en IoT-hubb på den kostnadsfria nivån.

      Om du arbetar med en snabbstart för IoT Hub enhetsströmmar väljer du den kostnadsfria nivån.

    • IoT Hub-enheter: Antalet meddelanden som tillåts per enhet per dag beror på hubbens prisnivå. Om du till exempel vill att hubben ska stödja inkommande meddelanden på 700 000 väljer du två enheter på S1-nivån. Mer information om de andra alternativen för nivån finns i avsnittet om att välja rätt nivå för IoT Hub.

    • Defender for IoT: Aktivera det här för att lägga till ett extra lager av skydd mot hot i IoT och dina enheter. Det här alternativet är inte tillgängligt för hubbar på den kostnadsfria nivån. Mer information om den här funktionen finns i Microsoft Defender för IoT.

    • Avancerade Inställningar partitioner från enhet till moln: Den här egenskapen relaterar "enhet till molnet"-meddelandena med antalet samtidiga > läsare av meddelandena. De flesta hubbar behöver bara fyra partitioner.

  7. Välj Nästa: Taggar för att fortsätta till nästa skärm.

    Taggar är namn/värde-par. Du kan tilldela samma tagg till flera resurser och resursgrupper för att kategorisera resurser och konsolidera faktureringen. I det här dokumentet lägger du inte till några taggar. Mer information finns i Använda taggar för att organisera dina Azure-resurser.

    Tilldela taggar för hubben med hjälp av Azure Portal.

  8. Välj Nästa: Granska + skapa för att granska dina val. Du ser något som liknar den här skärmen, men med de värden som du valde när du skapade hubben.

    Granska informationen för att skapa den nya hubben.

  9. Välj Skapa för att starta distributionen av den nya hubben. Distributionen pågår några minuter medan hubben skapas. När distributionen är klar väljer du Gå till resurs för att öppna den nya hubben.

Registrera en enhet

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I den här snabbstarten använder du Azure Cloud Shell till att registrera en simulerad enhet.

  1. Kör följande kommando i Azure Cloud Shell för att skapa enhetsidentiteten.

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

    MyNodeDevice: Det här är namnet på den enhet som du registrerar. Vi rekommenderar att du använder MyNodeDevice som du ser i bilden. Om du väljer ett annat namn för din enhet måste du också använda det namnet i hela den här artikeln och uppdatera enhetsnamnet i exempelprogrammen innan du kör dem.

    az iot hub device-identity create \
      --hub-name {YourIoTHubName} --device-id MyNodeDevice
    
  2. Kör följande kommandon i Azure Cloud Shell för att hämta enhetsanslutningssträngen för enheten du just registrerade:

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

    az iot hub device-identity connection-string show \
      --hub-name {YourIoTHubName} \
      --device-id MyNodeDevice \
      --output table
    

    Anteckna enhetens anslutningssträng, som ser ut så här:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

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

  3. 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 --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.

Lyssna efter direkta metodanrop

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 antecknade tidigare. Spara sedan ändringarna i SimulatedDevice.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 antecknade tidigare. Spara sedan ändringarna i BackEndApplication.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 tar emot en bekräftelse:

    Utdata när programmet gör ett direkt metod-anrop 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 finns en ändring i den simulerade klienten

Den här snabbstarten använder två Python-program: ett simulerat enhetsprogram som svarar på direkta metoder som anropas från ett backend-program och ett backend-program som anropar direktmetoderna på den simulerade enheten.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa en utan kostnad.

  • Python 3.7+. Andra versioner av Python som stöds finns i Azure IoT-enhetsfunktioner.

  • Ett Python-exempelprojekt från github. Ladda ned eller klona exemplen med knappen Kod på github-lagringsplatsen.

  • Port 8883 är öppen i brandväggen. Enhetsexempel 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 komma runt det här problemet finns i Ansluta till IoT Hub (MQTT).

  • Använd bash-miljön i Azure Cloud Shell.

    Starta Cloud Shell i ett nytt fönster

  • Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.

    • Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.

    • När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.

    • Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.

Anteckning

I den här artikeln används 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 validera de installerade tilläggen.

Används 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 du har installerat använder du az extension list .

Skapa en IoT Hub

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

I det här avsnittet beskrivs hur du använder Azure-portalen för att skapa en IoT-hubb.

  1. Logga in på Azure-portalen.

  2. På Startsidan för Azure väljer du knappen + Skapa en resurs och IoT Hub i fältet Sök på Marketplace.

  3. Välj IoT Hub i sökresultatet och välj sedan Skapa.

  4. fliken Grundprinciper fyller du i fälten på följande sätt:

    • Prenumeration: Välj den prenumeration som ska användas för din hubb.

    • Resursgrupp: Välj en resursgrupp eller skapa en ny. Om du vill skapa en ny väljer du Skapa ny och fyller i det namn som du vill använda. Om du vill använda en befintlig resursgrupp väljer du den resursgruppen. Mer information finns i Hantera Azure Resource Manager-resursgrupper.

    • Region: Välj den region där du vill att hubben ska finnas. Välj den plats som är närmast dig. Vissa funktioner, till IoT Hub enhetsströmmar,är endast tillgängliga i vissa regioner. För dessa begränsade funktioner måste du välja en av de regioner som stöds.

    • IoT Hub namn: Ange ett namn för hubben. Det här namnet måste vara globalt unikt, med en längd mellan 3 och 50 alfanumeriska tecken. Namnet kan också innehålla bindestrecket ( '-' ).

    Viktigt

    Eftersom IoT Hub kommer att identifieras offentligt som en DNS-slutpunkt bör du undvika att ange känslig eller personligt identifierbar information när du namnger den.

    Skapa en hubb i Azure Portal.

  5. Välj Nästa: Nätverk för att fortsätta att skapa hubben.

    Välj de slutpunkter som enheter kan använda för att ansluta till IoT Hub. Du kan välja standardinställningen Offentlig slutpunkt (alla nätverk) eller Offentlig slutpunkt (valda IP-intervall) eller Privat slutpunkt. Acceptera standardinställningen för det här exemplet.

    Välj de slutpunkter som kan ansluta.

  6. Välj Nästa: Hantering för att fortsätta att skapa hubben.

    Ange storlek och skala för en ny hubb med hjälp av Azure Portal.

    Du kan acceptera standardinställningarna här. Om du vill kan du ändra något av följande fält:

    • Pris- och skalningsnivå: Din valda nivå. Du kan välja mellan flera nivåer, beroende på hur många funktioner du vill ha och hur många meddelanden du skickar via din lösning per dag. Den kostnadsfria nivån är avsedd för testning och utvärdering. Det gör att 500 enheter kan anslutas till hubben och upp till 8 000 meddelanden per dag. Varje Azure-prenumeration kan skapa en IoT-hubb på den kostnadsfria nivån.

      Om du arbetar med en snabbstart för IoT Hub enhetsströmmar väljer du den kostnadsfria nivån.

    • IoT Hub-enheter: Antalet meddelanden som tillåts per enhet per dag beror på hubbens prisnivå. Om du till exempel vill att hubben ska stödja inkommande meddelanden på 700 000 väljer du två enheter på S1-nivån. Mer information om de andra alternativen för nivån finns i avsnittet om att välja rätt nivå för IoT Hub.

    • Defender for IoT: Aktivera det här för att lägga till ett extra lager av skydd mot hot i IoT och dina enheter. Det här alternativet är inte tillgängligt för hubbar på den kostnadsfria nivån. Mer information om den här funktionen finns i Microsoft Defender för IoT.

    • Avancerade Inställningar partitioner från enhet till moln: Den här egenskapen relaterar "enhet till molnet"-meddelandena med antalet samtidiga > läsare av meddelandena. De flesta hubbar behöver bara fyra partitioner.

  7. Välj Nästa: Taggar för att fortsätta till nästa skärm.

    Taggar är namn/värde-par. Du kan tilldela samma tagg till flera resurser och resursgrupper för att kategorisera resurser och konsolidera faktureringen. I det här dokumentet lägger du inte till några taggar. Mer information finns i Använda taggar för att organisera dina Azure-resurser.

    Tilldela taggar för hubben med hjälp av Azure Portal.

  8. Välj Nästa: Granska + skapa för att granska dina val. Du ser något som liknar den här skärmen, men med de värden som du valde när du skapade hubben.

    Granska informationen för att skapa den nya hubben.

  9. Välj Skapa för att starta distributionen av den nya hubben. Distributionen pågår några minuter medan hubben skapas. När distributionen är klar väljer du Gå till resurs för att öppna den nya hubben.

Registrera en enhet

Om du har slutfört Snabbstart: Skicka telemetri från en enhet till en IoT-hubb kan du hoppa över det här steget.

En enhet måste vara registrerad vid din IoT-hubb innan den kan ansluta. I den här snabbstarten använder du Azure Cloud Shell till att registrera en simulerad enhet.

  1. Kör följande kommando i Azure Cloud Shell för att skapa enhetsidentiteten.

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

    MyPythonDevice: Det här är namnet på den enhet som du registrerar. Vi rekommenderar att du använder MyPythonDevice enligt bilden. Om du väljer ett annat namn för din enhet måste du också använda det namnet i hela den här artikeln och uppdatera enhetsnamnet i exempelprogrammen innan du kör dem.

    az iot hub device-identity create --hub-name {YourIoTHubName} --device-id MyPythonDevice
    
  2. Kör följande kommandon i Azure Cloud Shell för att hämta enhetsanslutningssträngen för enheten du just registrerade:

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

    az iot hub device-identity connection-string show --hub-name {YourIoTHubName} --device-id MyPythonDevice --output table
    

    Anteckna enhetens anslutningssträng, som ser ut så här:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

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

  3. 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.

Lyssna efter direkta metodanrop

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 Python-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-2.

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

    Ersätt värdet för variabeln CONNECTION_STRING med enhetsanslutningssträngen som du antecknade tidigare. Spara sedan ändringarna till SimulatedDevice.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 SimulatedDevice.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 den tjänstanslutningssträng som du antecknade tidigare. Spara sedan ändringarna till 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 tar emot 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. Skriv namnet på den resurs grupp som innehåller din IoT Hub i text rutan Filtrera efter namn .

  3. Till höger om resurs gruppen i resultat listan väljer du ... och sedan ta bort resurs grupp.

    Ta bort

  4. Du blir ombedd att bekräfta borttagningen av resursgruppen. Skriv namnet på resurs gruppen 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å direktmetods-anropet 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.