[PYTHON] Einfache Verbindung zwischen Raspberry Pi und AWS IoT
Raspberry Pi und AWS IoT Verbindungseinstellungen
Die grundlegende Verbindungsmethode ist einfach zu befolgen AWS IoT Development Guide.
Es gibt jedoch zwei Methoden, und ich habe beide ausprobiert. Hier erklären wir Ihnen, wie Sie den "Verbindungsassistenten" verwenden, der einfach und viel schneller einzurichten ist. (Wenn Sie bereit sind, dauert es ungefähr 30 Minuten)
Umgebung
- RaspberryPi 3B:
- Raspbian GNU/Linux 10 (buster)
- Python 2.7.16 (default, Oct 10 2019, 22:02:15)
- Hier können Sie das Python SDK von AWS IoT verwenden
- Git ist installiert
--SDK (aws-iot-device-sdk-python) wird von GitHub gekühlt
- OpenSSL 1.1.1d 10 Sep 2019
- Eine Umgebung, in der Sie eine Verbindung zum Internet herstellen können. (Kann eine Verbindung zu AWS IoT-Diensten herstellen)
- Sie haben ein AWS-Konto
- Verwenden Sie AWS IoT-Dienste
――Das Folgende ist das Verfahren ab April 2020.
Einrichtungsschritte
- Rufen Sie das AWS IoT-Menü von Ihrem PC aus auf
- Bordauswahl
- Gerät an Bord
- Klicken Sie auf Start
--Wählen Sie eine Plattform
--Wählen Sie Linux / OSX
- Auswahl des AWS IoT Device SDK
- Wählen Sie hier Python
--Weiter klicken
- Registrierung von Dingen. Registrieren Sie den Namen von Raspberry Pi.
- Verbindungskit herunterladen
--connect_device_package.zip wird heruntergeladen
- Entpacken Sie die heruntergeladene Datei auf Ihren PC
- Ungezippter Verzeichnisname: connect_device_package
- Es gibt die folgenden Dateien
- RaspberryPi_test.cert.pem
- RaspberryPi_test.private.key
- RaspberryPi_test.public.key
- start.sh
- Laut README verwendet die Kommunikationsverschlüsselung das X.509-Zertifikat mit TLS-Protokoll
--Übertragen Sie die heruntergeladene Datei auf Ihren PC zu Respberry Pi
--Erstellen Sie ein beliebiges Verzeichnis auf Raspberry Pi
--Kopieren Sie jedes Verzeichnis mit dem Befehl scp von Ihrem PC auf Raspberry Pi
--Öffnen Sie das Befehlsterminal Ihres PCs
- $ scp -r Name des Quellverzeichnisses kopieren Benutzername @ IP-Adresse: Raspberry Pi-Pfad
- Führen Sie die Shell aus, die Sie vom Raspberry Pi-Terminal kopiert haben
- Der folgende Fehler ist in meiner Umgebung aufgetreten
- start.sh: 19: ./start.sh: pushd: not found
- Fügen Sie #! / Bin / bash zur ersten Zeile von start.sh hinzu und führen Sie es erneut aus
--aws-iot-device-sdk-python wird von git gekühlt
- Die MQTT-Beispielanwendung wurde erfolgreich ausgeführt, nachdem eine Verbindung zur Cloud hergestellt wurde, und die Verbindung wurde bestätigt!
--Verzeichnis der auszuführenden Beispielanwendung: aws-iot-device-sdk-python / samples / basicPubSub
- Auszuführende Beispielshell: basicPubSub.py
Eine andere Verbindungsmethode
- Ab "Beginn der Verwendung von AWS IoT Core" in AWS IoT Development Guide Es ist auch möglich, einzeln vorzugehen.
――Aus der Sicht der Verbindung mit RaspberryPi ist es wunderbar, dass das Menü "AWS IoT Device SDK mit RaspberryPi verwenden" enthält. Dies liegt wahrscheinlich daran, dass Raspberry Pi für IoT-Geräte oder zum Lernen weit verbreitet ist. Es ist jedoch schade, dass der Entwicklungsleitfaden das Python SDK nicht erklärt. Derzeit verwendet das Menü AWS IoT-Geräte-SDK mit Raspberry Pi verwenden nur das AWS IoT-Geräte-SDK für Embedded C und das AWS IoT-Geräte-SDK für JavaScript und Node.
So verbinden Sie sich. Die Erfahrung mit den beiden Methoden hat gezeigt, dass die Einstellung über das Menü "Onboard" viel einfacher ist.
Was zu beachten ist
Beim Ausprobieren verschiedener Verbindungsmethoden wurde die Fehlermeldung angezeigt, dass der Schlüssel und das Zertifikat beim Herstellen der Verbindung nicht übereinstimmten. Die Methode zur Überprüfung mit dem Befehl openssl war praktisch. Qiita-Link
Die Verbindungsbestätigung durch das Pub / Unterprogramm ist in einem anderen [Qiita-Artikel] beschrieben (https://qiita.com/t_kawa1/items/d1916dd8e1bee3bbb2f4).
Referenzmaterial
Eine Beschreibung des Skripts finden Sie unter GitHub für das AWS IoT Python SDK.