Verbinden Ihres Raspberry Pi 3 mit der Remoteüberwachungslösung und Ermöglichen von Remoteupdates der Firmware mithilfe von Node.js

In diesem Tutorial wird gezeigt, wie Sie das Microsoft Azure IoT Starter Kit für Raspberry Pi 3 für folgende Zwecke nutzen:

  • Entwickeln eines Temperatur- und Luftfeuchtigkeitslesers, der mit der Cloud kommunizieren kann.
  • Aktivieren und Ausführen eines Remoteupdates der Firmware zum Aktualisieren der Clientanwendung auf dem Raspberry Pi.

Im Tutorial wird Folgendes verwendet:

  • Raspbian OS, die Programmiersprache Node.js und das Microsoft Azure IoT SDK für Node.js, um ein Beispielgerät zu implementieren.
  • Die von IoT Suite vorkonfigurierte Remoteüberwachungslösung als cloudbasiertes Back-End.

Überblick

In diesem Tutorial führen Sie folgende Schritte aus:

  • Bereitstellen einer Instanz der vorkonfigurierten Remoteüberwachungslösung für Ihr Azure-Abonnement. Durch diesen Schritt werden automatisch mehrere Azure-Dienste bereitgestellt und konfiguriert.
  • Einrichten Ihres Geräts und von Sensoren für die Kommunikation mit Ihrem Computer und der Remoteüberwachungslösung.
  • Aktualisieren des Beispielgerätecodes für die Verbindungsherstellung mit der Remoteüberwachungslösung und Senden von Telemetriedaten, die auf dem Lösungsdashboard angezeigt werden können.
  • Verwenden Sie den Beispielgerätecode, um die Clientanwendung zu aktualisieren.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie ein aktives Azure-Abonnement.

Hinweis

Wenn Sie über kein Konto verfügen, können Sie in nur wenigen Minuten ein kostenloses Testkonto erstellen. Ausführliche Informationen finden Sie unter Einen Monat kostenlos testen.

Erforderliche Software

Sie benötigen einen SSH-Client auf Ihrem Desktopcomputer, um per Remotezugriff auf die Befehlszeile des Raspberry Pi zugreifen zu können.

  • In Windows ist kein SSH-Client enthalten. Wir empfehlen die Verwendung von PuTTY.
  • In den meisten Linux-Distributionen sowie in Mac OS ist ein SSH-Befehlszeilenprogramm enthalten. Weitere Informationen finden Sie unter SSH Using Linux or Mac OS (SSH unter Linux oder Mac OS).

Erforderliche Hardware

Ein Desktopcomputer, über den Sie eine Remoteverbindung mit der Befehlszeile auf dem Raspberry Pi herstellen können.

Microsoft IoT Starter Kit für Raspberry Pi 3 oder entsprechende Komponenten. In diesem Tutorial wird Folgendes aus dem Kit verwendet:

  • Raspberry Pi 3
  • MicroSD-Karte (mit NOOBS)
  • Ein Mini-USB-Kabel
  • Ein Ethernetkabel
  • BME280-Sensor
  • Breadboard
  • Jumperdrähte
  • Widerstände
  • LEDs

Bereitstellen der Lösung

Wenn Sie die vorkonfigurierte Lösung für die Remoteüberwachung noch nicht in Ihrem Konto bereitgestellt haben:

  1. Melden Sie sich mit den Anmeldeinformationen für Ihr Azure-Konto bei azureiotsuite.com an, und klicken Sie auf +, um eine Lösung zu erstellen.
  2. Klicken Sie auf der Kachel Remoteüberwachung auf Auswählen.
  3. Geben Sie einen Lösungsnamen für Ihre vorkonfigurierte Remoteüberwachungslösung ein.
  4. Wählen Sie die gewünschten Angaben für Region und Abonnement, um die Lösung bereitzustellen.
  5. Klicken Sie auf Lösung erstellen , um den Bereitstellungsprozess zu beginnen. Dies dauert in der Regel einige Minuten.

Warten auf den Abschluss des Bereitstellungsvorgangs

  1. Klicken Sie auf die Kachel für Ihre Lösung mit dem Status Bereitstellung .
  2. Beachten Sie die Bereitstellungsstatus während der Bereitstellung von Azure-Diensten im Azure-Abonnement.
  3. Nach Abschluss der Bereitstellung ändert sich der Status in Bereit.
  4. Klicken Sie auf die Kachel, um im rechten Bereich Details zur Lösung anzuzeigen.

