Verbinden eines Raspberry Pi oder eines anderes Gerätes - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verbinden eines Raspberry Pi oder eines anderes Gerätes

In diesem Abschnitt konfigurieren wir einen Raspberry Pi für die Verwendung mit AWS IoT. Wenn Sie ein anderes Gerät haben, das Sie anschließen möchten, finden Sie in der Anleitung für den Raspberry Pi Hinweise, die Ihnen helfen können, diese Anweisungen an Ihr Gerät anzupassen.

Dies dauert normalerweise etwa 20 Minuten, kann aber länger dauern, wenn Sie viele Systemsoftware-Upgrades installieren müssen.

Wichtig

Die Anpassung dieser Anweisungen an andere Geräte und Betriebssysteme kann schwierig sein. Sie müssen Ihr Gerät gut genug verstehen, um diese Anweisungen interpretieren und auf Ihr Gerät anwenden zu können.

Wenn Sie bei der Konfiguration Ihres Geräts für auf Schwierigkeiten stoßen AWS IoT, können Sie alternativ eine der anderen Geräteoptionen ausprobieren, z. B. Erstellen Sie ein virtuelles Gerät mit Amazon EC2 oderVerwenden Sie Ihren Windows- oder Linux-PC oder Mac als Gerät AWS IoT.

Einrichten Ihres Geräts

Ziel dieses Schritts ist es, alles zu sammeln, was Sie benötigen, um Ihr Gerät so zu konfigurieren, dass es das Betriebssystem (OS) starten, eine Verbindung zum Internet herstellen und Ihnen die Interaktion mit dem Gerät über eine Befehlszeilenschnittstelle ermöglichen kann.

Zum Durcharbeiten dieses Tutorials ist Folgendes erforderlich:

  • Ein AWS-Konto. Wenn dies nicht der Fall ist, führen Sie die unter Richten Sie Ihre ein AWS-Konto beschriebenen Schritte aus, bevor Sie fortfahren.

  • Ein Raspberry Pi 3 Modell B oder ein neueres Modell. Dies funktioniert möglicherweise auf früheren Versionen des Raspberry Pi, diese wurden jedoch nicht getestet.

  • Raspberry Pi OS (32-Bit) oder höher. Wir empfehlen die neueste Version des Raspberry Pi OS zu verwenden. Frühere Versionen des Betriebssystems funktionieren möglicherweise, wurden jedoch nicht getestet.

    Um dieses Beispiel auszuführen, müssen Sie den Desktop nicht mit der grafischen Benutzeroberfläche (GUI) installieren. Wenn Sie jedoch mit dem Raspberry Pi noch nicht vertraut sind und Ihre Raspberry Pi-Hardware ihn unterstützt, ist es möglicherweise einfacher, den Desktop mit der GUI zu verwenden.

  • Ein Ethernet oder eine WiFi Verbindung.

  • Tastatur, Maus, Monitor, Kabel, Netzteile und andere Hardware, die für Ihr Gerät erforderlich ist.

Wichtig

Bevor Sie mit dem nächsten Schritt fortfahren, muss das Betriebssystem Ihres Geräts installiert, konfiguriert und ausgeführt werden. Das Gerät muss mit dem Internet verbunden sein und Sie müssen über die Befehlszeilenschnittstelle auf das Gerät zugreifen können. Der Befehlszeilenzugriff kann über eine direkt verbundene Tastatur, Maus und einen Monitor oder über eine SSH-Terminal-Fernschnittstelle erfolgen.

Wenn Sie auf Ihrem Raspberry Pi ein Betriebssystem mit grafischer Benutzeroberfläche (GUI) ausführen, öffnen Sie ein Terminalfenster auf dem Gerät und führen Sie in diesem Fenster die folgenden Anweisungen aus. Andernfalls, wenn Sie über ein Remote-Terminal wie PuTTY eine Verbindung zu Ihrem Gerät herstellen, öffnen Sie ein Remote-Terminal für Ihr Gerät und verwenden Sie dieses.

