[PYTHON] J'ai essayé AWS Iot

introduction

Cet article s'adresse aux personnes qui souhaitent expérimenter AWS IoT pour le moment. Il s'agit d'un article qui tente de connecter le cloud et votre terminal. 図1.png

Environnement

Terminal OS: Ubuntu18.04LTS (démarré dans VMware) Python:3.6.9

Procédure de construction

Suivez les étapes ci-dessous pour créer un environnement de communication client cloud.

Connectez-vous à AWS IoT

Accédez à AWS IoT et cliquez sur Commencer. キャプチャ.PNG

Une explication apparaîtra, mais ne vous inquiétez pas, cliquez sur "Comment commencer". Je suis encore trop mauvais en japonais et je ne sais pas ce que je dis. 2.PNG

Comment vous connectez-vous à AWS IoT?

Sélectionnez la plate-forme (OS) de l'appareil connecté et le langage de programmation SDK pour la connexion. Cette fois, j'utiliserai Ubuntu en tant que client, donc Sélectionnez "Linux / OS X" comme plate-forme. Tout SDK est bien, mais cette fois j'ai choisi "Python". Enfin, appuyez sur Suivant.

3.PNG

Enregistrement des choses

Enregistrez des choses. Donnez le nom «chose» de manière appropriée. Cette fois, j'ai choisi "test01". 4.PNG

Télécharger le kit de connexion

Téléchargez le kit de connexion. Copiez le fichier téléchargé (connect_device_package.zip) sur votre terminal (Ubuntu dans ce cas). 5.PNG

Le kit de connexion comprend ・ SDK: aws-iot-device-sdk-python -Certificat AWS: root-CA.crt -Clé privée pour "choses": test01.private.key -Clé publique pour "choses": test01.public.key ・ Certificat pour "choses": test01.cert.pem Est inclus, et il est complètement épuisé. De plus, rien qu'en exécutant le fichier de script (start.sh) à l'intérieur, il fera tout, de l'installation du SDK à l'exécution du fichier d'exemple (basicPubSub.py). À propos, le certificat AWS diffère en fonction de la région (pays où le groupe de serveurs est installé), mais si vous accédez à la région Japon (ap-nord-est-1), le certificat de la région Japon sera téléchargé sans autorisation.

Connexion et test de l'appareil

** N'appuyez pas encore sur Terminé. ** ** Dans le répertoire contenant les fichiers téléchargés, exécutez les commandes dans le cadre rouge dans l'ordre. Si vous regardez d'autres sites, il y a des gens qui le font avec des privilèges d'administrateur (sudo), mais les privilèges d'utilisateur sont d'accord. 6.PNG

Cependant, dans de nombreux cas, je pense que la bibliothèque est insuffisante. Dans mon cas, j'étais en colère de ne pas avoir l'autorisation de créer le dossier AWSIoTPythonSDK.

error: could not create '/usr/local/lib/python3.6/dist-packages/AWSIoTPythonSDK': Permission denied

En fait, cette erreur ressemble à une erreur d'autorisation, mais il s'agit en fait d'une erreur qui se produit car le SDK AWSIoTPython n'est pas installé. Vous pouvez y remédier en entrant la commande suivante et en installant le kit SDK AWS IoT Python.

pip install AWSIoTPythonSDK

Si vous n'avez pas de pip, installez-le avec la commande suivante.

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

URL de référence: https://pip.pypa.io/en/stable/installing/

Si l'exécution réussit, le contenu suivant sera affiché sur l'écran de la console Ubuntu. Assurez-vous que Hello World! Est publié.

