Dela via


Azure IoT-enhetsutveckling

Azure IoT är en samling hanterade tjänster och plattformstjänster som ansluter, övervakar och styr dina IoT-enheter. Azure IoT erbjuder utvecklare en omfattande uppsättning alternativ. Alternativen är enhetsplattformar, stöd för molntjänster, SDK:er, MQTT-stöd och verktyg för att skapa enhetsaktiverade molnprogram.

Den här artikeln beskriver flera viktiga överväganden för utvecklare som kommer igång med Azure IoT.

Enhetsutvecklingsvägar

I den här artikeln beskrivs två vanliga enhetsutvecklingsvägar. Varje sökväg innehåller en uppsättning relaterade utvecklingsalternativ och uppgifter.

  • Allmän enhetsutveckling: Överensstämmer med moderna utvecklingsmetoder, riktar in sig på språk med högre ordning och körs på ett allmänt operativsystem som Windows eller Linux.

    Kommentar

    Om enheten kan köra ett allmänt operativsystem rekommenderar vi att du följer utvecklingsvägen Allmän enhet . Det ger en mer omfattande uppsättning utvecklingsalternativ.

  • Utveckling av inbäddade enheter: Beskriver utveckling som riktar sig till resursbegränsade enheter. Ofta använder du en resursbegränsad enhet för att minska enhetskostnaderna, energiförbrukningen eller enhetsstorleken. Dessa enheter har direkt kontroll över den maskinvaruplattform som de kör på.

Allmän enhetsutveckling

Vissa utvecklare anpassar befintliga enheter för generell användning för att ansluta till molnet och integrera dem i sina IoT-lösningar. Dessa enheter har stöd för språk med högre ordning, till exempel C# eller Python, och stöder ofta ett robust operativsystem för generell användning, till exempel Windows eller Linux. Vanliga målenheter är datorer, containrar, Raspberry Pis och mobila enheter.

I stället för att utveckla begränsade enheter i stor skala fokuserar de allmänna enhetsutvecklarna på att aktivera ett specifikt IoT-scenario som krävs av molnlösningen. Vissa utvecklare arbetar också med begränsade enheter för sin molnlösning. För utvecklare som arbetar med resursbegränsade enheter, se sökvägen Utveckling av inbäddade enheter .

Viktigt!

Information om SDK:er som ska användas för allmän enhetsutveckling finns i Enhets-SDK:er.

Utveckling av inbäddade enheter

Inbäddad utveckling riktar sig till begränsade enheter som har begränsat minne och bearbetning. Begränsade enheter begränsar vad som kan uppnås jämfört med en traditionell utvecklingsplattform.

Inbäddade enheter använder vanligtvis ett realtidsoperativsystem (RTOS) eller inget operativsystem alls. Inbäddade enheter har fullständig kontroll över sin maskinvara på grund av bristen på ett allmänt operativsystem. Det gör inbäddade enheter till ett bra val för realtidssystem.

De aktuella inbäddade SDK:erna riktar sig mot C-språket. De inbäddade SDK:erna har antingen inget operativsystem eller Eclipse ThreadX-stöd. De är utformade med inbäddade mål i åtanke. Designövervägandena omfattar behovet av ett minimalt fotavtryck och en icke-minnesallokeringsdesign.

Viktigt!

Information om SDK:er som ska användas med utveckling av inbäddade enheter finns i SDK:er för inbäddade enheter.

Välja maskinvara

Azure IoT-enheter är de grundläggande byggstenarna i en IoT-lösning och ansvarar för att observera och interagera med deras miljö. Det finns många olika typer av IoT-enheter och det är bra att förstå vilka typer av enheter som finns och hur de kan påverka din utvecklingsprocess.

Mer information om skillnaden mellan enhetstyper som beskrivs i den här artikeln finns i Om IoT-enhetstyper.

Välja ett SDK

Som Azure IoT-enhetsutvecklare har du en mängd olika SDK:er, protokoll och verktyg som hjälper dig att skapa enhetsaktiverade molnprogram.