Installieren Sie die erforderlichen Tools und Bibliotheken für das AWS IoT Geräte-SDK

Bevor Sie das AWS IoT Geräte-SDK und den Beispielcode installieren, stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist und über die erforderlichen Tools und Bibliotheken für die Installation der SDKs verfügt.

  1. Aktualisieren Sie das Betriebssystem und installieren Sie die erforderlichen Bibliotheken

    Bevor Sie ein AWS IoT Geräte-SDK installieren, führen Sie diese Befehle in einem Terminalfenster auf Ihrem Gerät aus, um das Betriebssystem zu aktualisieren und die erforderlichen Bibliotheken zu installieren.

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install cmake
    sudo apt-get install libssl-dev
  2. Installieren Sie Git

    Wenn auf dem Betriebssystem Ihres Geräts Git nicht installiert ist, müssen Sie es installieren, um das AWS IoT Geräte-SDK für zu installieren JavaScript.

    1. Testen Sie, ob Git bereits installiert ist, indem Sie diesen Befehl ausführen.

      git --version
    2. Wenn der vorherige Befehl die Git-Version anzeigt, ist Git bereits installiert und Sie können mit Schritt 3 fortfahren.

    3. Wenn bei der Ausführung des Befehls git ein Fehler angezeigt wird, installieren Sie Git, indem Sie diesen Befehl ausführen.

      sudo apt-get install git
    4. Testen Sie erneut, ob Git installiert ist, indem Sie diesen Befehl ausführen.

      git --version
    5. Wenn Git installiert ist, fahren Sie mit dem nächsten Abschnitt fort. Wenn nicht, beheben Sie den Fehler und korrigieren Sie ihn, bevor Sie fortfahren. Sie benötigen Git, um das AWS IoT Device SDK für zu installieren JavaScript.

Installieren Sie AWS IoT das Geräte-SDK

Installieren Sie das AWS IoT Geräte-SDK.

Python

In diesem Abschnitt installieren Sie Python, seine Entwicklungstools und das AWS IoT Device SDK für Python auf Ihrem Gerät. Diese Anweisungen gelten für einen Raspberry Pi, auf dem das neueste Raspberry Pi-Betriebssystem ausgeführt wird. Wenn Sie mit einem anderen Gerät arbeiten oder ein anderes Betriebssystem verwenden, müssen Sie diese Anweisungen für Ihr Gerät anpassen.

  1. Installieren Sie Python und seine Entwicklungstools

    Für das AWS IoT Device SDK für Python muss Python v3.5 oder höher auf Ihrem Raspberry Pi installiert sein.

    Führen Sie diese Befehle in einem Terminalfenster auf Ihrem Gerät aus.

    1. Führen Sie diesen Befehl aus, um die auf Ihrem Gerät installierte Python-Version zu bestimmen.

      python3 --version

      Wenn Python installiert ist, wird seine Version angezeigt.

    2. Wenn die angezeigte Version Python 3.5 oder höher ist, können Sie mit Schritt 2 fortfahren.

    3. Wenn die angezeigte Version niedriger als Python 3.5 ist, können Sie die richtige Version installieren, indem Sie diesen Befehl ausführen.

      sudo apt install python3
    4. Führen Sie diesen Befehl aus, um zu bestätigen, dass die richtige Version von Python jetzt installiert ist.

      python3 --version
  2. Testen Sie auf pip3

    Führen Sie diese Befehle in einem Terminalfenster Ihres Geräts aus.

    1. Führen Sie diesen Befehl aus, um zu sehen, ob pip3 installiert ist.

      pip3 --version
    2. Wenn der Befehl eine Versionsnummer zurückgibt, ist pip3 installiert und Sie können mit Schritt 3 fortfahren.

    3. Wenn der vorherige Befehl einen Fehler zurückgibt, führen Sie diesen Befehl zur Installation von pip3 aus.

      sudo apt install python3-pip
    4. Führen Sie diesen Befehl aus, um zu sehen, ob pip3 installiert ist.

      pip3 --version
  3. Installieren Sie das aktuelle AWS IoT Geräte-SDK für Python

    Installieren Sie das AWS IoT Device SDK für Python und laden Sie die Beispiel-Apps auf Ihr Gerät herunter.

    Führen Sie diese Befehle auf Ihrem Gerät aus.

    cd ~ python3 -m pip install awsiotsdk
    git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
