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).
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
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. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att göra det installerar du Azure CLI-tillägget vid första användningen. 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
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:
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.
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
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
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.
Navigera till C#-exempelprojektets rotmapp i ett lokalt terminalfönster. Navigera sedan till mappen iothub\device\samples\getting started\SimulatedDeviceWithCommand .
Kör följande kommando för att installera de paket som krävs för simulerat enhetsprogram:
dotnet restore
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:
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.
Navigera till C#-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Navigera sedan till mappen iothub\service\samples\getting started\InvokeDeviceMethod .
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
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:
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:
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
-
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).
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
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. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att göra det installerar du Azure CLI-tillägget 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
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 list
du .
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:
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.
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
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
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:
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}
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>
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.
Navigera till Java-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-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.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
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:
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.
Navigera till Java-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Gå sedan till mappen Quickstarts\back-end-application.
Ö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.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
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:
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:
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.
-
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).
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
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. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att göra det installerar du Azure CLI-tillägget 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
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 list
du .
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:
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.
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
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
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:
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}
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>
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.
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.
Ö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.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:
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.
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.
Ö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.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:
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:
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
Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.
Python 3.7+. Andra versioner av Python som stöds finns i Funktioner för Azure IoT-enheter.
Klona eller ladda ned Azure IoT Python-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).
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
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. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att göra det installerar du Azure CLI-tillägget 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
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 list
du .
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:
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.
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
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
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:
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}
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>
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.
Navigera till Python-exempelprojektets rotmapp i ett lokalt terminalfönster. Gå sedan till mappen iot-hub\Quickstarts\simulated-device-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.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
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:
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.
Navigera till Python-exempelprojektets rotmapp i ett annat lokalt terminalfönster. Gå sedan till mappen Quickstarts\back-end-application.
Ö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.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
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:
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:
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:
Logga in på Azure Portal och välj Resursgrupper.
I textrutan Filtrera efter namn skriver du namnet på resursgruppen som innehåller din IoT Hub.
Till höger om resursgruppen i resultatlistan väljer du ... och sedan Ta bort resursgrupp.
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.