Det finns två huvudsakliga alternativ för att ansluta enheter och kommunicera med IoT Hub:

  • Använd Azure IoT SDK:er. I de flesta fall rekommenderar vi att du använder Azure IoT SDK:er jämfört med att använda MQTT direkt. SDK:erna effektiviserar din utveckling och förenklar komplexiteten med att ansluta och hantera enheter. IoT Hub stöder MQTT v3.1.1-protokollet , och IoT SDK:erna förenklar processen med att använda MQTT för att kommunicera med IoT Hub.
  • Använd MQTT-protokollet direkt. Det finns vissa fördelar med att skapa en IoT Hub-lösning för att använda MQTT direkt. En lösning som till exempel använder MQTT direkt utan SDK:erna kan byggas på den öppna MQTT-standarden. En standardbaserad metod gör lösningen mer portabel och ger dig mer kontroll över hur enheter ansluter och kommunicerar. IoT Hub är dock inte en fullständig MQTT-broker och stöder inte alla beteenden som anges i MQTT v3.1.1-standarden. Det partiella stödet för MQTT v3.1.1 ökar utvecklingskostnaden och komplexiteten. Enhetsutvecklare bör väga kompromisserna med att använda IoT-enhets-SDK:er jämfört med att använda MQTT direkt. Mer information finns i Kommunicera med en IoT-hubb med hjälp av MQTT-protokollet.

Det finns tre uppsättningar IoT SDK:er för enhetsutveckling:

  • Enhets-SDK:er (för att använda språk med högre ordning för att ansluta befintliga enheter för generell användning till IoT-program)
  • SDK:er för inbäddade enheter (för att ansluta resursbegränsade enheter till IoT-program)
  • Tjänst-SDK:er (för att skapa Azure IoT-lösningar som ansluter enheter till tjänster)

Mer information om hur du väljer en Azure IoT-enhet eller tjänst-SDK finns i Azure IoT SDK:er.

Välja en tjänst

Ett viktigt steg i utvecklingsprocessen är att välja en tjänst att ansluta dina enheter till. Det finns två primära Azure IoT-tjänstalternativ för att ansluta och hantera enheter: IoT Hub och IoT Central.

  • Azure IoT Hub. Använd Iot Hub för att vara värd för IoT-program och ansluta enheter. IoT Hub är ett PaaS-program (platform-as-a-service) som fungerar som en central meddelandehubb för dubbelriktad kommunikation mellan IoT-program och anslutna enheter. IoT Hub kan skalas för att stödja miljontals enheter. Jämfört med andra Azure IoT-tjänster erbjuder IoT Hub den största kontrollen och anpassningen av din programdesign. Det erbjuder också de mest utvecklarverktygsalternativen för att arbeta med tjänsten, på bekostnad av en viss ökning av utvecklings- och hanteringskomplexiteten.
  • Azure IoT Central. IoT Central är utformat för att förenkla processen med att arbeta med IoT-lösningar. Du kan använda det som ett konceptbevis för att utvärdera dina IoT-lösningar. IoT Central är ett SaaS-program (software-as-a-service) som tillhandahåller ett webbgränssnitt för att förenkla uppgifterna för att skapa program och ansluta och hantera enheter. IoT Central använder IoT Hub för att skapa och hantera program, men håller de flesta detaljerna transparenta för användaren.

Verktyg för att ansluta och hantera enheter

När du har valt maskinvara och en enhets-SDK som ska användas har du flera alternativ för utvecklingsverktyg. Du kan använda dessa verktyg för att ansluta enheten till IoT Hub och hantera dem. I följande tabell sammanfattas vanliga verktygsalternativ.

Verktyg Dokumentation beskrivning
Azure Portal Skapa en IoT-hubb med Azure-portalen Webbläsarbaserad portal för IoT Hub och enheter. Fungerar även med andra Azure-resurser, inklusive IoT Central.
Azure IoT-utforskaren Azure IoT-utforskaren Det går inte att skapa IoT-hubbar. Anslut till en befintlig IoT-hubb för att hantera enheter. Används ofta med CLI eller portalen.
Azure CLI Skapa en IoT-hubb med CLI Kommandoradsgränssnitt för att skapa och hantera IoT-program.
Azure PowerShell Skapa en IoT-hubb med PowerShell PowerShell-gränssnitt för att skapa och hantera IoT-program
Azure IoT Tools för VS Code Skapa en IoT-hubb med verktyg för VS Code VS Code-tillägg för IoT Hub-program.

Kommentar

Förutom de tidigare listade verktygen kan du programmatiskt skapa och hantera IoT-program med hjälp av REST API:er, Azure SDK:er eller Azure Resource Manager-mallar. Läs mer i IoT Hub-tjänstdokumentationen.

Nästa steg

Mer information om enhets-SDK:er som du kan använda för att ansluta enheter till Azure IoT finns i följande artikel.

För att komma igång med praktisk enhetsutveckling väljer du en självstudie om enhetsutveckling som är relevant för de enheter som du använder. Följande självstudier är bra utgångspunkter för allmän enhetsutveckling eller utveckling av inbäddade enheter.