JavaScript

In diesem Abschnitt installieren Sie Node.js, den npm-Paketmanager und das AWS IoT Geräte-SDK für JavaScript auf Ihrem Gerät. Diese Anweisungen gelten für einen Raspberry Pi, auf dem das Raspberry Pi OS ausgeführt wird. Wenn Sie mit einem anderen Gerät arbeiten oder ein anderes Betriebssystem verwenden, müssen Sie diese Anweisungen für Ihr Gerät anpassen.

  1. Installieren der neuesten Version von Node.js

    Für das AWS IoT Geräte-SDK für JavaScript müssen Node.js und der npm-Paketmanager auf Ihrem Raspberry Pi installiert sein.

    1. Laden Sie die aktuelle Version des Knoten-Repositorys herunter, indem Sie einen der folgenden Befehle eingeben.

      cd ~ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. Installieren Sie Node und npm.

      sudo apt-get install -y nodejs
    3. Überprüfen Sie die Installation von Node.

      node -v

      Vergewissern Sie sich, dass der Befehl die Node-Version anzeigt. Dieses Tutorial erfordert Node v10.0 oder neuer. Wenn die Node-Version nicht angezeigt wird, versuchen Sie erneut, das Node-Repository herunterzuladen.

    4. Überprüfen Sie die Installation von npm.

      npm -v

      Vergewissern Sie sich, dass der Befehl die npm-Version anzeigt. Wenn die npm-Version nicht angezeigt wird, versuchen Sie erneut, Node und npm zu installieren.

    5. Starten Sie das Gerät neu.

      sudo shutdown -r 0

      Fahren Sie nach dem Neustart des Geräts fort.

  2. Installieren Sie das AWS IoT Geräte-SDK für JavaScript

    Installieren Sie das AWS IoT Geräte-SDK für JavaScript auf Ihrem Raspberry Pi.

    1. Klonen Sie das AWS IoT Geräte-SDK für das JavaScript Repository in das aws-iot-device-sdk-js-v2 Verzeichnis Ihres Home-Verzeichnisses. Auf dem Raspberry Pi ist das Home-Verzeichnis ~/, das in den folgenden Befehlen als Home-Verzeichnis verwendet wird. Wenn Ihr Gerät einen anderen Pfad für das Home-Verzeichnis verwendet, müssen Sie ~/ in den folgenden Befehlen durch den richtigen Pfad für Ihr Gerät ersetzen.

      Diese Befehle erstellen das Verzeichnis ~/aws-iot-device-sdk-js-v2 und kopieren den SDK-Code hinein.

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Wechseln Sie zu dem Verzeichnis aws-iot-device-sdk-js-v2, das Sie im vorherigen Schritt erstellt haben, und führen Sie npm install aus, um das SDK zu installieren. Der Befehl npm install ruft den Build der Bibliothek aws-crt auf, der einige Minuten in Anspruch nehmen kann.

      cd ~/aws-iot-device-sdk-js-v2 npm install

Installieren und Ausführen der Beispiel-App

In diesem Abschnitt installieren und führen Sie die pubsub Beispiel-App aus dem AWS IoT Geräte-SDK aus. Diese App zeigt, wie Ihr Gerät die MQTT-Bibliothek verwendet, um MQTT-Nachrichten zu veröffentlichen und zu abonnieren. Die Beispiel-App abonniert ein Thema, topic_1, veröffentlicht 10 Nachrichten zu diesem Thema und zeigt die Nachrichten so an, wie sie vom Message Broker empfangen wurden.

