https://aws.amazon.com/jp/iot/
AWS IoT, ein relativ neuer Dienst von Amazon Web Service, entwickelt sich von Tag zu Tag weiter. Ich möchte AWS IoT mit Mac und Python erleben, auch wenn ich kein Gerät habe.
Wählen Sie AWS IoT in der Amazon Web Service-Konsole aus und wählen Sie "Konfigurieren eines Geräts" aus dem Menü "Verbinden".
Wählen Sie "Linux / OSX" als Plattform und wählen Sie Python.
Der Name von Thing kann alles sein, aber hier ist es "test_thing". Sie können dem Objekt Typen und Attribute hinzufügen, indem Sie "Optionale Konfiguration anzeigen (dies kann später erfolgen)" auswählen. Dies erleichtert das spätere Auffinden von Dingen, ist jedoch zunächst nicht erforderlich.
Wenn Sie nur den Thing-Namen festlegen, werden das Client-Zertifikat und die Richtlinie entsprechend erstellt. Mit dem hier erstellten Client-Zertifikat kann über Python-Anwendungen auf AWS IoT-Funktionen zugegriffen werden.
Wenn Sie auf die Schaltfläche "Linux / OSX" klicken, werden Informationen wie das Client-Zertifikat und der private Schlüssel heruntergeladen.
Die Verarbeitung nach der heruntergeladenen Zip-Datei erfolgt wie folgt.
In meiner Umgebung wurde in ./start.sh ein Berechtigungsfehler angezeigt. Es scheint, dass die erforderlichen Bibliotheken im Beispiel installiert sind, aber als ich sudo hinzufügte und es erneut ausführte, war es erfolgreich.
$ cd aws-iot-device-sdk-python/
$ sudo python setup.py install
Ich habe versucht, die Beispiel-App erneut mit start.sh auszuführen. Intern werden das Clientzertifikat, das Stammzertifikat und der private Schlüssel mit den folgenden Befehlen festgelegt und ausgeführt.
python aws-iot-device-sdk-python/samples/basicPubSub/basicPubSub.py -e XXXXXXXX.iot.ap-northeast-1.amazonaws.com -r root-CA.crt -c test_thing.cert.pem -k test_thing.private.key
Aber leider habe ich folgenden Fehler bekommen:
ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)
Es scheint, dass die Version von OpenSSL alt ist, also habe ich die Version geändert. http://ytooyama.hatenadiary.jp/entry/2016/06/23/004429 https://teratail.com/questions/47299 http://stackoverflow.com/questions/35473033/how-to-fix-openssl-error-with-aws-cli-iot-api
Wenn start.sh erneut ausgeführt wird, sendet und empfängt die Python-Anwendung alle paar Sekunden die folgende Protokollnachricht an das Thema sdk / test / Python.
2017-01-08 16:54:54,102 - AWSIoTPythonSDK.core.protocol.mqttCore - DEBUG - Try to put a publish request 178 in the TCP stack.
2017-01-08 16:54:54,102 - AWSIoTPythonSDK.core.protocol.mqttCore - DEBUG - Publish request 178 succeeded.
Received a new message:
New Message 176
from topic:
sdk/test/Python
--------------
Wenn Sie dies im AWS IoT-Dashboard überprüfen, wird das Diagramm wie unten gezeigt ausgegeben.
Dies ist sehr praktisch, da Sie ein Gerät nur mit einem Mac und einer Python-App ohne Gerät emulieren können. AWS IoT wird immer komfortabler.
Recommended Posts