Azure IoT-Geräteentwicklung

Azure IoT ist eine Sammlung von verwalteten Plattformdiensten, mit denen Sie Ihre IoT-Geräte verbinden, überwachen und steuern. Azure IoT bietet Entwicklern eine Vielzahl von Optionen. Ihre Optionen umfassen Geräteplattformen, die Unterstützung von Clouddiensten, SDKs, Message Queue Telemetry Transport(MQTT)-Unterstützung und Tools für die Entwicklung von auf Geräten nutzbaren Cloudanwendungen.

Dieser Artikel zeigt einige wichtige Überlegungen auf, die Entwickler anstellen sollten, wenn sie mit der Arbeit mit Azure IoT beginnen.

Pfade für die Geräteentwicklung

In diesem Artikel werden zwei allgemeine Pfade für die Geräteentwicklung erläutert. Jeder Pfad enthält eine Reihe von verwandten Entwicklungsoptionen und -aufgaben.

  • Allgemeine Geräteentwicklung: Entspricht modernen Entwicklungsmethoden, zielt auf Sprachen höherer Ordnung ab und funktioniert unter universellen Betriebssystemen wie Windows oder Linux.

    Hinweis

    Wenn Ihr Gerät ein universelles Betriebssystem ausführen kann, sollten Sie den Abschnitt Allgemeine Geräteentwicklung lesen. Damit erhalten Sie umfassendere Entwicklungsoptionen.

  • Entwicklung von eingebetteten Geräten: Beschreibt die Entwicklung von Geräten mit eingeschränkten Ressourcen. Oft verwenden Sie ein Gerät mit eingeschränkten Ressourcen, um die Kosten pro Einheit, den Energieverbrauch oder die Größe des Geräts zu reduzieren. Diese Geräte haben direkte Kontrolle über die Hardwareplattform, auf der sie ausgeführt werden.

Allgemeine Geräteentwicklung

Einige Entwickler passen vorhandene universelle Geräte an, sodass diese eine Verbindung mit der Cloud herstellen und in IoT-Lösungen integriert werden können. Diese Geräte können Sprachen höherer Ordnung unterstützen – wie z. B. C# oder Python – und unterstützen häufig ein stabiles universelles Betriebssystem wie Windows oder Linux. Gängige Zielgeräte sind beispielsweise PCs, Container, Raspberry Pis und mobile Geräte.

Anstatt im großen Stil Anwendungen für eingeschränkte Geräte zu entwickeln, konzentrieren sich Entwickler allgemeiner Geräte darauf, ein bestimmtes IoT-Szenario zu ermöglichen, das für ihre Cloudlösung erforderlich ist. Einige Entwickler arbeiten auch an eingeschränkten Geräten für ihre Cloudlösung. Informationen zur Entwicklung von Geräten mit Ressourceneinschränkungen finden Sie im Abschnitt Entwicklung von eingebetteten Geräten.

Wichtig

Informationen zu SDKs für die Entwicklung von allgemeinen Geräten finden Sie unter Geräte-SDKs.

Entwicklung von eingebetteten Geräten

Die Entwicklung von eingebetteten Geräten wird für Geräte genutzt, die nur über eingeschränkte Arbeitsspeicher- und Verarbeitungskapazitäten verfügen. Bei diesen Geräten sind die Möglichkeiten im Vergleich zu einer herkömmlichen Entwicklungsplattform eingeschränkt.

Eingebettete Geräte verwenden in der Regel ein Echtzeit-Betriebssystem (Real-Time Operating System, RTOS) oder gar kein Betriebssystem. Eingebettete Geräte haben vollständige Kontrolle über die Hardware, da kein universelles Betriebssystem vorhanden ist. Aus diesem Grund sind eingebettete Geräte eine gute Wahl für Echtzeitsysteme.

Die aktuellen SDKs für eingebettete Geräte zielen auf die Programmiersprache C ab. Die eingebetteten SDKs bieten entweder kein Betriebssystem oder Eclipse ThreadX-Unterstützung. Sie wurden mit Blick auf eingebettete Ziele konzipiert. Bei den Entwurfsüberlegungen muss berücksichtigt werden, dass der Speicherbedarf möglichst gering sein muss und keine Arbeitsspeicherzuweisung erfolgen darf.

Wichtig

Informationen zu SDKs, die bei der Entwicklung eingebetteter Geräte verwendet werden sollen, finden Sie unter SDKs für eingebettete Geräte.

Auswählen der Hardware

Azure IoT-Geräte sind die grundlegenden Bausteine einer IoT-Lösung und sind dafür zuständig, ihre Umgebung zu beobachten und mit ihr zu interagieren. Es gibt viele verschiedene Typen von IoT-Geräten. Es ist nützlich, diese Typen zu kennen und zu verstehen, wie sie sich auf den Entwicklungsprozess auswirken können.

Weitere Informationen zum Unterschied zwischen den in diesem Artikel behandelten Gerätetypen finden Sie unter Informationen zu IoT-Gerätetypen.

Auswählen eines SDK

Ihnen als Azure IoT-Geräteentwickler stehen vielfältige SDKs, Protokolle und Tools zur Verfügung, die beim Entwickeln von auf Geräten nutzbaren Cloudanwendungen unterstützen sollen.

Es gibt zwei Hauptoptionen zum Verbinden von Geräten und Kommunizieren mit IoT Hub:

  • Verwenden Sie die Azure IoT-SDKs. In den meisten Fällen wird empfohlen, die Azure IoT-SDKs im Gegensatz zur direkten Verwendung von MQTT zu verwenden. Die SDKs optimieren Ihren Entwicklungsaufwand und vereinfachen die komplexe Aufgabe, Geräte zu verbinden und zu verwalten. IoT Hub unterstützt das MQTT v3.1.1-Protokoll, und die IoT-SDKs vereinfachen die Verwendung von MQTT für die Kommunikation mit IoT Hub.
  • Verwenden Sie das MQTT-Protokoll direkt. Es gibt einige Vorteile, eine IoT Hub-Lösung für die direkte Verwendung von MQTT zu erstellen. Beispielsweise kann eine Lösung, die MQTT direkt ohne die SDKs verwendet, auf dem offenen MQTT-Standard erstellt werden. Ein standardbasierter Ansatz trägt zur einer verbesserten Portabilität der Lösung bei und gibt Ihnen mehr Kontrolle über das Verbinden und Kommunizieren von Geräten. IoT Hub ist jedoch kein MQTT-Broker mit vollem Funktionsumfang und unterstützt nicht alle im MQTT v3.1.1-Standard angegebenen Verhaltensweisen. Die teilweise Unterstützung für MQTT v3.1.1 erhöht die Entwicklungskosten und die Komplexität. Geräteentwickler sollten die Kompromisse zwischen der Verwendung der IoT-Geräte-SDKs und der direkten Verwendung von MQTT abwägen. Weitere Informationen finden Sie unter Kommunikation mit Ihrem IoT Hub mithilfe des Protokolls „MQTT“.

Es gibt drei Gruppen von IoT-SDKs für die Geräteentwicklung:

  • Geräte-SDKs (für die Verwendung von Sprachen höherer Ordnung, um universelle Geräte mit IoT-Anwendungen zu verbinden)
  • Eingebettete Geräte-SDKs (zum Herstellen einer Verbindung zwischen Geräten mit Ressourceneinschränkungen und IoT-Anwendungen)
  • Dienst-SDKs (zum Erstellen von Azure IoT-Lösungen, die Geräte mit Diensten verbinden)

Weitere Informationen zum Auswählen eines Azure IoT-Geräts oder Dienst-SDKs finden Sie unter Azure IoT SDKs.

Auswählen eines Diensts

Ein wichtiger Schritt im Entwicklungsprozess ist das Auswählen des Diensts, mit dem Sie Ihre Geräte verbinden möchten. Es gibt zwei primäre Azure IoT-Dienstoptionen zum Verbinden und Verwalten von Geräten: IoT Hub und IoT Central.

  • Azure IoT Hub: Verwenden Sie IoT Hub, um IoT-Anwendungen zu hosten und Geräte zu verbinden. IoT Hub ist eine Platform-as-a-Service (PaaS)-Anwendung, die als zentraler Nachrichtenhub für die bidirektionale Kommunikation zwischen IoT-Anwendungen und verbundenen Geräten fungiert. IoT Hub kann zur Unterstützung von Millionen von Geräten skalieren. Im Vergleich zu anderen Azure IoT-Diensten bietet IoT Hub die größte Kontrolle und Anpassung für Ihren Anwendungsentwurf. Außerdem bietet es die meisten Optionen für Entwicklertools zum Arbeiten mit dem Dienst, wodurch allerdings die Komplexität von Entwicklung und Verwaltung etwas größer wird.
  • Azure IoT Central. IoT Central wurde entwickelt, um das Arbeiten mit IoT-Lösungen zu vereinfachen. Sie können es als Proof of Concept zum Auswerten Ihrer IoT-Lösungen verwenden. IoT Central ist eine Software-as-a-Service (SaaS)-Anwendung mit Webbenutzeroberfläche zur Vereinfachung von Aufgaben beim Erstellen von Anwendungen sowie beim Verbinden und Verwalten von Geräten. In IoT Central wird IoT Hub zum Erstellen und Verwalten von Anwendungen eingesetzt. Die Details bleiben für den Benutzer aber transparent.

Tools zum Verbinden und Verwalten von Geräten

Nachdem Sie Hardware und das zu verwendende Geräte-SDK ausgewählt haben, stehen Ihnen mehrere Optionen für Entwicklertools zur Verfügung. Sie können mithilfe dieser Tools Ihre Geräte mit IoT Hub verbinden und sie verwalten. In der folgenden Tabelle sind häufig verwendete Tooloptionen zusammengefasst.

Tool Dokumentation BESCHREIBUNG
Azure-Portal Erstellen eines IoT-Hubs über das Azure-Portal Browserbasiertes Portal für IoT Hub und Geräte. Kann auch mit anderen Azure-Ressourcen, einschließlich IoT Central, verwendet werden.
Azure IoT-Explorer Azure IoT Explorer Erstellen von IoT-Hubs nicht möglich. Stellt zum Verwalten von Geräten eine Verbindung mit einem vorhandenen IoT-Hub her. Wird häufig mit der CLI oder dem Portal verwendet.
Azure CLI Erstellen eines IoT-Hubs über die Befehlszeilenschnittstelle Befehlszeilenschnittstelle zum Erstellen und Verwalten von IoT-Anwendungen
Azure PowerShell Erstellen eines IoT-Hubs mit PowerShell PowerShell-Schnittstelle zum Erstellen und Verwalten von IoT-Anwendungen
Azure IoT Tools für VS Code Erstellen einer IoT Hub-Instanz mithilfe der Azure IoT-Tools für Visual Studio Code VS Code-Erweiterung für IoT Hub-Anwendungen

Hinweis

Zusätzlich zu den zuvor aufgeführten Tools können Sie IoT-Anwendungen mithilfe von REST-APIs, Azure SDKs oder Azure Resource Manager-Vorlagen programmgesteuert erstellen und verwalten. Weitere Informationen finden Sie in der Dienstdokumentation zu IoT Hub.

Nächste Schritte

Weitere Informationen zu Geräte-SDKs, die Sie zum Verbinden von Geräten mit Azure IoT verwenden können, finden Sie im folgenden Artikel.

Wenn Sie mit der praktischen Geräteentwicklung beginnen möchten, wählen Sie ein Tutorial zur Geräteentwicklung aus, das für die von Ihnen verwendeten Geräte relevant ist. Die folgenden Tutorials sind gute Ausgangspunkte für die allgemeine Geräteentwicklung oder die Entwicklung eingebetteter Geräte.