Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisez votre PC ou Mac Windows ou Linux comme AWS IoT appareil
Dans ce didacticiel, vous allez configurer un ordinateur personnel à utiliser avec AWS IoT. Ces instructions sont compatibles avec Windows, Linux PCs et Mac. Pour ce faire, vous devez installer des logiciels sur votre ordinateur. Si vous ne souhaitez pas installer de logiciel sur votre ordinateur, vous pouvez essayer Création d'un appareil virtuel avec Amazon EC2, ce qui permet d'installer tous les logiciels sur une machine virtuelle.
Dans ce tutoriel, vous apprendrez à :
Configuration de votre ordinateur personnel
Pour suivre ce didacticiel, vous devez disposer d'un PC Windows ou Linux ou d'un Mac connecté à Internet.
Avant de passer à l'étape suivante, assurez-vous de pouvoir ouvrir une fenêtre de ligne de commande sur votre ordinateur. Utiliser cmd.exe sur un PC Windows. Sur un PC Linux ou un Mac, utilisez Terminal.
Installez Git, Python et le AWS IoT périphérique SDK pour Python
Dans cette section, vous allez installer Python et le AWS IoT Device SDK for Python sur votre ordinateur.
Installez la dernière version de Git et Python
Cette procédure explique comment installer la dernière version de Git et Python sur votre ordinateur personnel.
Pour télécharger et installer Git et Python sur votre ordinateur
-
Vérifier si Git est installé sur votre ordinateur. Entrez cette commande dans la ligne de commande.
git --version
Si la commande affiche la version de Git, Git est installé et vous pouvez passer à l'étape suivante.
Si la commande affiche une erreur, ouvrez
https://git-scm.com/download
et installez Git sur votre ordinateur. -
Vérifiez si vous avez déjà installé Python. Entrez la commande dans la ligne de commande.
python -V
Note
Si cette commande renvoie une erreur :
Python was not found
, cela peut être dû au fait que votre système d'exploitation appelle l'exécutable Python v3.x en tant quePython3
. Dans ce cas, remplacez toutes les instances depython
parpython3
et poursuivez le reste de ce didacticiel.Si la commande affiche la version de Python, c’est que Python est déjà installé. Ce didacticiel nécessite Python v3.7 ou version ultérieure.
-
Si Python est installé, vous pouvez ignorer le reste des étapes de cette section. Si ce n'est pas le cas, continuez.
-
Ouvrez https://www.python.org/downloads/
et téléchargez le programme d'installation pour votre ordinateur. -
Si le téléchargement ne démarre pas automatiquement, lancez le programme téléchargé pour installer Python.
-
Vérifier l'installation de Python.
python -V
Vérifiez que la commande affiche la version de Python. Si la version de Python n'est pas affichée, réessayez de télécharger et d'installer Python.
Installation du AWS IoT périphérique SDK pour Python
Pour installer le AWS IoT Device SDK for Python sur votre ordinateur
-
Installez la version 2 du AWS IoT périphérique SDK pour Python.
python3 -m pip install awsiotsdk
-
Clonez le dépôt AWS IoT Device SDK for Python dans le répertoire aws-iot-device-sdk -python-v2 de votre répertoire personnel. Cette procédure fait référence au répertoire de base des fichiers que vous installez en tant que
home
.L'emplacement réel du
home
le répertoire dépend de votre système d'exploitation.Note
Si vous utilisez Windows PowerShell au lieu decmd.exe, utilisez la commande suivante.
echo $home
Pour plus d'informations, consultez le GitHub référentiel AWS IoT
Device SDK for Python
Se préparer à exécuter les exemples d'applications
Pour préparer votre système à exécuter l'exemple d'application
-
Créez le répertoire
certs
. Dans le répertoirecerts
, copiez les fichiers de clé privée, de certificat de l’appareil et de certificat d'autorité de certification racine que vous avez enregistrés lorsque vous avez créé et enregistré l'objet dans Créez des AWS IoT ressources. Les noms de chaque fichier du répertoire de destination doivent correspondre à ceux du tableau.Les commandes figurant dans la section suivante supposent que vos fichiers de clé et de certificat sont stockés sur votre appareil, comme indiqué dans ce tableau.
Configuration de la politique et exécution de l'exemple d'application
Dans cette section, vous allez configurer votre politique et exécuter l'exemple de script pubsub.py
qui se trouve dans le aws-iot-device-sdk-python-v2/samples
répertoire du Kit SDK des appareils AWS IoT pour Python. Ce script montre comment votre appareil utilise la MQTT bibliothèque pour publier des MQTT messages et s'y abonner.
L'exemple d'application pubsub.py
s'abonne à une rubrique, test/topic
, publie 10 messages sur cette rubrique et affiche les messages au fur et à mesure qu'ils sont reçus de l’agent de messages.
Pour exécuter l'exemple de script pubsub.py
, vous avez besoin des informations suivantes :
Paramètre |
Où trouver la valeur |
---|---|
your-iot-endpoint |
|
Le your-iot-endpoint
la valeur a le format :
, par exemple,endpoint_id
-ats.iot.region
.amazonaws.com.rproxy.goskope.coma3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com
.
Avant d'exécuter le script, assurez-vous que la politique de votre objet autorise l'exemple de script à se connecter, à s'abonner, à publier et à recevoir.
Pour rechercher et consulter le document de politique d'une ressource d'objet
-
Dans la AWS IoT console
, dans la liste des Objets, recherchez la ressource d'objets qui représente votre appareil. -
Cliquez sur le lien Nom de la ressource d'objet qui représente votre appareil pour ouvrir la page des détails de l'objet.
-
Sur la page Détails de l'objet, dans l'onglet Certificats, choisissez le certificat attaché à la ressource d'objet. Il ne doit y avoir qu'un seul certificat dans la liste. S'il y en a plusieurs, choisissez le certificat dont les fichiers sont installés sur votre appareil et auquel vous souhaitez vous connecter AWS IoT Core.
Sur la page Détails du certificat, dans l'onglet Politiques, choisissez la politique attachée au certificat. Il ne doit y en avoir qu'un. S'il y en a plusieurs, répétez l'étape suivante pour chacune afin de vous assurer qu'au moins une politique accorde l'accès requis.
-
Sur la page d'aperçu de la politique, recherchez l'JSONéditeur et choisissez Modifier le document de stratégie pour consulter et modifier le document de politique selon les besoins.
-
La politique JSON est affichée dans l'exemple suivant. Dans l'
"Resource"
élément, remplacez
par votre Région AWS et Compte AWS dans chacune desregion:account
Resource
valeurs.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:
region:account
:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account
:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account
:client/test-*" ] } ] }
Exemple de script :
-
Se connecte AWS IoT Core à votre compte.
-
S'abonne à la rubrique du message, topic/test, et affiche les messages qu'il reçoit à cette rubrique.
-
Publie 10 messages dans la rubrique topic/test.
-
Affiche une sortie similaire à celle-ci :
Connected! Subscribing to topic 'test/topic'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'test/topic': Hello World! [1] Received message from topic 'test/topic': b'"Hello World! [1]"' Publishing message to topic 'test/topic': Hello World! [2] Received message from topic 'test/topic': b'"Hello World! [2]"' Publishing message to topic 'test/topic': Hello World! [3] Received message from topic 'test/topic': b'"Hello World! [3]"' Publishing message to topic 'test/topic': Hello World! [4] Received message from topic 'test/topic': b'"Hello World! [4]"' Publishing message to topic 'test/topic': Hello World! [5] Received message from topic 'test/topic': b'"Hello World! [5]"' Publishing message to topic 'test/topic': Hello World! [6] Received message from topic 'test/topic': b'"Hello World! [6]"' Publishing message to topic 'test/topic': Hello World! [7] Received message from topic 'test/topic': b'"Hello World! [7]"' Publishing message to topic 'test/topic': Hello World! [8] Received message from topic 'test/topic': b'"Hello World! [8]"' Publishing message to topic 'test/topic': Hello World! [9] Received message from topic 'test/topic': b'"Hello World! [9]"' Publishing message to topic 'test/topic': Hello World! [10] Received message from topic 'test/topic': b'"Hello World! [10]"' 10 message(s) received. Disconnecting... Disconnected!
Si vous rencontrez des difficultés en exécutant l'exemple d'application, veuillez consulter Résoudre les problèmes liés à l'exemple d'application.
Vous pouvez également ajouter le paramètre --verbosity Debug
sur la ligne de commande afin que l'exemple d'application affiche des messages détaillés sur ce qu'elle fait. Ces informations peuvent vous aider à corriger le problème.
Afficher les messages de l'exemple d'application dans la AWS IoT console
Vous pouvez voir les messages de l'application d'exemple lorsqu'ils passent par le courtier de messages en utilisant le client de MQTT test dans la AWS IoT console.
Pour consulter les MQTT messages publiés par l'exemple d'application
-
Consultez Afficher MQTT les messages avec le AWS IoT MQTT client. Cela vous permet d'apprendre à utiliser le client de MQTT test dans la AWS IoT console pour afficher les MQTT messages lorsqu'ils transitent par le courtier de messages.
-
Ouvrez le client de MQTT test dans la AWS IoT console.
-
Dans S'abonner à une rubrique, abonnez-vous à la rubrique, test/topic.
-
Dans votre fenêtre de ligne de commande, réexécutez l'exemple d'application et regardez les messages du MQTTclient dans la AWS IoT console.
Pour plus d'informations sur le protocole MQTT et la manière dont il le AWS IoT Core prend en charge, consultez MQTT.
Exécutez l'exemple d'abonnement partagé dans Python
AWS IoT Core prend en charge les abonnements partagés pour MQTT 3 et MQTT 5. Les abonnements partagés permettent à plusieurs clients de partager un abonnement à une rubrique et un seul client recevra les messages publiés sur cette rubrique selon une distribution aléatoire. Pour utiliser les abonnements partagés, les clients s'abonnent au filtre de rubrique d'un abonnement partagé :$share/{ShareName}/{TopicFilter}
.
Pour configurer la politique et exécuter l'exemple d'abonnement partagé
-
Pour exécuter l'exemple d'abonnement partagé, vous devez configurer la politique de votre objet, comme indiqué dans MQTT5 abonnements partagés
. -
Pour exécuter l'exemple d'abonnement partagé, exécutez les commandes suivantes.
Note
Vous pouvez éventuellement spécifier un identifiant de groupe en fonction de vos besoins lorsque vous exécutez l'échantillon (par exemple,
--group_identifier consumer
). Si vous n’en spécifiez pas,python-sample
est l’identifiant de groupe par défaut. -
Le résultat de votre ligne de commande peut ressembler à ce qui suit :
Publisher]: Lifecycle Connection Success [Publisher]: Connected Subscriber One]: Lifecycle Connection Success [Subscriber One]: Connected Subscriber Two]: Lifecycle Connection Success [Subscriber Two]: Connected [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [1]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [2]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [3]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [4]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [5]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [6]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [7]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [8]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [9]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [10]"' [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>] [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>] Publisher]: Lifecycle Disconnected [Publisher]: Lifecycle Stopped [Publisher]: Fully stopped Subscriber One]: Lifecycle Disconnected [Subscriber One]: Lifecycle Stopped [Subscriber One]: Fully stopped Subscriber Two]: Lifecycle Disconnected [Subscriber Two]: Lifecycle Stopped [Subscriber Two]: Fully stopped Complete!
-
Ouvrez le client de MQTT test dans la AWS IoT console. Dans S'abonner à un sujet, abonnez-vous au sujet de l'abonnement partagé tel que :
$share/consumer/test/topic
. Vous pouvez spécifier un identifiant de groupe en fonction de vos besoins lorsque vous exécutez l'échantillon (par exemple,--group_identifier consumer
). Si vous ne spécifiez pas d'identifiant de groupe, la valeur par défaut estpython-sample
. Pour plus d'informations, consultez l'exemple de MQTT 5 abonnements partagés en Pythonet les abonnements partagés du Guide du AWS IoT Core développeur. Dans votre fenêtre de ligne de commande, réexécutez l'exemple d'application et observez la distribution des messages dans votre client de MQTT test de la AWS IoT console et de la ligne de commande.