Premiers pas avec AWS IoT facilement en Python

introduction

https://aws.amazon.com/jp/iot/

AWS IoT, qui est un service relativement nouveau d'Amazon Web Service, évolue de jour en jour à mesure qu'il commence à apparaître. J'aimerais faire l'expérience d'AWS IoT avec Mac et Python même si je n'ai pas d'appareil.

Configuration dans AWS Console

Sélectionnez AWS IoT dans la console Amazon Web Service et sélectionnez «Configurer un appareil» dans le menu Connexion.

スクリーンショット 2017-01-08 11.42.04.png

Sélectionnez "Linux / OSX" comme plate-forme et sélectionnez Python.

スクリーンショット 2017-01-08 11.42.40.png

Le nom de Thing peut être n'importe quoi, mais ici c'est "test_thing". Vous pouvez ajouter des types et des attributs à l'objet en sélectionnant "afficher la configuration facultative (cela peut être fait plus tard)". Cela facilite la recherche de choses plus tard, mais ce n'est pas nécessaire au préalable.

スクリーンショット 2017-01-08 11.45.07.png

Si vous définissez uniquement le nom Thing, le certificat client et la stratégie seront créés en conséquence. Avec le certificat client créé ici, les fonctionnalités AWS IoT sont accessibles à partir des applications Python.

Lorsque vous appuyez sur le bouton "Linux / OSX", des informations telles que le certificat client et la clé privée seront téléchargées.

スクリーンショット 2017-01-08 11.45.51.png

Application Python

Le traitement après le fichier zip téléchargé sera le suivant.

スクリーンショット 2017-01-08 11.46.22.png

Dans mon environnement, j'ai une erreur d'autorisation dans ./start.sh. Il semble que les bibliothèques nécessaires soient installées dans l'exemple, mais lorsque j'ai ajouté sudo et que je l'ai réexécuté, cela a réussi.

$ cd aws-iot-device-sdk-python/
$ sudo python setup.py install

dépannage

J'ai essayé à nouveau d'exécuter l'exemple d'application en utilisant start.sh. En interne, le certificat client, le certificat racine et la clé privée sont définis et exécutés avec les commandes suivantes.

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

Mais malheureusement, j'ai l'erreur suivante:

ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)

Il semble que la version d'OpenSSL soit ancienne, j'ai donc changé la version. 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

Contrôle de fonctionnement

Lorsque start.sh est à nouveau exécuté, l'application Python envoie et reçoit le message de journal suivant à la rubrique sdk / test / Python une fois toutes les quelques secondes.

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
--------------

Si vous le vérifiez sur le tableau de bord AWS IoT, le graphique sera généré comme indiqué ci-dessous.

スクリーンショット 2017-01-08 17.02.36.png

en conclusion

C'est très pratique car vous pouvez émuler un appareil avec juste un Mac et une application Python sans appareil. AWS IoT devient de plus en plus pratique.

Recommended Posts

Premiers pas avec AWS IoT facilement en Python
1.1 Premiers pas avec Python
Premiers pas avec Python
Paramètres pour démarrer avec MongoDB avec python
Premiers pas avec Python Django (1)
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Python Django (5)
Premiers pas avec Python responder v2
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec Python pour les fonctions PHPer
Démarrez avec Python avec Blender
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Dynamo de Python boto
Commençons avec TopCoder en Python (version 2020)
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Démarrer avec Python avec 100 coups sur le traitement du langage
Django 1.11 a démarré avec Python3.6
Premiers pas avec Android!
[Français] Premiers pas avec Rust pour les programmeurs Python
Premiers pas avec apache2
Premiers pas avec Django 1
Connectez-vous facilement à AWS avec plusieurs comptes
Introduction à l'optimisation
Faites facilement un bip avec python
Premiers pas avec Numpy
Premiers pas avec Spark
Premiers pas avec Pydantic
Premiers pas avec Jython
Matériel à lire lors de la mise en route de Python
Premiers pas avec Django 2
Premiers pas avec python3 # 2 En savoir plus sur les types et les variables
Provisionnement de flotte avec AWS IoT SDK for Python v2
Super Primer to python - Premiers pas avec python3.5 en 3 minutes
Premiers pas avec Google App Engine pour Python et PHP
Traduire Premiers pas avec TensorFlow
Formatez facilement JSON avec Python
Introduction à Tkinter 2: Button
Facilement sans serveur avec Python en utilisant Calice
Grattage au sélénium en Python
Premiers pas avec Go Assembly
[Python] Scraping dans AWS Lambda
Exploitez LibreOffice avec Python
Premiers pas avec PKI avec Golang ―― 4
Grattage avec chromedriver en python
Débogage avec pdb en Python
Gérer les sons en Python
Grattage avec du sélénium en Python
Grattage avec Tor en Python
Tweet avec image en Python
Combiné avec ordinal en Python