Hinweis

Falls beim Bereitstellen der vorkonfigurierten Lösung Probleme auftreten, helfen Ihnen die Informationen unter Berechtigungen für die Website „azureiotsuite.com“ und die häufig gestellten Fragen weiter. Sollten die Probleme weiterhin auftreten, können Sie im Portal ein Dienstticket erstellen.

Erwarten Sie Informationen zu Ihrer Lösung, die nicht aufgeführt werden? Senden Sie uns Vorschläge für neue Funktionen über den Feedbackbereichzu.

Warnung

Die Remoteüberwachungslösung stellt eine Gruppe von Azure-Diensten im Azure-Abonnement bereit. Die Bereitstellung gibt eine echte Unternehmensarchitektur wieder. Um unnötige Azure-Nutzungsgebühren zu vermeiden, löschen Sie Ihre Instanz der vorkonfigurierten Lösung auf „azureiotsuite.com“, sobald Sie damit fertig sind. Wenn Sie die vorkonfigurierte Lösung erneut benötigen, können Sie sie problemlos wiederherstellen. Weitere Informationen zur Senkung der Nutzung während der Ausführung der Remoteüberwachungslösung finden Sie unter Configuring Azure IoT Suite preconfigured solutions for demo purposes (Konfigurieren vorkonfigurierter Azure IoT Suite-Lösungen zu Demonstrationszwecken).

Anzeigen des Lösungsdashboards

Im Lösungsdashboard können Sie die bereitgestellte Lösung verwalten. Sie können beispielsweise Telemetriedaten anzeigen, Geräte hinzufügen und Methoden aufrufen.

  1. Wenn die Bereitstellung abgeschlossen ist und auf der Kachel für die vorkonfigurierte Lösung Bereit angezeigt wird, wählen Sie Starten aus, um eine neue Registerkarte mit dem Portal für die Remoteüberwachungslösung zu öffnen.

    Vorkonfigurierte Lösung starten

  2. Standardmäßig zeigt das Lösungsportal das Dashboard an. Über das Menü auf der linken Seite gelangen Sie zu anderen Bereichen des Lösungsportals.

    Lösungsdashboard der vorkonfigurierten Lösung für die Remoteüberwachung

Hinzufügen eines Geräts

Damit ein Gerät eine Verbindung mit der vorkonfigurierten Lösung herstellen kann, muss es sich mit gültigen Anmeldeinformationen bei IoT Hub identifizieren können. Sie können die Anmeldeinformationen für das Gerät aus dem Lösungsdashboard abrufen. Sie fügen die Anmeldeinformationen für das Gerät später in diesem Tutorial zu Ihrer Clientanwendung hinzu.

Fügen Sie Ihrer Remoteüberwachungslösung ein benutzerdefiniertes Gerät hinzu (sofern noch nicht geschehen). Führen Sie im Lösungsdashboard folgende Schritte aus:

  1. Klicken Sie in der linken unteren Ecke des Dashboards auf Gerät hinzufügen.

    Hinzufügen eines Geräts

  2. Klicken Sie im Bereich Benutzerdefiniertes Gerät auf Neue hinzufügen.

    Hinzufügen eines benutzerdefinierten Geräts

  3. Wählen Sie die Option Ich möchte meine eigene Geräte-ID definieren. Geben Sie eine Geräte-ID ein (beispielsweise rasppi), und klicken Sie auf ID prüfen, um sich zu vergewissern, dass Sie den Namen noch nicht in Ihrer Lösung verwendet haben. Klicken Sie anschließend auf Erstellen, um das Gerät bereitzustellen.

    Hinzufügen einer Geräte-ID

  4. Notieren Sie sich die Geräteanmeldeinformationen (Geräte-ID, IoT Hub Hostname und Geräteschlüssel). Ihre Clientanwendung auf dem Raspberry Pi benötigt diese Werte, um eine Verbindung mit der Remoteüberwachungslösung herzustellen. Klicken Sie anschließend auf Fertig.

    Anzeigen von Geräteanmeldeinformationen

  5. Wählen Sie Ihr Gerät im Lösungsdashboard in der Liste mit den Geräten aus. Klicken Sie anschließend im Bereich Gerätedetails auf Gerät aktivieren. Der Status Ihres Geräts lautet jetzt Wird ausgeführt. Die Remoteüberwachungslösung kann jetzt Telemetriedaten von Ihrem Gerät empfangen und Methoden auf dem Gerät aufrufen.

