Verbinden Ihres Raspberry Pi 3 mit der Remoteüberwachungslösung und Ermöglichen von Remote-Firmwareupdates mithilfe von C
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 C und das Microsoft Azure IoT SDK für C, 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:
- 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.
- Klicken Sie auf der Kachel Remoteüberwachung auf Auswählen.
- Geben Sie einen Lösungsnamen für Ihre vorkonfigurierte Remoteüberwachungslösung ein.
- Wählen Sie die gewünschten Angaben für Region und Abonnement, um die Lösung bereitzustellen.
- Klicken Sie auf Lösung erstellen , um den Bereitstellungsprozess zu beginnen. Dies dauert in der Regel einige Minuten.
Warten auf den Abschluss des Bereitstellungsvorgangs
- Klicken Sie auf die Kachel für Ihre Lösung mit dem Status Bereitstellung .
- Beachten Sie die Bereitstellungsstatus während der Bereitstellung von Azure-Diensten im Azure-Abonnement.
- Nach Abschluss der Bereitstellung ändert sich der Status in Bereit.
- 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.
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.
Standardmäßig zeigt das Lösungsportal das Dashboard an. Über das Menü auf der linken Seite gelangen Sie zu anderen Bereichen des Lösungsportals.
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:
Klicken Sie in der linken unteren Ecke des Dashboards auf Gerät hinzufügen.
Klicken Sie im Bereich Benutzerdefiniertes Gerät auf Neue hinzufügen.
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.
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.
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:
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.
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-c-raspberrypi-getstartedkit.git
Aktualisieren der Verbindungszeichenfolge des Geräts
Öffnen Sie die Beispielkonfigurationsdatei im Nano-Editor mithilfe des folgenden Befehls:
nano ~/iot-remote-monitoring-c-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).
Erstellen des Beispiels
Falls nicht bereits geschehen, installieren Sie die erforderlichen Pakete für das Microsoft Azure IoT-Geräte-SDK für C durch Ausführen der folgenden Befehle in einem Terminal auf dem Raspberry Pi:
sudo apt-get update
sudo apt-get install g++ make cmake git libcurl4-openssl-dev libssl-dev uuid-dev
Sie können die Beispiellösung auf dem Raspberry Pi erstellen:
chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/advanced/1.0/build.sh
Sie können nun das Beispielprogramm auf dem Raspberry Pi ausführen. Geben Sie den folgenden Befehl ein:
sudo ~/cmake/remote_monitoring/remote_monitoring
Die folgende Beispielausgabe ist ein Beispiel der Ausgabe, die an der Eingabeaufforderung auf dem Raspberry Pi angezeigt wird:
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.
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.
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:
Wählen Sie auf der Seite Methode aufrufen in der Dropdownliste Methode die Option InitiateFirmwareUpdate aus.
Geben Sie im Feld FWPackageURI den URI https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit/raw/master/advanced/2.0/package/remote_monitoring.zip ein. Diese Archivdatei enthält die Implementierung der Version 2.0 der Firmware.
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:
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:
Sie können den Status des Updatevorgangs auf dem Raspberry Pi anzeigen:
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 Befehlkill
mit der Prozess-ID.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:
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.