Dela via


Utveckling av Azure IoT-enheter

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. Dina alternativ omfattar enhetsplattformar, stöd för molntjänster, SDK:er, MQTT-stöd och verktyg för att skapa enhetsaktiverade molnprogram.

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

Utvecklingsvägar för enheter

I den här artikeln beskrivs två vanliga sökvägar för enhetsutveckling. 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.

    Anmärkning

    Om din enhet kan köra ett allmänt operativsystem rekommenderar vi att du följer den allmänna sökvägen för enhetsutveckling . Det ger en rikare uppsättning utvecklingsalternativ.

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

Allmän enhetsutveckling

Vissa utvecklare anpassar befintliga, allmänna enheter för att ansluta till molnet och integrera i sina IoT-lösningar. Dessa enheter har stöd för språk med högre ordning, till exempel C# eller Python, och har ofta stöd för 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 allmänna enhetsutvecklare på att aktivera ett specifikt IoT-scenario som krävs av deras molnlösning. Vissa utvecklare arbetar också med begränsade enheter för sin molnlösning. Utvecklare som arbetar med resursbegränsade enheter finns i utvecklingsvägen för 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. Inbyggda enheter har full kontroll över sin hårdvara på grund av avsaknaden av ett allmänt operativsystem. Detta faktum gör inbyggda 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 ger antingen inget operativsystem eller stöd för Eclipse ThreadX. De är utformade med inbäddade mål i åtanke. Designövervägandena omfattar behovet av ett minimalt fotavtryck och en design som inte allokerar minne.

Viktigt!

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

Att välja din hårdvara

Azure IoT-enheter är de grundläggande byggstenarna i en IoT-lösning och ansvarar för att observera och interagera med sin 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 utvecklingsprocessen.

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

Välja en 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 utvecklingsarbetet och förenklar komplexiteten med att ansluta och hantera enheter. IoT Hub stöder protokollet MQTT v3.1.1 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 några fördelar med att skapa en IoT Hub lösning för att använda MQTT direkt. En lösning som använder MQTT direkt utan SDK:er kan till exempel 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 fullfjädrad MQTT-koordinator 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 utvecklingskostnaderna 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 som värd för IoT-program och ansluta enheter. IoT Hub är ett PaaS-program (plattform som en tjänst) 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 största möjliga kontroll och anpassning över din programdesign. Det erbjuder också de flesta alternativen för utvecklarverktyg 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 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 arbetet med 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 detaljer 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 utvecklarverktyg. 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-portalen Skapa en IoT-hubb med Azure Portal 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. Ansluter till en befintlig IoT-hubb för att hantera enheter. Används ofta med CLI eller Portal.
Azure CLI (kommandoradsgränssnittet för Azure) Skapa en IoT-hubb med CLI Kommandoradsgränssnitt för att skapa och hantera IoT-applikationer.
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.

Anmärkning

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 dokumentationen för IoT Hub-tjänsten .

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.

Kom igång med praktisk enhetsutveckling genom att välja en självstudiekurs för enhetsutveckling som är relevant för de enheter du använder. Följande självstudier är bra utgångspunkter för allmän enhetsutveckling eller utveckling av inbyggda enheter.