Vorbereiten des Raspberry Pi

Installieren von Raspbian

Wenn Sie den Raspberry Pi zum ersten Mal verwenden, müssen Sie das Raspbian-Betriebssystem mithilfe von NOOBS auf der im Kit enthaltenen SD-Karte installieren. Eine entsprechende Installationsanleitung finden Sie im Softwarehandbuch für den Raspberry Pi. In diesem Tutorial wird davon ausgegangen, dass Sie das Raspbian-Betriebssystem bereits auf Ihrem Raspberry Pi installiert haben.

Hinweis

Auf der SD-Karte des Microsoft Azure IoT Starter Kits für Raspberry Pi 3 ist NOOBS bereits installiert. Sie können den Raspberry Pi über diese Karte starten und das Raspbian-Betriebssystem installieren.

Einrichten der Hardware

In diesem Tutorial werden mit dem BME280-Sensor aus dem Microsoft Azure IoT Starter Kit für Raspberry Pi 3 Telemetriedaten generiert. Mithilfe einer LED wird angegeben, wann der Raspberry Pi einen Methodenaufruf des Lösungsdashboards verarbeitet.

Komponenten auf dem Breadboard:

  • Rote LED
  • 220-Ohm-Widerstand (Rot, Rot, Braun)
  • BME280-Sensor

Anschlussdiagramm für Ihre Hardware:

Hardwareeinrichtung für Raspberry Pi

In der folgenden Tabelle sind die Verbindungen zwischen dem Raspberry Pi und den Komponenten auf dem Breadboard zusammengefasst:

Raspberry Pi Breadboard Color
GND (Pin 14) LED -ve pin (18A) Violett
GPCLK0 (Pin 7) Widerstand (25A) Orange
SPI_CE0 (Pin 24) CS (39A) Blau
SPI_SCLK (Pin 23) SCK (36A) Gelb
SPI_MISO (Pin 21) SDO (37A) Weiß
SPI_MOSI (Pin 19) SDI (38A) Grün
GND (Stift 6) GND (35A) Schwarz
3,3 V (Pin 1) 3Vo (34A) Red

Führen Sie folgende Schritte aus, um die Hardwareeinrichtung abzuschließen:

  • Verbinden Sie Ihren Raspberry Pi mit dem im Kit enthaltenen Netzteil.
  • Verbinden Sie Ihren Raspberry Pi über das im Kit enthaltene Ethernetkabel mit Ihrem Netzwerk. Alternativ können Sie eine WLAN-Verbindung für Ihren Raspberry Pi einrichten.

Damit ist die Hardwareeinrichtung Ihres Raspberry Pi abgeschlossen.

Anmelden und Zugreifen auf das Terminal

Sie können auf Ihrem Raspberry Pi auf zwei Arten auf eine Terminalumgebung zuzugreifen:

  • Wenn Sie eine Tastatur und einen Monitor an Ihren Raspberry Pi angeschlossen haben, können Sie über die grafische Raspbian-Benutzeroberfläche auf ein Terminalfenster zugreifen.

  • Sie können aber auch auf Ihrem Desktopcomputer per SSH auf die Befehlszeile Ihres Raspberry Pi zugreifen.

Verwenden eines Terminalfensters auf der grafischen Benutzeroberfläche

Die Anmeldeinformationen für Raspbian lauten standardmäßig pi (Benutzername) und raspberry (Kennwort). Auf der Taskleiste der grafischen Benutzeroberfläche können Sie über das Monitorsymbol das Hilfsprogramm Terminal starten.

Anmelden mit SSH

Sie können über SSH auf die Befehlszeile Ihres Raspberry Pi zugreifen. Im Artikel SSH (Secure Shell) erfahren Sie, wie Sie SSH auf Ihrem Raspberry Pi konfigurieren und unter Windows oder unter Linux und Mac OS eine Verbindung herstellen.

Melden Sie sich mit dem Benutzernamen pi und dem Kennwort raspberry an.

Optional: Freigeben eines Ordners auf Ihrem Raspberry Pi

