Démonstration de la publication de messages avec le AWS IoT Device Client - AWS IoT Core

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

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

  3. Dans le client de test MQTT, dans la fenêtre Subscriptions(Abonnements), consultez le Hello World ! message envoyé à la rubrique test/dc/pubtopic.

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

  5. 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
  1. Dans la fenêtre du terminal, ouvrez un éditeur de texte comme nano.

  2. 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 } }
  3. Enregistrement du contenu de l'éditeur de texte avec ~/messages/sample-ws-message.json.

  4. 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é
  1. Dans la fenêtre du terminal, dans un éditeur de texte tel quenano, ouvrez le fichier de configuration du client de AWS IoT périphérique existant :~/dc-configs/dc-pubsub-config.json.

  2. 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"
  3. Enregistrement du contenu de l'éditeur de texte avec ~/dc-configs/dc-pubsub-custom-config.json.

  4. 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
  1. 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 #.

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

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

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

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