Étape 2 : Démontrez la publication de messages avec leAWS IoTAppareil 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.

Étape 2 : Démontrez la publication de messages avec leAWS IoTAppareil client

Les procédures présentées dans cette section démontrent comment leAWS IoTDevice Client peut envoyer des messages MQTT personnalisés et par défaut.

Ces instructions de stratégie de la stratégie que vous avez créée à l'étape précédente pour ces exercices donnent au Raspberry Pi l'autorisation d'effectuer ces actions :

  • iot:Connect

    Donne le nom du clientPubSubTestThing, votre Raspberry Pi exécutant leAWS IoTDevice Client, pour se connecter.

    { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
  • iot:Publish

    Donne au Raspberry Pi l'autorisation de publier des messages avec un sujet MQTT detest/dc/pubtopic.

    { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }

    Leiot:Publishdonne l'autorisation de publier sur les rubriques MQTT répertoriées dans le tableau Resource. Lecontenude ces messages ne sont pas contrôlés par l'énoncé de stratégie.

Publiez le message par défaut à l'aide de laAWS IoTAppareil client

Cette procédure exécute la commandeAWS IoTDevice Client afin qu'il publie un seul message MQTT par défaut indiquant que leClient MQTTreçoit et affiche.

Pour envoyer le message MQTT par défaut depuis leAWS IoTAppareil client
  1. Assurez-vous que la fenêtre du terminal de votre ordinateur hôte local connecté à votre Raspberry Pi et la fenêtre avec leClient MQTTsont visibles pendant que vous effectuez cette procédure.

  2. Dans la fenêtre du terminal, entrez ces commandes pour exécuter leAWS IoTDevice Client utilisant le fichier de configuration créé dansCréer 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 de terminal, leAWS IoTDevice Client affiche les messages d'information et les erreurs éventuelles qui se produisent lors de son exécution.

    Si aucune erreur n'est affichée dans la fenêtre du terminal, passez en revue leClient MQTT.

  3. DansClient MQTT, dans leSubscriptions, voir la fenêtreHello World !message envoyé autest/dc/pubtopicsujet de message.

  4. Si l'icôneAWS IoTDevice Client n'affiche aucune erreur et vous voyezHello World !envoyées à l'test/dc/pubtopicdans le messageClient MQTT, vous avez démontré une connexion réussie.

  5. Dans la fenêtre de terminal, entrez^C(Ctrl+C) afin d'arrêter leAWS IoTClient de l'appareil.

Une fois que vous avez démontré que leAWS IoTDevice Client a publié le message MQTT par défaut, vous pouvez continuer vers lePublier un message personnalisé à l'aide duAWS IoTClient de l'appareil..

Publier un message personnalisé à l'aide duAWS IoTClient de l'appareil.

Les procédures de cette section créent un message MQTT personnalisé, puis exécutent leAWS IoTDevice Client afin qu'il publie le message MQTT personnalisé une fois pour leClient MQTTà recevoir et à afficher.

Créez un message MQTT personnalisé pour leAWS IoTAppareil client

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é pour leAWS IoTDevice Client à publier
  1. Dans la fenêtre du terminal, ouvrez un éditeur de texte tel quenano.

  2. Dans l'éditeur de texte, copiez-collez le document JSON suivant. Il s'agit de la charge utile du message MQTT que leAWS IoTDevice Client publie.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. Enregistrez le contenu de l'éditeur de texte sous~/messages/sample-ws-message.json.

  4. Entrez 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 pour leAWS IoTDevice Client à utiliser pour envoyer le message personnalisé
  1. Dans la fenêtre du terminal, dans un éditeur de texte tel quenano, ouvrez le fichier existantAWS IoTFichier de configuration Device Client :~/dc-configs/dc-pubsub-config.json.

  2. Modifier l'outilsamplesse présente ainsi. Aucune autre partie de ce fichier ne doit ê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. Enregistrez le contenu de l'éditeur de texte sous~/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 de laAWS IoTAppareil client

Cette modification affecte uniquement lescontenude la charge utile des messages MQTT, de sorte que la stratégie actuelle continuera de fonctionner. Toutefois, si leRubrique MQTT(comme défini parpublish-topicvaleur dans~/dc-configs/dc-pubsub-custom-config.json) a été modifié, leiot::PublishIl faudrait également modifier l'énoncé de stratégie pour permettre au Raspberry Pi de publier sur la nouvelle rubrique MQTT.

Pour envoyer le message MQTT depuis leAWS IoTAppareil client
  1. Assurez-vous que la fenêtre du terminal et la fenêtre avec leClient MQTTsont visibles pendant que vous effectuez cette procédure. Assurez-vous également que votreClient MQTTest toujours abonné au#Filtre de rubriques. Si ce n'est pas le cas, abonnez-vous au#filtre de sujet à nouveau.

  2. Dans la fenêtre du terminal, entrez ces commandes pour exécuter leAWS IoTDevice Client utilisant le fichier de configuration créé dansCréer 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 de terminal, leAWS IoTDevice Client affiche les messages d'information et les erreurs éventuelles qui se produisent 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. DansClient MQTT, dans leSubscriptions, consultez la charge utile des messages personnalisés envoyée à latest/dc/pubtopicsujet de message.

  4. Si l'icôneAWS IoTDevice Client n'affiche aucune erreur et la charge utile des messages personnalisés que vous avez publiée sur letest/dc/pubtopicdans le messageClient MQTT, vous avez publié un message personnalisé avec succès.

  5. Dans la fenêtre de terminal, entrez^C(Ctrl+C) afin d'arrêter leAWS IoTClient de l'appareil.

Une fois que vous avez démontré que leAWS IoTDevice Client a publié une charge utile de message personnalisée, vous pouvez continuer àÉtape 3 : Démontrer que vous vous abonnez à des messages avec leAWS IoTAppareil client.