Bei Bedarf können Sie auch einen Ordner auf Ihrem Raspberry Pi für Ihre Desktopumgebung freigeben. Wenn Sie einen Ordner freigeben, können Sie Dateien auf Ihrem Raspberry PI mithilfe Ihres bevorzugten Desktop-Texteditors (etwa Visual Studio Code oder Sublime Text) bearbeiten, anstatt nano oder vi zu verwenden.

Wenn Sie einen Ordner für Windows freigeben möchten, konfigurieren Sie einen Samba-Server auf dem Raspberry Pi. Alternativ können Sie den integrierten SFTP-Server mit einem SFTP-Client auf Ihrem Desktop verwenden.

Aktivieren der SPI

Um die Beispielanwendung ausführen zu können, muss auf dem Raspberry Pi zunächst der SPI-Bus (Serial Peripheral Interface) aktiviert werden. Der Raspberry Pi kommuniziert über den SPI-Bus mit dem BME280-Sensor. Verwenden Sie den folgenden Befehl, um die Konfigurationsdatei zu bearbeiten:

sudo nano /boot/config.txt

Suchen Sie die folgende Zeile:

#dtparam=spi=on

  • Löschen das Zeichen # am Anfang, um die Auskommentierung der Zeile aufzuheben.

  • Speichern Sie Ihre Änderungen (STRG+O, EINGABETASTE), und beenden Sie den Editor (STRG+X).

  • Starten Sie den Raspberry Pi neu, um die SPI zu aktivieren. Da durch den Neustart die Verbindung mit dem Terminal getrennt wird, müssen Sie sich nach dem Neustart des Raspberry Pi erneut anmelden:

    sudo reboot
    

Herunterladen und Konfigurieren des Beispiels

Sie können jetzt Sie die Clientanwendung für die Remoteüberwachung auf Ihr Raspberry Pi herunterladen und anschließend konfigurieren.

Installieren von Node.js

Falls noch nicht geschehen, installieren Sie Node.js auf Ihrem Raspberry Pi. Das IoT SDK für Node.js erfordert Version 0.11.5 von Node.js oder höher. In den folgenden Schritten wird gezeigt, wie Sie Node.js 6.10.2 auf Ihrem Raspberry Pi installieren:

  1. Verwenden Sie den folgenden Befehl aus, um Ihr Raspberry Pi zu aktualisieren:

    sudo apt-get update
    
  2. Verwenden Sie den folgenden Befehl zum Herunterladen der Node.js-Binärdateien auf Ihr Raspberry Pi:

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. Verwenden Sie den folgenden Befehl, um die Binärdateien zu installieren:

    sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
    
  4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie Node.js 6.10.2 erfolgreich installiert haben:

    node --version
    

Klonen der Repositorys

Falls nicht bereits erfolgt, klonen Sie die erforderlichen Repositorys durch Ausführen der folgenden Befehle auf Ihrem Pi:

cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git

Aktualisieren der Verbindungszeichenfolge des Geräts

Öffnen Sie die Beispielkonfigurationsdatei im Nano-Editor mithilfe des folgenden Befehls:

nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/config/deviceinfo

Ersetzen Sie die Platzhalterwerte durch die Geräte-ID und IoT Hub-Informationen, die Sie am Anfang dieses Tutorials erstellt und gespeichert haben.

Wenn Sie fertig sind, sollte der Inhalt der Datei „deviceinfo“ wie im folgenden Beispiel aussehen:

yourdeviceid
HostName=youriothubname.azure-devices.net;DeviceId=yourdeviceid;SharedAccessKey=yourdevicekey

Speichern Sie Ihre Änderungen (STRG+O, EINGABETASTE), und beenden Sie den Editor (STRG+X).

Ausführen des Beispiels

Führen Sie die folgenden Befehle zum Installieren der erforderlichen Pakete für das Beispiel aus:

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advance/1.0
npm install

Sie können nun das Beispielprogramm auf dem Raspberry Pi ausführen. Geben Sie den folgenden Befehl ein:

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/advanced/1.0/remote_monitoring.js

Die folgende Beispielausgabe ist ein Beispiel der Ausgabe, die an der Eingabeaufforderung auf dem Raspberry Pi angezeigt wird:

Ausgabe der Raspberry Pi-App

Drücken Sie STRG+C, um das Programm zu einem beliebigen Zeitpunkt zu beenden.

Anzeigen der Telemetrie

