IoT-apparaatontwikkeling
In dit overzicht worden de belangrijkste concepten geïntroduceerd voor het ontwikkelen van apparaten die verbinding maken met een typische Azure IoT-oplossing. Elke sectie bevat koppelingen naar inhoud die meer details en richtlijnen biedt.
In het volgende diagram ziet u een algemeen overzicht van de onderdelen in een typische IoT-oplossing. Dit artikel is gericht op de apparaten en gateway die in het diagram worden weergegeven.
In Azure IoT schrijft een apparaatontwikkelaar de code die moet worden uitgevoerd op de apparaten in de oplossing. Deze code is doorgaans:
- Hiermee wordt een beveiligde verbinding met een cloudeindpunt tot stand gebracht.
- Verzendt telemetrie die wordt verzameld van gekoppelde sensoren naar de cloud.
- Hiermee beheert u de apparaatstatus en synchroniseert u die status met de cloud.
- Reageert op opdrachten die vanuit de cloud worden verzonden.
- Hiermee schakelt u de installatie van software-updates vanuit de cloud in.
- Hiermee kan het apparaat blijven functioneren terwijl de verbinding met de cloud is verbroken.
Apparaattypen
IoT-apparaten kunnen worden onderverdeeld in twee brede categorieën, microcontrollers (MCU's) en microprocessors (MPU's):
- MCU's zijn goedkoper en eenvoudiger te bedienen dan MPU's.
- Een MCU bevat veel van de functies, zoals geheugen, interfaces en I/O op de chip zelf. Een MPU heeft toegang tot deze functionaliteit van onderdelen in ondersteunende chips.
- Een MCU maakt vaak gebruik van een realtime besturingssysteem (RTOS) of voert bare-metal (geen besturingssysteem) uit en biedt realtime reacties en zeer deterministische reacties op externe gebeurtenissen. MPU's voeren over het algemeen een algemeen besturingssysteem uit, zoals Windows, Linux of macOS dat een niet-deterministisch realtime-antwoord biedt. Er is doorgaans geen garantie dat een taak wordt voltooid.
Voorbeelden van gespecialiseerde hardware en besturingssystemen zijn:
Windows voor IoT is een ingesloten versie van Windows voor MPU's met cloudconnectiviteit waarmee u veilige apparaten kunt maken met eenvoudig inrichten en beheren.
Eclipse ThreadX is een realtime-besturingssysteem voor IoT- en Edge-apparaten die mogelijk worden gemaakt door MCU's. Eclipse ThreadX is ontworpen ter ondersteuning van zeer beperkte apparaten die op batterijen worden aangedreven en minder dan 64 kB flashgeheugen hebben.
Azure Sphere is een veilig toepassingsplatform op hoog niveau met ingebouwde communicatie- en beveiligingsfuncties voor apparaten die zijn verbonden met internet. Het omvat een beveiligd, verbonden, cross-over MCU, een aangepast, op Linux gebaseerd besturingssysteem op hoog niveau en een cloudbeveiligingsservice die continue, hernieuwbare beveiliging biedt.
Primitieven
Een Azure IoT-apparaat kan de volgende primitieven gebruiken om te communiceren met de cloud:
- Apparaat-naar-cloud-berichten voor het verzenden van telemetriegegevens van tijdreeksen naar de cloud. Bijvoorbeeld temperatuurgegevens die zijn verzameld van een sensor die aan het apparaat is gekoppeld.
- Bestandsuploads voor mediabestanden, zoals vastgelegde afbeeldingen en video. Onregelmatig verbonden apparaten kunnen telemetriebatches verzenden. Apparaten kunnen uploads comprimeren om bandbreedte te besparen.
- Apparaatdubbels voor het delen en synchroniseren van statusgegevens met de cloud. Een apparaat kan bijvoorbeeld de apparaatdubbel gebruiken om de huidige status van een klep te rapporteren die naar de cloud wordt bestuurd en om een gewenste doeltemperatuur van de cloud te ontvangen.
- Digitale dubbels die een apparaat in de digitale wereld vertegenwoordigen . Een digitale dubbel kan bijvoorbeeld de fysieke locatie van een apparaat, de mogelijkheden en de relaties met andere apparaten vertegenwoordigen.
- Directe methoden voor het ontvangen van opdrachten uit de cloud. Een directe methode kan parameters bevatten en een antwoord retourneren. De cloud kan bijvoorbeeld een directe methode aanroepen om het apparaat binnen 30 seconden opnieuw op te starten.
- Cloud-naar-apparaat-berichten voor het ontvangen van meldingen in één richting van de cloud. Bijvoorbeeld een melding dat een update gereed is om te downloaden.
Zie Richtlijnen voor apparaat-naar-cloud-communicatie en richtlijnen voor communicatie tussen clouds voor apparaten voor meer informatie.
Apparaat-SDK's
De apparaat-SDK's bieden abstracties op hoog niveau waarmee u de primitieven zonder kennis van de onderliggende communicatieprotocollen kunt gebruiken. De apparaat-SDK's verwerken ook de details van het tot stand brengen van een beveiligde verbinding met de cloud en het verifiëren van het apparaat.
Voor MPU-apparaten zijn apparaat-SDK's beschikbaar voor de volgende talen:
Zie voor MCU-apparaten:
Voorbeelden en richtlijnen
Alle apparaat-SDK's bevatten voorbeelden die laten zien hoe u de SDK gebruikt om verbinding te maken met de cloud, telemetrie te verzenden en de andere primitieven te gebruiken.
De ontwikkelsite voor IoT-apparaten bevat zelfstudies en instructiegidsen die u laten zien hoe u code implementeert voor een reeks apparaattypen en scenario's.
Meer voorbeelden vindt u in de codevoorbeeldbrowser.
Zie Apparaatherconnecties beheren om tolerante toepassingen te maken voor meer informatie over het implementeren van automatische opnieuw verbinding maken met eindpunten.
Apparaatontwikkeling zonder een apparaat-SDK
Hoewel u wordt aangeraden een van de apparaat-SDK's te gebruiken, zijn er mogelijk scenario's waarin u liever niet. In deze scenario's moet uw apparaatcode rechtstreeks gebruikmaken van een van de communicatieprotocollen die ioT Hub en device provisioning service (DPS) ondersteunen.
Zie voor meer informatie:
- Het MQTT-protocol rechtstreeks gebruiken (als apparaat)
- Het AMQP-protocol rechtstreeks gebruiken (als een apparaat)
Apparaatmodellering
Met IoT Plug en Play kunnen ontwikkelaars van oplossingen IoT-apparaten integreren met hun oplossingen zonder handmatige configuratie. Het belangrijkste van IoT Plug en Play is een apparaatmodel dat een apparaat gebruikt om de mogelijkheden ervan te adverteren naar een IoT Plug en Play-toepassing zoals IoT Central. Dit model is gestructureerd als een set elementen waarmee het volgende wordt gedefinieerd:
- Eigenschappen die de alleen-lezen- of schrijfbare status van apparaat of andere entiteit vertegenwoordigen. Een serienummer van een apparaat kan bijvoorbeeld een alleen-lezen eigenschap zijn en een doeltemperatuur op een thermostaat kan een beschrijfbare eigenschap zijn.
- Telemetrie ofwel de gegevens die door een apparaat worden verzonden, ongeacht of het gaat om gegevens van een normale stroom met sensorwaarden, een incidentele fout of een informatiebericht.
- Opdrachten waarmee functies of bewerkingen die op het apparaat kunnen worden uitgevoerd, worden beschreven. Met een opdracht kan bijvoorbeeld een gateway opnieuw worden opgestart of een foto worden gemaakt met een externe camera.
U kunt deze elementen groeperen in interfaces om de elementen opnieuw te gebruiken in verschillende modellen waardoor samenwerking eenvoudiger wordt en ontwikkeling sneller verloopt.
Het model wordt opgegeven met behulp van de Digital Twins Definition Language (DTDL).
Het gebruik van IoT Plug en Play, modellering en DTDL is optioneel. U kunt de Primitieven van het IoT-apparaat gebruiken zonder IoT-Plug en Play of modellering te gebruiken. De Azure Digital Twins-service maakt ook gebruik van DTDL-modellen om dubbelgrafieken te maken op basis van digitale modellen van omgevingen, zoals gebouwen of factory's.
Als apparaatontwikkelaar moet u, wanneer u een IoT-Plug en Play-apparaat implementeert, een reeks conventies volgen. Deze conventies bieden een standaardmethode voor het implementeren van het apparaatmodel in code met behulp van de primitieven die beschikbaar zijn in de apparaat-SDK's.
Raadpleeg voor meer informatie:
Code voor containerapparaten
Als u containers, zoals in Docker, gebruikt om uw apparaatcode uit te voeren, kunt u code implementeren op uw apparaten met behulp van de mogelijkheden van de containerinfrastructuur. Met containers kunt u ook een runtime-omgeving voor uw code definiëren waarbij alle vereiste bibliotheek- en pakketversies zijn geïnstalleerd. Met containers kunt u eenvoudiger updates implementeren en de levenscyclus van uw IoT-apparaten beheren.
Azure IoT Edge voert apparaatcode uit in containers. U kunt Azure IoT Edge gebruiken om codemodules op uw apparaten te implementeren. Zie Uw eigen IoT Edge-modules ontwikkelen voor meer informatie.
Tip
Azure IoT Edge maakt meerdere scenario's mogelijk. Naast het uitvoeren van uw IoT-apparaatcode in containers, kunt u Azure IoT Edge gebruiken om Azure-services op uw apparaten uit te voeren en veldgateways te implementeren. Zie Wat is Azure IoT Edge?
Ontwikkelhulpprogramma’s
De volgende tabel bevat enkele van de beschikbare IoT-ontwikkelhulpprogramma's:
Hulpprogramma | Beschrijving |
---|---|
Azure IoT Hub (VS Code-extensie) | Met deze VS Code-extensie kunt u uw IoT Hub-resources en -apparaten beheren vanuit VS Code. |
Azure IoT Explorer | Met dit platformoverschrijdende hulpprogramma kunt u uw IoT Hub-resources en -apparaten beheren vanuit een bureaubladtoepassing. |
Azure IoT-extensie voor Azure CLI | Deze CLI-extensie bevat opdrachten zoals az iot device simulate , az iot device c2d-message en az iot hub monitor-events waarmee u interacties met apparaten kunt testen. |
Volgende stappen
Nu u een overzicht van apparaatontwikkeling in Azure IoT-oplossingen hebt gezien, zijn enkele voorgestelde volgende stappen: