Wenn wir einen Raspberry Pi mit installierter Docker-Runtime haben, können wir auch die Azre IoT Edge Runtime installieren. Damit machen wir unseren Raspberry Pi zu einem Test-Device für den Azure IoT-Hub.
Dies wird benötigt
Folgendes wird für diesen Beitrag benötigt:
Schritt 1: Installieren der IoT-Edge Runtime Pakete
Die eigentlichen Pakete der IoT-Edge Runtime werden über folgenden Befehl geholt:
sudo pip install -U azure-iot-edge-runtime-ctl
Sollte folgende Fehlermeldung erscheinen

müssen ein paar Zwischenschritte eingefügt werden:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev

und die eigentliche Installation dann mit y bestätigt werden

Um sicherzustellen, dass alle Vorbedingungen erfüllt sind, setzen wir auch noch folgenden Befehl ab:
sudo pip install cryptography

Im Normalfall sollte dieser nicht nötig sein und mit folgender Rückmeldung anzeigen, dass diese Vorbedingung schon installiert ist.

Jetzt starten wir den zweiten Versuch, die Azure IoT Edge Pakete zu installieren, indem wir den folgenden Befehl erneut eingeben:
sudo pip install -U azure-iot-edge-runtime-ctl

Das Laden der Pakete dauert jetzt einige Minuten. Zeit für einen Kaffee oder Tee…
Nach einigen Minuten meldet sich der SSH-Client mit erneuter Eingabeaufforderung.

Schritt 2: Device Informationen aus Azure IoT-Hub eingeben
Dazu müssen wir die Connection-String Informationen des entsprechenden Devices im Azure IoT-Hub zur Verfügung haben. Sollte noch kein Device im Azure IoT-Hub angelegt sein, dies bitte jetzt tun die Connection-String Informationen des Devices notieren. Ich habe eine Anleitung in einem weiteren Blogeintrag zur Verfügung gestellt.
Wenn wir den Device Connection-String zur Verfügung haben, kann dieser in unserem IoT-Edge Device (unser Raspberry Pi) gespeichert werden. Dies geschieht durch folgendes Kommando, das wir per SSH-Client an unseren Raspberry Pi senden.
sudo iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords
sudo iotedgectl setup --connection-string "HostName=chp-blog-we.azure-devices.net;DeviceId=blog01;SharedAccessKey=yrNME32CnRp+bF03jtEwWrBCT7nQXo3rgC1vgxUBRok=" --auto-cert-gen-force-no-passwords

Nachdem wir nun auch den Connection-String unserem Device bekannt gemacht haben und dieses jetzt weiß, wohin es senden kann, kommen wir nun zum letzten Schritt.
Schritt 3: Aktivieren des IoT-Edge Devices
Durch den folgenden Befehl wird zum Schluss die IoT-Edge Runtime auf unserem Raspberry Pi gestartet.
sudo iotedgectl start

Der nun startende Vorgang kann wieder ein paar Minuten dauern. Es wird jetzt ein benötigter Standard-Container, der azureiotedge-agent in der Version 1.0-preview geladen.

Nachdem dies fertiggestellt ist können wir uns diesen geladenen Standard-Container ansehen, indem wir folgenden Befehl absetzen:
sudo docker ps

Im folgenden Bild wird der in der Docker-Runtime gestartete Container azureiotedge:1.0-preview angezeigt.

Somit ist eine Kommunikation zwischen IoT-Edge-Device (Raspberry Pi) und dem IoT-Hub möglich.
Schritt 4: Verifizierung im Azure IoT-Hub
Zurück im Azure Portal, gehen wir in die Konfiguration unseres IoT-Hubs, genauer gesagt in die Device Details unseres IoT-Edge Devices.

Hier sehen wir, dass unser Device jetzt im Zustand Connected ist.
Somit haben wir eine Verbindung zwischen IoT-Hub in der Azure-Cloud und unserem IoT-Edge-Device (Raspberry Pi) hergestellt. Nun ist es möglich eigene IoT-Edge Module an das Device zu senden.
Referenzen
https://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux
Like this:
Like Loading...