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.
Démonstration de la publication de messages avec le AWS IoT Device Client
Les procédures décrites dans cette section montrent comment le client du AWS IoT périphérique peut envoyer des messages MQTT par défaut et personnalisés.
Les déclarations de politique que vous avez créées à l'étape précédente pour ces exercices autorisent le Raspberry Pi à effectuer les actions suivantes :
-
iot:Connect
Permet au client nommé
PubSubTestThing
, votre Raspberry Pi exécutant le AWS IoT Device Client, de se connecter.{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
-
iot:Publish
Permet au Raspberry Pi de publier des messages dont la rubrique MQTT est
test/dc/pubtopic
.{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
L'action
iot:Publish
donne l'autorisation de publier dans les rubriques MQTT répertoriées dans le tableau de ressources. Le contenu de ces messages n'est pas contrôlé par la déclaration de politique.
Publiez le message par défaut à l'aide du AWS IoT Device Client
Cette procédure exécute le client de AWS IoT périphérique afin qu'il publie un seul message MQTT par défaut que le client de test MQTT reçoit et affiche.
Pour envoyer le message MQTT par défaut depuis le client du AWS IoT périphérique
-
Assurez-vous que la fenêtre du terminal de votre ordinateur hôte local connecté à votre Raspberry Pi et la fenêtre avec le client de test MQTT sont visibles pendant que vous effectuez cette procédure.
-
Dans la fenêtre du terminal, entrez ces commandes pour exécuter le client de AWS IoT périphérique à l'aide du fichier de configuration créé dansCréez le fichier de configuration.
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
Dans la fenêtre du terminal, le client du AWS IoT périphérique affiche les messages d'information et les éventuelles erreurs survenant lors de son exécution.
Si aucune erreur n'est affichée dans la fenêtre du terminal, passez en revue le client de test MQTT.
-
Dans le client de test MQTT, dans la fenêtre Subscriptions(Abonnements), consultez le Hello World ! message envoyé à la rubrique
test/dc/pubtopic
. -
Si le client de l' AWS IoT appareil n'affiche aucune erreur et que vous voyez Hello World ! envoyé au
test/dc/pubtopic
message dans le client de test MQTT, vous avez démontré une connexion réussie. -
Dans la fenêtre du terminal, entrez
^C
(Ctrl-C) pour arrêter le AWS IoT Device Client.
Après avoir démontré que le AWS IoT Device Client a publié le message MQTT par défaut, vous pouvez passer auPublier un message personnalisé à l'aide du AWS IoT Device Client.
Publier un message personnalisé à l'aide du AWS IoT Device Client
Les procédures décrites dans cette section créent un message MQTT personnalisé, puis exécutent le client de périphérique AWS IoT afin qu'il publie le message MQTT personnalisé une fois pour que le client de test MQTT le reçoive et l'affiche.
Création d'un message MQTT personnalisé pour le client du AWS IoT périphérique
Effectuez ces étapes dans la fenêtre du terminal sur l'ordinateur hôte local connecté à votre Raspberry Pi.
Pour créer un message personnalisé à publier par le AWS IoT Device Client
-
Dans la fenêtre du terminal, ouvrez un éditeur de texte comme
nano
. -
Dans l'éditeur de texte, copiez et collez le document JSON suivant. Il s'agira de la charge utile du message MQTT que le client du AWS IoT périphérique publiera.
{ "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
-
Enregistrement du contenu de l'éditeur de texte avec
~/messages/sample-ws-message.json
. -
Saisissez la commande suivante pour définir les autorisations du fichier de messages que vous venez de créer.
chmod 600 ~/messages/*
Pour créer un fichier de configuration que le client du AWS IoT périphérique utilisera pour envoyer le message personnalisé
-
Dans la fenêtre du terminal, dans un éditeur de texte tel que
nano
, ouvrez le fichier de configuration du client de AWS IoT périphérique existant :~/dc-configs/dc-pubsub-config.json
. -
Modifiez l'objet
samples
pour qu'il ressemble à ceci. Aucune autre partie de ce fichier n'a besoin d'être modifiée."samples": { "pub-sub": { "enabled": true, "publish-topic": "test/dc/pubtopic", "publish-file": "
~/messages/sample-ws-message.json
", "subscribe-topic": "test/dc/subtopic", "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log" -
Enregistrement du contenu de l'éditeur de texte avec
~/dc-configs/dc-pubsub-custom-config.json
. -
Exécutez cette commande pour définir les autorisations sur le nouveau fichier de configuration.
chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
Publiez le message MQTT personnalisé à l'aide du AWS IoT Device Client
Cette modification n'affecte que le contenu de la charge utile des messages MQTT, de sorte que la politique actuelle continuera de fonctionner. Toutefois, si le sujet MQTT (tel que défini par la valeur publish-topic
dans~/dc-configs/dc-pubsub-custom-config.json
) était modifié, la déclaration de politique iot::Publish
devrait également être modifiée pour permettre au Raspberry Pi de publier sur le nouveau sujet MQTT.
Pour envoyer le message MQTT depuis le client du AWS IoT périphérique
-
Assurez-vous que la fenêtre du terminal et la fenêtre avec le client de test MQTT sont visibles pendant que vous effectuez cette procédure. Assurez-vous également que votre client de test MQTT est toujours abonné au filtre # topic. Si ce n'est pas le cas, abonnez-vous à nouveau au filtre de rubrique #.
-
Dans la fenêtre du terminal, entrez ces commandes pour exécuter AWS IoT Device Client à l'aide du fichier de configuration créé dans Créez le fichier de configuration.
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
Dans la fenêtre du terminal, le client du AWS IoT périphérique affiche les messages d'information et les éventuelles erreurs survenant lors de son exécution.
Si aucune erreur n'est affichée dans la fenêtre du terminal, passez en revue le client de test MQTT.
-
Dans le client de test MQTT, dans la fenêtre Abonnements, consultez la charge utile du message personnalisé envoyé à la rubrique du message
test/dc/pubtopic
. -
Si le AWS IoT Device Client n'affiche aucune erreur et que vous voyez la charge utile du message personnalisé que vous avez publié sur le
test/dc/pubtopic
message dans le client de test MQTT, cela signifie que vous avez publié un message personnalisé avec succès. -
Dans la fenêtre du terminal, entrez
^C
(Ctrl-C) pour arrêter le AWS IoT Device Client.
Après avoir démontré que le AWS IoT Device Client a publié une charge utile de messages personnalisée, vous pouvez continuerDémontrer l'abonnement aux messages avec le AWS IoT Device Client.