Installieren Sie die Zertifikatdateien

Für die Beispiel-App müssen die Zertifikatsdateien, die das Gerät authentifizieren, auf dem Gerät installiert sein.

Um die Gerätezertifikatsdateien für die Beispiel-App zu installieren
  1. Erstellen Sie ein certs-Unterverzeichnis in Ihrem Home-Verzeichnis, indem Sie diese Befehle ausführen.

    cd ~ mkdir certs
  2. Kopieren Sie das Zertifikat, den privaten Schlüssel und das Stammzertifikat, das Sie in ~/certs erstellt haben, in das Verzeichnis AWS IoT Ressourcen erstellen.

    Wie Sie die Zertifikatsdateien auf Ihr Gerät kopieren, hängt vom Gerät und Betriebssystem ab und wird hier nicht beschrieben. Wenn Ihr Gerät jedoch eine grafische Benutzeroberfläche (GUI) unterstützt und über einen Webbrowser verfügt, können Sie das unter AWS IoT Ressourcen erstellen beschriebene Verfahren vom Webbrowser Ihres Geräts aus ausführen, um die resultierenden Dateien direkt auf Ihr Gerät herunterzuladen.

    Bei den Befehlen im nächsten Abschnitt wird davon ausgegangen, dass Ihr Schlüssel und Ihr Zertifikatdateien wie in dieser Tabelle gezeigt auf dem Gerät gespeichert sind.

    Namen der Zertifikatsdateien

    Datei

    Dateipfad

    CA-Stammzertifikat

    ~/certs/Amazon-root-CA-1.pem

    Gerätezertifikat

    ~/certs/device.pem.crt

    Privater Schlüssel

    ~/certs/private.pem.key

Zur Ausführung der Beispielanwendung benötigen Sie die folgenden Informationen:

Anwendungsparameterwerte

Parameter

Wo der Wert gefunden werden kann

your-iot-endpoint

Wählen Sie in der AWS IoT -Konsole Alle Geräte und dann Objekte aus.

Auf der Einstellungsseite im AWS IoT Menü. Ihr Endpunkt wird im Abschnitt Gerätedaten-Endpunkt angezeigt.

Der your-iot-endpointWert hat ein Format von:endpoint_id-ats.iot.region.amazonaws.com, zum Beispiela3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Python
Um die Beispiel-App zu installieren und auszuführen
  1. Navigieren Sie zum Beispielverzeichnis.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Ersetzen Sie im Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

    python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Beachten Sie, dass die Beispiel-App:

    1. Stellt eine Verbindung mit dem AWS IoT Dienst für Ihr Konto her.

    2. Das Nachrichtenthema topic_1 abonniert und die Nachrichten anzeigt, die es zu diesem Thema erhält.

    3. 10 Nachrichten zum Thema topic_1 veröffentlicht.

    4. Ihre Ausgabe sieht ähnlich aus wie:

    Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'... Connected! Subscribing to topic 'topic_1'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'topic_1': Hello World! [1] Received message from topic 'topic_1': b'Hello World! [1]' Publishing message to topic 'topic_1': Hello World! [2] Received message from topic 'topic_1': b'Hello World! [2]' Publishing message to topic 'topic_1': Hello World! [3] Received message from topic 'topic_1': b'Hello World! [3]' Publishing message to topic 'topic_1': Hello World! [4] Received message from topic 'topic_1': b'Hello World! [4]' Publishing message to topic 'topic_1': Hello World! [5] Received message from topic 'topic_1': b'Hello World! [5]' Publishing message to topic 'topic_1': Hello World! [6] Received message from topic 'topic_1': b'Hello World! [6]' Publishing message to topic 'topic_1': Hello World! [7] Received message from topic 'topic_1': b'Hello World! [7]' Publishing message to topic 'topic_1': Hello World! [8] Received message from topic 'topic_1': b'Hello World! [8]' Publishing message to topic 'topic_1': Hello World! [9] Received message from topic 'topic_1': b'Hello World! [9]' Publishing message to topic 'topic_1': Hello World! [10] Received message from topic 'topic_1': b'Hello World! [10]' 10 message(s) received. Disconnecting... Disconnected!

    Wenn Probleme bei der Ausführung der Beispiel-App auftreten, überprüfen Sie Fehlerbehebung bei Problemen mit der Beispiel-App.

    Sie können den Parameter --verbosity Debug auch zur Befehlszeile hinzufügen, sodass die Beispiel-App detaillierte Meldungen darüber anzeigt, was sie tut. Diese Informationen bieten Ihnen möglicherweise die Hilfe, die Sie zur Behebung des Problems benötigen.