Der Raspberry Pi sendet nun Telemetriedaten an die Remoteüberwachungslösung. Die Telemetriedaten können auf dem Lösungsdashboard angezeigt werden. Über das Lösungsdashboard können Sie auch Nachrichten an Ihren Raspberry Pi senden.

  • Navigieren Sie zum Lösungsdashboard.
  • Wählen Sie in der Dropdownliste Anzuzeigendes Gerät Ihr Gerät aus.
  • Die Telemetriedaten des Raspberry Pi werden auf dem Dashboard angezeigt.

Anzeigen von Telemetriedaten des Raspberry Pi

Initiieren des Firmwareupdates

Der Firmwareupdateprozess lädt eine aktualisierte Version der Geräteclientanwendung herunter und installiert sie auf dem Raspberry Pi. Weitere Informationen zum Firmwareupdateprozess finden Sie unter der Beschreibung des Firmwareupdatemusters in der Übersicht über die Geräteverwaltung mit IoT Hub.

Das Firmwareupdate wird durch Aufrufen einer Methode auf dem Gerät initiiert. Diese Methode ist asynchron und springt umgehend nach dem Start des Updateprozesses zurück. Das Gerät informiert die Lösung mithilfe gemeldeter Eigenschaften über den Fortschritt des Updates.

Methoden auf dem Raspberry Pi werden über das Lösungsdashboard aufgerufen. Wenn der Raspberry Pi zum ersten Mal eine Verbindung mit der Remoteüberwachungslösung herstellt, sendet er Informationen zu den unterstützten Methoden.

  1. Klicken Sie im Lösungsdashboard auf Geräte, um die Seite Geräte aufzurufen. Wählen Sie in der Geräteliste Ihren Raspberry Pi aus. Wählen Sie anschließend Methoden aus:

    Auflisten von Geräten im Dashboard

  2. Wählen Sie auf der Seite Methode aufrufen in der Dropdownliste Methode die Option InitiateFirmwareUpdate aus.

  3. Geben Sie im Feld FWPackageURI den URI https://raw.githubusercontent.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit/master/advanced/2.0/raspberry.js ein. Diese Datei enthält die Implementierung der Version 2.0 der Firmware.

  4. Wählen Sie InvokeMethod aus. Die App auf dem Raspberry Pi gibt eine Bestätigung an das Lösungsdashboard zurück. Anschließend wird das Update der Firmware gestartet, indem die neue Version der Firmware heruntergeladen wird:

    Anzeigen des Methodenverlaufs

Verfolgen des Firmwareupdates

Sie können das Update der Firmware während der Ausführung auf dem Gerät und durch Anzeigen der gemeldeten Eigenschaften im Lösungsdashboard verfolgen:

  1. Sie können den Status des Updatevorgangs auf dem Raspberry Pi anzeigen:

    Anzeigen des Status des Updates

    Hinweis

    Die Remoteüberwachungs-App wird automatisch neu gestartet, sobald das Update abgeschlossen ist. Verwenden Sie den Befehl ps -ef, um zu überprüfen, ob sie ausgeführt wird. Wenn Sie den Prozess beenden möchten, verwenden Sie den Befehl kill mit der Prozess-ID.

  2. Sie können den vom Gerät gemeldeten Status des Updates der Firmware im Lösungsportal anzeigen. Der folgende Screenshot zeigt den Status und die Dauer der einzelnen Phasen des Updatevorgangs und die neue Firmwareversion:

    Anzeigen des Auftragsstatus

    Wenn Sie zurück zum Dashboard navigieren, können Sie überprüfen, ob das Gerät nach dem Update der Firmware weiter Telemetriedaten sendet.

Warnung

Wenn Sie die Ausführung der Remoteüberwachungslösung in Ihrem Azure-Konto nicht beenden, wird Ihnen die Ausführungszeit in Rechnung gestellt. Weitere Informationen zur Senkung der Nutzung während der Ausführung der Remoteüberwachungslösung finden Sie unter Configuring Azure IoT Suite preconfigured solutions for demo purposes (Konfigurieren vorkonfigurierter Azure IoT Suite-Lösungen zu Demonstrationszwecken). Löschen Sie die vorkonfigurierte Lösung aus Ihrem Azure-Konto, wenn Sie sie nicht mehr benötigen.

Nächste Schritte

Besuchen Sie das Azure IoT Dev Center, in dem Sie weitere Beispiele und Dokumentation zu Azure IoT finden.