Verbinden von Raspberry Pi mit Azure IoT Hub (Node.js)
In diesem Tutorial werden zunächst die Grundlagen der Verwendung von Raspberry Pi mit dem Raspberry Pi-Betriebssystem vermittelt. Anschließend erfahren Sie, wie Sie Ihre Geräte mithilfe von Azure IoT Hub nahtlos mit der Cloud verbinden. Beispiele für Windows 10 IoT Core finden Sie im Windows Dev Center.
Sie haben noch kein Kit? Probieren Sie den Raspberry Pi-Onlinesimulator aus. Oder erwerben Sie hier ein neues Kit.
Aufgaben
Erstellen Sie einen IoT Hub.
Registrieren Sie ein Gerät für Pi in Ihrem IoT Hub.
Richten Sie Raspberry Pi ein.
Führen Sie eine Beispielanwendung auf Pi aus, um Sensordaten an Ihren IoT Hub zu senden.
Lerninhalt
Erstellen eines Azure IoT Hubs und Abrufen der Verbindungszeichenfolge für Ihr neues Gerät
Herstellen der Verbindung von Pi mit einem BME280-Sensor
Erfassen von Sensordaten durch Ausführen einer Beispielanwendung auf Pi
Senden von Sensordaten an Ihren IoT Hub
Voraussetzungen
Eine Raspberry Pi 2- oder Raspberry Pi 3-Platine.
Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Ein Monitor, eine USB-Tastatur und eine Maus, die mit Pi verbunden werden.
Ein Mac oder PC, auf dem Windows oder Linux ausgeführt wird.
Eine Internetverbindung.
microSD-Karte mit mindestens 16 GB
USB-SD-Adapter oder microSD-Karte, um das Betriebssystemimage auf die microSD-Karte zu kopieren
Netzteil (5 V, 2 A) mit Micro-USB-Kabel (1,8 m)
Die folgenden Elemente sind optional:
Ein zusammengebauter Adafruit BME280-Sensor für Temperatur, Luftdruck und Luftfeuchtigkeit
Eine Steckplatine
6 F/M-Jumperdrähte
1 LED, diffus, 10 mm
Hinweis
Wenn Sie die optionalen Elemente nicht besitzen, können Sie simulierte Sensordaten verwenden.
Erstellen eines IoT-Hubs
In diesem Abschnitt wird beschrieben, wie Sie über das Azure-Portal einen IoT-Hub erstellen:
Melden Sie sich beim Azure-Portal an.
Wählen Sie auf der Azure-Startseite die Schaltfläche + Ressource erstellen aus.
Wählen Sie im Menü Kategorien die Option Internet der Dinge und dann IoT Hub aus.
Füllen Sie auf der Registerkarte Grundlegende Einstellungen die Felder wie folgt aus:
Wichtig
Der IoT-Hub ist öffentlich als DNS-Endpunkt ermittelbar. Stellen Sie daher sicher, dass Sie beim Vergeben des Namens keine sensiblen oder personenbezogenen Informationen verwenden.
Eigenschaft Wert Abonnement Wählen Sie das Abonnement aus, das Sie für Ihren Hub verwenden möchten. Ressourcengruppe Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue. Wählen Sie zum Erstellen einer neuen Ressourcengruppe die Option Neu erstellen aus, und geben Sie den Namen ein, den Sie verwenden möchten. IoT Hub-Name Geben Sie einen Namen für den Hub ein. Dieser Name muss global eindeutig sein und eine Länge zwischen 3 und 50 alphanumerischen Zeichen aufweisen. Der Name kann auch den Bindestrich ( '-'
) enthalten.Region Wählen Sie die Region aus, die Ihnen am nächsten ist, in der sich Ihr Hub befinden soll. Einige Features, etwa IoT Hub-Gerätestreams, sind nur in bestimmten Regionen verfügbar. Für diese eingeschränkten Features müssen Sie eine der unterstützten Regionen auswählen. Tier Wählen Sie die Ebene aus, die Sie für Ihren Hub verwenden möchten. Die Auswahl der Ebene ist davon abhängig, wie viele Features Sie wünschen und wie viele Nachrichten Sie pro Tag über Ihre Lösung senden möchten.
Der kostenlose Tarif ist für Test und Bewertung vorgesehen. Mit dem Free-Tarif (kostenlos) können für 500 Geräte Verbindungen mit dem Hub hergestellt werden, und es sind bis zu 8.000 Nachrichten pro Tag zulässig. Jedes Azure-Abonnement kann einen IoT-Hub im kostenlosen Tarif erstellen.
Um die für die einzelnen Ebenen verfügbaren Features zu vergleichen, wählen Sie Ebenen vergleichen aus. Weitere Informationen finden Sie unter Wählen des richtigen IoT Hub-Tarifs für Ihre Lösung.Tägliches Nachrichtenlimit Wählen Sie das maximale tägliche Kontingent von Nachrichten für Ihren Hub aus. Die verfügbaren Optionen hängen von der Ebene ab, die Sie für Ihren Hub ausgewählt haben. Um die verfügbaren Messaging- und Preisoptionen anzuzeigen, wählen Sie Alle Optionen anzeigen und dann die Option aus, die den Anforderungen Ihres Hubs am besten entspricht. Weitere Informationen finden Sie unter IoT Hub-Kontingente und -Drosselung. Hinweis
Die angezeigten Preise dienen nur als Beispiel.
Klicken Sie auf Weiter: Netzwerk, um die Erstellung Ihres Hubs fortzusetzen.
Füllen Sie die Felder auf der Registerkarte Netzwerk wie folgt aus:
Eigenschaft Wert Konfiguration der Konnektivität Wählen Sie die Endpunkte aus, über die Geräte eine Verbindung mit Ihrem IoT-Hub herstellen können. Übernehmen Sie für dieses Beispiel die Standardeinstellung Öffentlicher Zugriff. Sie können diese Einstellung ändern, nachdem der IoT-Hub erstellt wurde. Weitere Informationen finden Sie unter IoT Hub-Endpunkte. TLS-Mindestversion Wählen Sie die TLS-Version aus, die mindestens von Ihrem IoT-Hub unterstützt werden soll. Nachdem der IoT-Hub erstellt wurde, kann dieser Wert nicht mehr geändert werden. Übernehmen Sie für dieses Beispiel die Standardeinstellung 1.0. Klicken Sie auf Weiter: Verwaltung, um die Erstellung Ihres Hubs fortzusetzen.
Akzeptieren Sie auf der Registerkarte Verwaltung die Standardeinstellungen. Sie können bei Bedarf die folgenden Felder anpassen:
Eigenschaft Wert Berechtigungsmodell Als Teil der rollenbasierten Zugriffssteuerung entscheidet diese Eigenschaft darüber, wie Sie den Zugriff auf Ihren IoT-Hub verwalten. Lassen Sie Richtlinien für gemeinsamen Zugriff zu, oder wählen Sie nur rollenbasierte Zugriffssteuerung aus. Weitere Informationen finden Sie unter Steuern des Zugriffs auf IoT Hub mithilfe von Azure Active Directory. Mir zuweisen Möglicherweise benötigen Sie Zugriff auf IoT Hub-Daten-APIs, um Elemente innerhalb einer Instanz verwalten zu können. Wenn Sie Zugriff auf Rollenzuweisungen haben, aktivieren Sie Rolle „IoT Hub-Datenmitwirkender“, um sich Vollzugriff auf die Daten-APIs zu gewähren.
Zum Hinzufügen von Azure-Rollen benötigen Sie Berechtigungen vom TypMicrosoft.Authorization/roleAssignments/write
(beispielsweise als Benutzerzugriffsadministrator oder Besitzer).Gerät-zu-Cloud-Partitionen Diese Eigenschaft setzt die Gerät-zu-Cloud-Nachrichten in Relation zur Anzahl von gleichzeitigen Lesern der Nachrichten. Die meisten IoT-Hubs benötigen nur vier Partitionen. Wählen Sie Weiter: Add-Ons aus, um mit dem nächsten Bildschirm fortzufahren.
Akzeptieren Sie auf der Registerkarte Add-Ons die Standardeinstellungen. Sie können bei Bedarf die folgenden Felder anpassen:
Eigenschaft Wert Device Update for IoT Hub aktivieren Aktivieren Sie Device Update for IoT Hub, um Over-the-Air-Updates für Ihre Geräte zu aktivieren. Wenn Sie diese Option auswählen, werden Sie aufgefordert, Informationen zum Bereitstellen eines Device Update for IoT Hub-Kontos und einer Instanz bereitzustellen. Weitere Informationen finden Sie unter Was ist Device Update for IoT Hub? Defender for IoT aktivieren Aktivieren Sie Defender for IoT, um IoT und Ihren Geräten eine zusätzliche Schutzebene hinzuzufügen. Diese Option steht nicht für Hubs im Free-Tarif zur Verfügung. Informieren Sie sich über Sicherheitsempfehlungen für IoT Hub in Defender für IoT. Hinweis
Die angezeigten Preise dienen nur als Beispiel.
Klicken Sie auf Weiter: Tags, um mit dem nächsten Bildschirm fortzufahren.
Tags sind Name-Wert-Paare. Sie können das gleiche Tag mehreren Ressourcen und Ressourcengruppen zuweisen, um Ressourcen zu kategorisieren und die Abrechnung zu konsolidieren. In diesem Dokument fügen Sie keine Tags hinzu. Weitere Informationen finden Sie unter Verwenden von Tags zum Organisieren von Azure-Ressourcen.
Klicken Sie auf Weiter: Überprüfen + erstellen, um Ihre Auswahl zu überprüfen.
Wählen Sie die Option Erstellen aus, um die Bereitstellung Ihres neuen Hubs zu starten. Ihr Bereitstellungsvorgang dauert einige Minuten, während der Hub erstellt wird. Wählen Sie nach Abschluss der Bereitstellung Zu Ressource wechseln aus, um den neuen Hub zu öffnen.
Registrieren eines neuen Geräts beim IoT-Hub
In diesem Abschnitt erstellen Sie eine Geräteidentität in der Identitätsregistrierung im IoT Hub. Ein Gerät kann eine Verbindung mit einem Hub nur dann herstellen, wenn die Identitätsregistrierung einen Eintrag für dieses Gerät enthält. Weitere Informationen finden Sie im IoT Hub-Entwicklerhandbuch.
Öffnen Sie in Ihrem IoT Hub-Navigationsmenü die Option Geräte, und wählen Sie Gerät hinzufügen aus, um in Ihrem IoT-Hub ein Gerät hinzuzufügen.
Geben Sie in Gerät erstellen ein Namen für Ihr neues Gerät ein, z.B. myDeviceId, und wählen Sie Speichern aus. Mit dieser Aktion wird eine Geräteidentität für Ihren IoT-Hub erstellt. Lassen Sie Schlüssel automatisch generieren aktiviert, damit die primären und sekundären Schlüssel automatisch generiert werden.
Wichtig
Diese Geräte-ID ist unter Umständen in den Protokollen sichtbar, die für den Kundensupport und die Problembehandlung erfasst werden. Stellen Sie also sicher, dass Sie beim Benennen keine sensiblen Informationen verwenden.
Öffnen Sie das Gerät nach der Erstellung in der Liste im Geräte-Bereich. Kopieren Sie den Wert der primären Verbindungszeichenfolge. Diese Verbindungszeichenfolge wird vom Gerätecode zum Kommunizieren mit dem IoT-Hub verwendet.
Die Schlüssel und Verbindungszeichenfolgen werden standardmäßig maskiert, weil sie vertrauliche Informationen sind. Wenn Sie auf das Augensymbol klicken, werden sie angezeigt. Sie können allerdings über die Kopierschaltfläche kopiert werden, ohne die Maskierung aufheben zu müssen.
Hinweis
Die Identitätsregistrierung in IoT Hub speichert nur Geräteidentitäten, um einen sicheren Zugriff auf den IoT-Hub zu ermöglichen. Sie speichert Geräte-IDs und Schlüssel, die als Sicherheitsanmeldeinformationen verwendet werden, sowie ein Aktiviert/Deaktiviert-Kennzeichen, mit dem Sie den Zugriff für ein einzelnes Gerät deaktivieren können. Wenn Ihre Anwendung das Speichern weiterer gerätespezifischer Metadaten erfordert, sollte dafür ein anwendungsspezifischer Speicher verwendet werden. Weitere Informationen finden Sie im IoT Hub-Entwicklerhandbuch.
Einrichten von Raspberry Pi
Installieren des Raspberry Pi-Betriebssystems
Bereiten Sie die microSD-Karte für die Installation des Raspberry Pi-Betriebssystemimages vor.
Laden Sie das Raspberry Pi-Betriebssystem mit Desktop herunter.
a. Raspberry Pi-Betriebssystem mit Desktop (die ZIP-Datei).
b. Extrahieren Sie das Image des Raspberry Pi-Betriebssystems mit Desktop in einen Ordner auf Ihrem Computer.
Installieren Sie das Raspberry Pi-Betriebssystem mit Desktop auf der microSD-Karte.
a. Laden Sie das SD-Kartenbrennprogramm Etcher herunter, und installieren Sie es.
b. Führen Sie Etcher aus, und wählen Sie das Image des Raspberry Pi-Betriebssystems mit Desktop aus, das Sie in Schritt 1 extrahiert haben.
c. Wählen Sie das microSD-Kartenlaufwerk. Etcher hat möglicherweise bereits das richtige Laufwerk ausgewählt.
d. Klicken Sie auf „Flash“, um das Raspberry Pi-Betriebssystem mit Desktop auf der microSD-Karte zu installieren.
e. Entfernen Sie die microSD-Karte aus dem Computer, wenn die Installation abgeschlossen ist. Es ist sicher, die microSD-Karte direkt zu entfernen, da Etcher die microSD-Karte nach Abschluss des Vorgangs automatisch auswirft bzw. die Bereitstellung aufhebt.
f. Legen Sie die microSD-Karte in den Raspberry Pi ein.
Aktivieren von SSH und I2C
Stellen Sie die Verbindung von Pi mit Monitor, Tastatur und Maus her.
Starten Sie Pi, und melden Sie sich beim Raspberry Pi-Betriebssystem mit
pi
als Benutzername undraspberry
als Kennwort an.Klicken Sie auf das Raspberry-Symbol und dann auf >Präferenz>Raspberry Pi Konfiguration.
Legen Sie auf der Registerkarte Schnittstellen die Einstellungen SSH und I2C auf Aktivieren fest, und klicken Sie dann auf OK.
Schnittstelle BESCHREIBUNG SSH Secure Shell (SSH) wird verwendet, um eine Remoteverbindung mit dem Raspberry Pi über eine Remotebefehlszeile zu ermöglichen. Dies ist die bevorzugte Methode für Remoteausgabe der Befehle an Ihren Raspberry Pi in diesem Dokument. I2C Inter-Integrated Circuit (I2C) ist ein Kommunikationsprotokoll, das für die Verbindung mit Hardware wie z. B. Sensoren verwendet wird. Diese Schnittstelle ist für die Verbindung mit physischen Sensoren in diesem Thema erforderlich. Wenn Sie keine physischen Sensoren haben und simulierte Sensordaten von Ihrem Raspberry Pi-Gerät verwenden möchten, können Sie I2C deaktiviert lassen.
Hinweis
Weitere Referenzdokumente zum Aktivieren von SSH und I2C finden Sie aufraspberrypi.org und unter RASPI-CONFIG.
Verbinden des Sensors mit Pi
Verwenden Sie die Steckplatine und Jumperdrähte, um eine LED und einen BME280-Sensor wie folgt zu verbinden. Wenn Sie keinen Sensor haben, überspringen Sie diesen Abschnitt.
Mit dem BME280-Sensor können Daten zur Temperatur und Luftfeuchtigkeit erfasst werden. Die LED blinkt, wenn das Gerät eine Nachricht an die Cloud sendet.
Verwenden Sie für Sensorstifte die folgende Verkabelung:
Start (Sensor und &LED) | Ende (Board) | Kabelfarbe |
---|---|---|
VDD (Stift 5G) | 3,3 V PWR (Stift 1) | Weißes Kabel |
GND (Stift 7G) | GND (Stift 6) | Braunes Kabel |
SDI (Stift 10G) | I2C1 SDA (Stift 3) | Rotes Kabel |
SCK (Stift 8G) | I2C1 SCL (Stift 5) | Oranges Kabel |
LED VDD (Stift 18F) | GPIO 24 (Stift 18) | Weißes Kabel |
LED GND (Stift 17F) | GND (Stift 20) | Schwarzes Kabel |
Klicken Sie hier, um die Raspberry Pi 2- und 3-Stiftzuordnungen& zur Referenz anzuzeigen.
Nachdem Sie den BME280 erfolgreich mit Ihrem Raspberry Pi verbunden haben, sollte das Gerät wie in der nachstehenden Abbildung aussehen.
Verbindung zwischen Pi und dem Netzwerk
Verbinden Sie den Raspberry Pi mit dem Micro-USB-Kabel mit der Stromversorgung. Verwenden Sie das Ethernet-Kabel zum Verbinden von Pi mit Ihrem verkabelten Netzwerk, oder befolgen Sie die Anweisungen der Raspberry Pi Foundation, um Pi mit Ihrem WLAN zu verbinden. Notieren Sie sich die IP-Adresse von Pi, nachdem es eine Verbindung zum Netzwerk hergestellt hat.
Hinweis
Stellen Sie sicher, dass der Raspberry Pi mit dem gleichen Netzwerk wie der Computer verbunden ist. Wenn der Computer beispielsweise mit einem Drahtlosnetzwerk und Pi mit einem verkabelten Netzwerk verbunden ist, wird in der Ausgabe des devdisco-Befehls die IP-Adresse möglicherweise nicht angezeigt.
Ausführen einer Beispielanwendung auf Pi
Klonen der Beispielanwendung und Installieren der Pakete mit den erforderlichen Komponenten
Stellen Sie die Verbindung Ihres Raspberry Pi mit einem der folgenden SSH-Clients auf Ihrem Hostcomputer her:
Windows-Benutzer
a. Laden Sie PuTTY für Windows herunter, und installieren Sie es.
b. Kopieren Sie die IP-Adresse von Pi, fügen Sie sie in den Abschnitt „Hostname (oder IP-Adresse)“ ein, und wählen Sie „SSH“ als Verbindungstyp.
Mac- und Ubuntu-Benutzer
Verwenden Sie den integrierten SSH-Client unter Ubuntu oder macOS. Möglicherweise müssen Sie
ssh pi@<ip address of pi>
ausführen, um eine SSH-Verbindung mit Pi herzustellen.Hinweis
Der Standardbenutzername ist
pi
, und das Kennwort istraspberry
.Installieren Sie Node.js und npm auf dem Pi.
Überprüfen Sie zunächst Ihre Node.js-Version.
node -v
Wenn die Version niedriger als 10.x oder kein Node.js auf Ihrem Pi vorhanden ist, installieren Sie die neueste Version.
curl -sSL https://deb.nodesource.com/setup_16.x | sudo -E bash sudo apt-get -y install nodejs
Klonen Sie die Beispielanwendung.
git clone https://github.com/Azure-Samples/azure-iot-samples-node.git
Installieren Sie alle Pakete für das Beispiel. Die Installation umfasst das Azure IoT-Geräte-SDK, die BME280-Sensorbibliothek und die Wiring-Pi-Bibliothek zur Verkabelung.
cd azure-iot-samples-node/iot-hub/Tutorials/RaspberryPiApp npm install
Hinweis
Je nach Netzwerkverbindung kann das Abschließen dieses Installationsvorgangs mehrere Minuten dauern.
Konfigurieren der Beispielanwendung
Öffnen Sie die Konfigurationsdatei durch Ausführen der folgenden Befehle:
nano config.json
Es gibt zwei Argumente in dieser Datei, die Sie konfigurieren können. Das erste ist
interval
, mit dem das Zeitintervall (in Millisekunden) zwischen Nachrichten bestimmt wird, die an die Cloud gesendet werden. Das zweite heißtsimulatedData
und ist ein boolescher Wert, der bestimmt, ob simulierte Sensordaten verwendet werden sollen.Wenn Sie keinen Sensor haben, legen Sie den Wert von
simulatedData
auftrue
fest, damit die Beispielanwendung simulierte Sensordaten erstellt und nutzt.Hinweis: Die in diesem Tutorial verwendete i2c-Adresse ist standardmäßig „0x77“. Je nach Ihrer Konfiguration könnte sie auch „0x76“ lauten. Wenn ein i2c-Fehler auftritt, versuchen Sie, den Wert in „118“ zu ändern, und prüfen Sie, ob dies besser funktioniert. Wenn Sie sehen möchten, welche Adresse von Ihrem Sensor verwendet wird, führen Sie
sudo i2cdetect -y 1
in einer Shell auf Raspberry Pi aus.Speichern und beenden Sie durch Drücken von >STRG+O > EINGABETASTE> > STRG+X.
Ausführen der Beispielanwendung
Führen Sie die Beispielanwendung durch Aufrufen des folgenden Befehls aus:
sudo node index.js '<YOUR AZURE IOT HUB DEVICE CONNECTION STRING>'
Hinweis
Stellen Sie sicher, dass Sie die Verbindungszeichenfolge des Geräts kopieren und zwischen einfachen Anführungszeichen einfügen.
Die folgende Ausgabe sollte angezeigt werden, die die Sensordaten und Nachrichten zeigt, die an Ihren IoT Hub gesendet werden.
Lesen der von Ihrem Hub empfangenen Nachrichten
Eine Möglichkeit zur Überwachung von Nachrichten, die Ihr IoT-Hub von Ihrem Gerät empfängt, ist die Verwendung der Azure IoT Hub-Erweiterung für Visual Studio Code. Weitere Informationen finden Sie unter Senden und Empfangen von Nachrichten zwischen Ihrem Gerät und IoT-Hub mithilfe der Azure IoT Hub-Erweiterung für Visual Studio Code.
Weitere Informationen zum Verarbeiten von Daten, die von Ihrem Gerät gesendet wurden, finden Sie im nächsten Abschnitt.
Bereinigen von Ressourcen
Sie können die in diesem Thema erstellten Ressourcen mit anderen Tutorials und Schnellstartanleitungen in dieser Dokumentreihe verwenden. Wenn Sie mit weiteren Schnellstartanleitungen oder Tutorials fortfahren möchten, überspringen Sie die Bereinigung der in diesem Thema erstellten Ressourcen. Falls Sie nicht fortfahren möchten, gehen Sie im Azure-Portal wie folgt vor, um alle in diesem Thema erstellten Ressourcen zu löschen.
- Wählen Sie im linken Menü des Azure-Portals die Option Alle Ressourcen und anschließend die von Ihnen erstellte IoT Hub-Instanz aus.
- Klicken Sie im oberen Bereich der IoT Hub-Übersicht auf Löschen.
- Geben Sie den Namen Ihres Hubs ein, und klicken Sie erneut auf Löschen, um das endgültige Löschen der IoT-Hub-Instanz zu bestätigen.
Nächste Schritte
Sie haben eine Beispielanwendung ausgeführt, die Sensordaten sammelt und an Ihren IoT Hub sendet.
Informationen zu den weiteren ersten Schritten mit Azure IoT Hub und zum Kennenlernen aller erweiterten IoT-Szenarien finden Sie in den folgenden Artikeln:
Verwalten von Cloud-Geräte-Messaging mit der Azure IoT Hub-Erweiterung für Visual Studio Code
Verwalten von Geräten mit der Azure IoT Hub-Erweiterung für Visual Studio Code
Verwenden von Power BI zum Visualisieren von Sensordaten in IoT Hub in Echtzeit
Verwenden einer Web-App zum Visualisieren von Sensordaten in IoT Hub in Echtzeit
Verwenden von Logic Apps zur Remoteüberwachung und für Benachrichtigungen