- Was ist Microsoft Azure IoT Hub?
- Erstellen eines Azure IoT-Hubs
- Erforderliche Komponenten zum Erstellen unserer Testschaltung für Azure IoT mit Raspberry Pi
- Azure IoT mit Raspberry Pi - Hardware-Schema
- Programmieren von Raspberry Pi zum Veröffentlichen von Daten auf Azure IoT Hub
- Veröffentlichen von Daten auf Azure IoT Hub - Testen
Mit Azure IoT Hub, dem Cloud-Computing-Dienst von Microsoft, können Entwickler Milliarden von IoT-Geräten auf einer einzigen Plattform verbinden, überwachen und verwalten. Es wird bereits in verschiedenen IoT-Anwendungen wie Hausautomationssystemen, Sicherheits-, Überwachungs- und Überwachungssystemen verwendet. Um die Funktionen des Azure IoT-Hubs zu demonstrieren, werden wir mit dem Raspberry Pi, einem DHT11-Temperatur- und Feuchtigkeitssensor, einen kleinen Schaltkreis bauen, um die Sensordaten damit zu verarbeiten. Schließlich veröffentlichen wir Sensordaten mithilfe des MQTT-Protokolls auf dem Azure IoT-Server. In diesem Lernprogramm erfahren Sie, wie Sie einen Azure-Server einrichten und konfigurieren und Daten mit einem Raspberry Pi senden.
Was ist Microsoft Azure IoT Hub?
Azure IoT Hub ist eine Sammlung verwalteter Dienste, mit denen IoT-Geräte verbunden, überwacht und gesteuert werden können. Dazu gehört auch die sichere Kommunikation für Geräte mit Datenvisualisierung und -analyse, mit deren Hilfe die Gerätehersteller IoT-Anwendungen mithilfe der Azure- Cloud erstellen, bereitstellen und verwalten können . Die Device-to-Cd-Telemetriedaten von Azure IoT Hub informieren uns über den Status der verbundenen IoT-Geräte. Mithilfe der Cloud-to-Device-Nachrichten können wir Befehle und Benachrichtigungen an die verbundenen Geräte senden. Ein Beispiel könnte sein, dass wir mithilfe eines Smart-Home-Automatisierungssystems verschiedene Sensordaten erfassen und an Azure IoT Hub senden können, um sie zu visualisieren, zu speichern und zu verwalten. Wir können die Ausgabegeräte auch über die Azure IoT Hub-Schnittstelle steuern.
Der zentrale Hub für die bidirektionale Kommunikation für IoT-Anwendungen und -Geräte unterstützt sowohl die Geräte-Cloud- als auch die Cloud-Geräte-Kommunikation. Außerdem werden mehrere Messaging-Muster unterstützt, z. B. die Telemetrie von Gerät zu Cloud, das Hochladen von Dateien von Geräten sowie Anforderungs- / Antwortmethoden. Wir können die Geräteauthentifizierungsmethode verwenden, mit der jedes Gerät eine sichere Verbindung zum IoT Hub herstellen kann. Nachdem Sie die Grundlagen von Azure IoT Hub verstanden haben, können Sie mit dem Einrichten des Systems fortfahren.
Erstellen eines Azure IoT-Hubs
Wir sind bereit, alle erforderlichen Einstellungen vorzunehmen, die zum Einrichten von Microsoft Azure- Diensten erforderlich sind. Stellen Sie jedoch zuvor sicher, dass Sie über ein Microsoft-Konto verfügen. Wenn Sie das nicht haben, können Sie sich einfach anmelden. Wechseln Sie anschließend mit portal.azure.com zum Azure-Portal und melden Sie sich an.
Sobald Sie angemeldet sind, rufen Sie die Azure-Startseite auf, klicken Sie auf die Schaltfläche Ressource erstellen und suchen Sie im Feld Marktplatz suchen nach IoT Hub . Wählen Sie in den Suchergebnissen IoT Hub und dann Erstellen aus. Die folgenden Bilder geben Ihnen einen besseren Überblick über den Prozess.
Geben Sie die erforderlichen Details ein, um einen IoT-Hub zu erstellen.
Im Abschnitt Abonnement müssen Sie das Abonnement auswählen, um es für Ihren Hub zu verwenden. In unserem Fall entscheiden wir uns für ein Testkonto und haben " Kostenlose Testversion" ausgewählt .
Wählen Sie als Nächstes im Abschnitt Ressourcengruppe Ihre Ressourcengruppe aus . Wenn Sie noch keine haben, müssen Sie eine neue erstellen, indem Sie auf Neu erstellen klicken und den Namen der Ressource eingeben.
In der Region Abschnitt können Sie das Dropdown - Menü verwenden, um die gewünschte Region auszuwählen.
Im IoT Hub Name Sektion, müssen Sie e nter einen Namen für die Nabe. Dies muss eindeutig sein. Alle notwendigen Kommunikationen werden mit diesem Namen stattfinden.
Wählen Sie unter der Registerkarte "Größe und Skalierung" die Option " Freie Stufe " aus und klicken Sie auf "Weiter". Klicken Sie dann auf "Überprüfen + Erstellen". Das Erstellen des IoT-Hubs dauert einige Minuten. Klicken Sie auf den Namen des von Ihnen erstellten IoT Hub. Notieren Sie sich den Hostnamen im Fenster (siehe Abbildung unten). Klicken Sie dann in den Einstellungen auf die Richtlinien für den gemeinsamen Zugriff. Richtlinien für den gemeinsamen Zugriff sind in der Abbildung unten hervorgehoben. Klicken Sie unter Richtlinie auf die Option iothubowner. Notieren Sie sich den Primärschlüssel und den Verbindungszeichenfolgen-Primärschlüssel für zukünftige Referenzen. Um nun ein neues Gerät unter IoT Hub zu registrieren, klicken Sie auf IoT-Geräte. Klicken Sie im Geräte-Explorer auf Hinzufügen , um dem Hub ein Gerät hinzuzufügen.
Geben Sie die folgenden Informationen auf der Registerkarte Neue Geräte ein.
- Geräte-ID: Geben Sie die ID für das Gerät ein. Geräte-IDs müssen eindeutig sein.
- Authentifizierungstyp: Wählen Sie einen symmetrischen Schlüssel aus.
- Schlüssel automatisch generieren: Aktivieren Sie dieses Kontrollkästchen.
- Gerät mit IoT Hub verbinden: Klicken Sie auf Aktivieren.
Sobald das Gerät erstellt wurde, finden Sie Ihr neu erstelltes Gerät im Abschnitt Geräte-Explorer. Klicken Sie auf den Namen des Geräts. Es werden die Details des Geräts angezeigt. Notieren Sie sich den Primärschlüssel und den Verbindungszeichenfolgen-Primärschlüssel des Geräts. Dies ist wichtig, da wir es für die Kommunikation benötigen.
Wenn das erledigt ist, können wir uns der Hardwareseite zuwenden.
Erforderliche Komponenten zum Erstellen unserer Testschaltung für Azure IoT mit Raspberry Pi
Da der Hardwareteil dieser Schaltung sehr einfach ist, ist auch die Komponentenanforderung sehr einfach. Eine Liste der erforderlichen Komponenten wird unten angezeigt.
- Raspberry Pi 3B (Wir können auch andere Pi-Modelle verwenden)
- Micro SD Card-16 GB
- DHT11 Sensor
- Micro USB 5V, 2.4A Netzteil
Azure IoT mit Raspberry Pi - Hardware-Schema
Das vollständige Schaltbild für das Azure IoT mit Raspberry Pi- Projekt ist unten dargestellt. Es wurde mit Fritzing erstellt. Befolgen Sie den Schaltplan und die Anschlüsse, um den Schaltkreis selbst herzustellen.
Die obige Schaltung sendet Temperatur- und Feuchtigkeitsdaten an Microsoft IoT Hub. In dieser Schaltung haben wir einen DHT11- Sensor verwendet, um die Temperatur- und Feuchtigkeitsdaten zu erfassen, und wir verwenden einen Raspberry Pi 3B als Datenverarbeitungsgerät. Der DHT11-Sensor hat drei Pins. Die VCC- und GND-Pins werden verwendet, um den Sensor mit 5 V DC zu versorgen, und der Datenausgangspin von DHT11 ist mit GPIO4 von Raspberry Pi verbunden. Wenn Sie erfahren möchten, wie Sie den DHT11-Temperatur- und Feuchtigkeitssensor mit Raspberry Pi verbinden, lesen Sie unseren vorherigen Artikel zum Thema. Wir haben diesen Sensor auch verwendet, um die IoT Raspberry Pi Weather Station zu bauen.
Programmieren von Raspberry Pi zum Veröffentlichen von Daten auf Azure IoT Hub
Bevor Sie mit der Codierung für dieses Projekt beginnen, müssen Sie im Azure-Portal eine Azure-Cloud-Shell (CLI) erstellen. Dies wird in vielerlei Hinsicht nützlich sein. Klicken Sie dazu im Portal wie unten gezeigt auf die Schaltfläche Azure Cloud Shell. Klicken Sie dann auf die rot markierte Option Speicher erstellen.
Ist das erledigt, können Sie die CLI zu öffnen, und führen Sie die folgenden Befehle, um die Installation Azure Add-on‘s, die verwendet werden, um die Sensordaten zu zeigen.
az Erweiterung add --name azure-cli-iot-ext
Sobald dies erledigt ist, müssen wir Abhängigkeiten vom Raspberry Pi installieren, um mit dem DHT11-Sensor zu kommunizieren und den Kommunikationsprozess für Azure IoT-Dienste zu vereinfachen. Öffnen Sie dazu ein Raspberry Pi Terminal, um die im Projekt verwendeten abhängigen Pakete zu installieren.
Zuerst müssen wir die DHT-Bibliothek für Raspberry Pi herunterladen, dann aus dem Stammordner extrahieren und den folgenden Befehl ausführen, um sie zu installieren.
sudo python setup.py installieren
Führen Sie nach erfolgreicher Installation die folgenden Befehle aus, um alle abhängigen Pakete auf Azure IoT Hub zu installieren.
sudo pip3 installiere azure-iot-device sudo pip3 installiere azure-iot-hub sudo pip3 installiere azure-iothub-service-client sudo pip3 installiere azure-iothub-device-client
Sobald wir alle Voraussetzungen für die Installation erfüllt haben, ist es Zeit, den Code in Python zu schreiben. Importieren Sie dazu zunächst alle Bibliotheken:
Importieren zufälliger Import Adafruit_DHT Importzeit von azure.iot.device Import IoTHubDeviceClient, Nachricht
In diesem Projekt verwenden wir Pin 4 des Raspberry Pi, um die Daten aus den DHT11-Daten zu verarbeiten. Daher müssen sie wie gezeigt deklariert werden.
sensor = Adafruit_DHT.DHT11 pin = 4
Als nächstes definieren wir die Verbindungszeichenfolge des Codes. Ersetzen Sie es durch Ihre Geräte-primäre Verbindungszeichenfolge, die wir zuvor gespeichert haben.
CONNECTION_STRING = "Hostname = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
Als Nächstes erstellen wir ein Array, mit dem die Daten an Azure IoT Hub gesendet werden. Dies kann wie unten gezeigt erfolgen.
MSG_SND = '{{"Temperatur": {Temperatur}, "Luftfeuchtigkeit": {Luftfeuchtigkeit}}}'
Als nächstes haben wir eine while-Schleife definiert. In der while-Schleife werden sowohl Feuchtigkeits- als auch Temperaturdaten mit der Funktion Adafruit_DHT.read_retry verarbeitet. Darüber hinaus definieren wir zwei spezielle Variablen und weisen diesen Variablen die Ausgabedaten zu.
während True: Luftfeuchtigkeit, Temperatur = Adafruit_DHT.read_retry (Sensor, Stift)
Als nächstes wird eine Funktion geschrieben, um den IoT Hub unter Verwendung der zuvor definierten Verbindungsparameter zu verbinden.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) gibt den Client zurück
Im nächsten Schritt werden schließlich sowohl die Temperatur- als auch die Feuchtigkeitsdaten in dem im folgenden Code angegebenen Format an Azure Hub gesendet. Außerdem haben wir eine Try-and-Catch-Methode verwendet, um festzustellen, ob der Code einen Fehler enthält.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("Daten an IoT Hub senden, Strg-C drücken, um zu beenden "), während True: msg_txt_formatted = MSG_SND.format (Temperatur = Temperatur, Luftfeuchtigkeit = Luftfeuchtigkeit) message = Message (msg_txt_formatted) print ("Nachricht senden: {}". Format (Nachricht)) client.send_message (Nachricht) print ("Nachricht erfolgreich gesendet") time.sleep (3)
Veröffentlichen von Daten auf Azure IoT Hub - Testen
Nachdem Sie den Code erfolgreich geschrieben haben, kompilieren Sie ihn und überprüfen Sie ihn auf Fehler. Wenn der Codeblock erfolgreich kompiliert wurde, führen Sie den Code aus. Im Terminalfenster sollte die Meldung "Nachricht erfolgreich gesendet" angezeigt werden. Der Screenshot des Fensters ist unten dargestellt:
Um die Daten in Azure IoT Hub anzuzeigen, rufen Sie das Portal auf, klicken Sie auf das CLI-Terminal und führen Sie die folgenden Befehle aus, um Ihre Anmeldeinformationen darin zu ersetzen.
Az Iot Hub Monitor-Ereignisse - Hub-Name XYZ - Geräte-ID XYZ
Hinweis:
Ersetzen Sie XYZ durch Ihren Hub-Namen und Ihre Geräte-ID.
Nachdem Sie den obigen Befehl ausgeführt haben, sollten Sie die Daten wie unten gezeigt auf dem Bildschirm abrufen. Dies sind die gleichen Daten, die von Raspberry Pi gesendet wurden.
Dies markiert das Ende dieses Tutorials. Ich hoffe, Ihnen hat der Artikel gefallen und Sie haben etwas Neues gelernt. Wenn Sie Fragen zum Artikel haben, können Sie diese im Kommentarbereich unten hinterlassen. Oder Sie können unser Elektronikforum nutzen, um eine schnellere und bessere Antwort zu erhalten.