2020-10-11 21:09:20,862 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - Invoking custom event callback...
2020-10-11 21:09:20,862 - AWSIoTPythonSDK.core.protocol.mqtt_core - INFO - Performing sync subscribe...
2020-10-11 21:09:20,862 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Adding a new subscription record: sdk/test/Python qos: 1
2020-10-11 21:09:20,862 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - Filling in custom suback event callback...
2020-10-11 21:09:20,927 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Produced [suback] event
2020-10-11 21:09:20,927 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Dispatching [suback] event
2020-10-11 21:09:20,927 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - Invoking custom event callback...
2020-10-11 21:09:20,927 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - This custom event callback is for pub/sub/unsub, removing it after invocation...
2020-10-11 21:09:22,930 - AWSIoTPythonSDK.core.protocol.mqtt_core - INFO - Performing sync publish...
2020-10-11 21:09:22,930 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - Filling in custom puback (QoS>0) event callback...
2020-10-11 21:09:22,954 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Produced [puback] event
2020-10-11 21:09:22,955 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Dispatching [puback] event
2020-10-11 21:09:22,955 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - Invoking custom event callback...
2020-10-11 21:09:22,955 - AWSIoTPythonSDK.core.protocol.internal.clients - DEBUG - This custom event callback is for pub/sub/unsub, removing it after invocation...
2020-10-11 21:09:22,983 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Produced [message] event
2020-10-11 21:09:22,984 - AWSIoTPythonSDK.core.protocol.internal.workers - DEBUG - Dispatching [message] event
Received a new message: 
b'{"message": "Hello World!", "sequence": 0}'
from topic: 
sdk/test/Python
--------------

Si vous avez publié avec succès du côté de l'appareil IoT, il s'affichera à l'écran comme indiqué dans l'image ci-dessous. a.PNG

Cette fois, au contraire, publiez depuis le cloud vers l'appareil IoT. Entrez les caractères appropriés dans la case «Étape 4: Envoyer un message à l'appareil». Cette fois, j'ai ajouté "Long time no see!". b.PNG

Cliquez sur Envoyer un message. Si tout se passe bien, le contenu suivant sera affiché sur le terminal où vous avez exécuté start.sh.

Received a new message: 
b'Long time no see!'
from topic: 
sdk/test/Python
--------------

Lorsque vous appuyez sur "Terminer", l'écran de confirmation final apparaîtra. Ne vous inquiétez pas, appuyez sur "Terminer". 7.PNG

Merci pour votre soutien.

Résumé

J'ai implémenté une communication cloud AWS IoT simple et expérimentée. La prochaine fois, j'aimerais échanger des informations sur les capteurs.

URL de référence

À propos de MQTT https://myenigma.hatenablog.com/entry/2019/10/27/194549

Recommended Posts

J'ai essayé AWS Iot
J'ai essayé AWS CDK!
J'ai essayé d'utiliser AWS Chalice
J'ai essayé de gratter
J'ai essayé PyQ
J'ai essayé AutoKeras
J'ai essayé le moulin à papier
J'ai essayé django-slack
J'ai essayé spleeter
J'ai essayé cgo
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser l'API Detect Labels d'AWS Rekognition
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'exécuter pymc
J'ai essayé le spoofing ARP
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé Python> autopep8
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv
J'ai essayé d'utiliser matplotlib
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé PyCaret2.0 (pycaret-nightly)
J'ai essayé d'utiliser openpyxl
J'ai essayé le deep learning
J'ai essayé d'utiliser Ipython
J'ai essayé de déboguer.
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé la mapview de Kivy
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé de connecter AWS Lambda à d'autres services
J'ai essayé de déplacer EfficientDet
J'ai essayé la programmation shell
J'ai essayé d'utiliser doctest
J'ai essayé d'exécuter TensorFlow
J'ai essayé Auto Gluon
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser jinja2
J'ai essayé l'optimisation bayésienne!
J'ai touché AWS Chalice
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser la fenêtre de temps
J'ai essayé d'exécuter l'application sur la plateforme IoT "Rimotte"
J'ai fait une analyse émotionnelle d'Amazon Comprehend avec l'AWS CLI.
J'ai essayé d'exécuter TensorFlow dans l'environnement AWS Lambda: Préparation
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
AWS Lambda prend désormais en charge Python, je l'ai donc essayé
[Introduction à AWS] J'ai essayé de jouer avec la conversion voix-texte ♪
J'ai essayé les réseaux d'itération de valeur
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé la classification d'image d'AutoGluon