JavaScript
Um die Beispiel-App zu installieren und auszuführen
  1. Navigieren Sie in Ihrem Befehlszeilenfenster zu dem ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub-Verzeichnis, das das SDK erstellt hat, und installieren Sie die Beispiel-App mithilfe dieser Befehle. Der Befehl npm install ruft den Build der aws-crt Bibliothek auf, der einige Minuten in Anspruch nehmen kann.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. Ersetzen Sie im Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

    node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Beachten Sie, dass die Beispiel-App:

    1. Stellt eine Verbindung mit dem AWS IoT Dienst für Ihr Konto her.

    2. Das Nachrichtenthema topic_1 abonniert und die Nachrichten anzeigt, die es zu diesem Thema erhält.

    3. 10 Nachrichten zum Thema topic_1 veröffentlicht.

    4. Ihre Ausgabe sieht ähnlich aus wie:

    Publish received on topic topic_1 {"message":"Hello world!","sequence":1} Publish received on topic topic_1 {"message":"Hello world!","sequence":2} Publish received on topic topic_1 {"message":"Hello world!","sequence":3} Publish received on topic topic_1 {"message":"Hello world!","sequence":4} Publish received on topic topic_1 {"message":"Hello world!","sequence":5} Publish received on topic topic_1 {"message":"Hello world!","sequence":6} Publish received on topic topic_1 {"message":"Hello world!","sequence":7} Publish received on topic topic_1 {"message":"Hello world!","sequence":8} Publish received on topic topic_1 {"message":"Hello world!","sequence":9} Publish received on topic topic_1 {"message":"Hello world!","sequence":10}

    Wenn Probleme bei der Ausführung der Beispiel-App auftreten, überprüfen Sie Fehlerbehebung bei Problemen mit der Beispiel-App.

    Sie können den Parameter --verbosity Debug auch zur Befehlszeile hinzufügen, sodass die Beispiel-App detaillierte Meldungen darüber anzeigt, was sie tut. Diese Informationen bieten Ihnen möglicherweise die Hilfe, die Sie zur Behebung des Problems benötigen.

Nachrichten aus der Beispiel-App in der AWS IoT Konsole anzeigen

Mithilfe des MQTT-Testclients in der AWS IoT -Konsole können Sie die Nachrichten der Beispiel-App sehen, während sie den Message Broker durchlaufen.

Um die von der Beispiel-App veröffentlichten MQTT-Nachrichten anzuzeigen
  1. Sehen Sie sich MQTT-Nachrichten mit dem AWS IoT MQTT-Client anzeigen an. Auf diese Weise lernen Sie, wie Sie den MQTT-Testclient in der AWS IoT -Konsole verwenden, um MQTT-Nachrichten anzuzeigen, während sie den Message Broker passieren.

  2. Öffnen Sie den MQTT-Testclient in der AWS IoT -Konsole.

  3. Abonnieren Sie das Thema topic_1.

  4. Führen Sie in Ihrem Befehlszeilenfenster die Beispiel-App erneut aus und sehen Sie sich die Nachrichten im MQTT-Client in der AWS IoT -Konsole an.

    Python
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    JavaScript
    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint