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 MQTT des messages personnalisés et par défaut.
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 le MQTT sujet est
test/dc/pubtopic
.{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
L'
iot:Publish
action autorise la publication dans les MQTT rubriques répertoriées dans le tableau des 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 MQTT message par défaut que le client de MQTT test reçoit et affiche.
Pour envoyer le MQTT message par défaut depuis le client de l' AWS IoT appareil
-
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 MQTT test 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 ne s'affiche dans la fenêtre du terminal, passez en revue le client de MQTT test.
-
Dans le client de MQTT test, dans la fenêtre Abonnements, consultez le Hello World ! message envoyé au sujet du
test/dc/pubtopic
message. -
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 MQTT test, 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 MQTT message 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 MQTT message personnalisé, puis exécutent le client de AWS IoT périphérique afin qu'il publie le MQTT message personnalisé une fois pour que le client de MQTT test le reçoive et l'affiche.
Création d'un MQTT message personnalisé pour le client de l' AWS IoT appareil
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 JSON document suivant. Il s'agira de la charge utile du MQTT message que le AWS IoT Device Client 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 MQTT message personnalisé à l'aide du AWS IoT Device Client
Cette modification n'affecte que le contenu de la charge utile du MQTT message, de sorte que la politique actuelle continuera de fonctionner. Toutefois, si le MQTTsujet (tel que défini par la publish-topic
valeur dans~/dc-configs/dc-pubsub-custom-config.json
) était modifié, la déclaration de iot::Publish
politique devra également être modifiée pour permettre au Raspberry Pi de publier sur le nouveau MQTT sujet.
Pour envoyer le MQTT message depuis le client de l' AWS IoT appareil
-
Assurez-vous que la fenêtre du terminal et celle du client de MQTT test sont visibles pendant que vous effectuez cette procédure. Assurez-vous également que votre client de MQTT test 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 ne s'affiche dans la fenêtre du terminal, passez en revue le client de MQTT test.
-
Dans le client de MQTT test, dans la fenêtre Abonnements, consultez la charge utile du message personnalisé envoyé au sujet du
test/dc/pubtopic
message. -
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 MQTT test, 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.