Demuestre la publicación de mensajes con el AWS IoT Device Client - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Demuestre la publicación de mensajes con el AWS IoT Device Client

Los procedimientos de esta sección muestran cómo el cliente del AWS IoT dispositivo puede enviar MQTT mensajes predeterminados y personalizados.

Estas declaraciones en la política que ha creado en el paso anterior para estos ejercicios dan permiso a la Raspberry Pi para realizar estas acciones:

  • iot:Connect

    Proporciona el nombre del cliente PubSubTestThing y su Raspberry Pi que ejecuta el AWS IoT Device Client para conectarse.

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

    Da permiso a la Raspberry Pi para publicar mensajes con un MQTT tema detest/dc/pubtopic.

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

    La iot:Publish acción da permiso para publicar en los MQTT temas enumerados en la matriz de recursos. El contenido de esos mensajes no está controlado por la declaración de política.

Publicar el mensaje predeterminado mediante AWS IoT Device Client

Este procedimiento ejecuta el cliente del AWS IoT dispositivo para publicar un único MQTT mensaje predeterminado que el cliente de MQTT prueba recibe y muestra.

Para enviar el MQTT mensaje predeterminado desde el cliente del AWS IoT dispositivo
  1. Asegúrese de que tanto la ventana del terminal del ordenador host local que está conectada a la Raspberry Pi como la ventana del cliente de MQTT prueba estén visibles mientras realiza este procedimiento.

  2. En la ventana del terminal, introduce estos comandos para ejecutar el AWS IoT Device Client mediante el archivo de configuración creado enCrear el archivo de configuración.

    cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json

    En la ventana del terminal, el cliente del AWS IoT dispositivo muestra los mensajes de información y cualquier error que se produzca durante su ejecución.

    Si no se muestra ningún error en la ventana del terminal, revise el cliente MQTT de prueba.

  3. En el cliente MQTT de prueba, en la ventana de suscripciones, consulta Hello World! mensaje enviado al tema del test/dc/pubtopic mensaje.

  4. Si el cliente del AWS IoT dispositivo no muestra ningún error y aparece Hello World! enviado al test/dc/pubtopic mensaje en el cliente de MQTT prueba, has demostrado que la conexión se ha realizado correctamente.

  5. En la ventana del terminal, introduzca ^C (Ctrl-C) para detener el cliente del AWS IoT dispositivo.

Una vez que haya demostrado que el cliente del AWS IoT dispositivo publicó el MQTT mensaje predeterminado, puede continuar con el. Publique un mensaje personalizado mediante el AWS IoT Device Client

Publique un mensaje personalizado mediante el AWS IoT Device Client

Los procedimientos de esta sección crean un MQTT mensaje personalizado y, a continuación, ejecutan el cliente del AWS IoT dispositivo para publicar el MQTT mensaje personalizado una vez para que el cliente de MQTT prueba lo reciba y lo muestre.

Cree un MQTT mensaje personalizado para el cliente del AWS IoT dispositivo

Realice estos pasos en la ventana del terminal del ordenador host local que está conectado a su Raspberry Pi.

Para crear un mensaje personalizado para que el cliente del AWS IoT dispositivo lo publique
  1. En la ventana del terminal, abra un editor de texto, por ejemplo, nano.

  2. En el editor de texto, copia y pega el siguiente JSON documento. Esta será la carga útil de MQTT mensajes que publique el cliente del AWS IoT dispositivo.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. Guarde el contenido del editor de texto como ~/messages/sample-ws-message.json.

  4. Introduzca el siguiente comando para configurar los permisos del archivo de mensaje que acaba de crear.

    chmod 600 ~/messages/*
Crear un archivo de configuración para que el cliente del AWS IoT dispositivo lo utilice para enviar el mensaje personalizado
  1. En la ventana del terminal, en un editor de texto comonano, por ejemplo, abra el archivo de configuración de AWS IoT Device Client existente:~/dc-configs/dc-pubsub-config.json.

  2. Edita el objeto de samples para que tenga este aspecto. No es necesario cambiar ninguna otra parte de este archivo.

    "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. Guarde el contenido del editor de texto como ~/dc-configs/dc-pubsub-custom-config.json.

  4. Ejecute este comando para establecer los permisos en el nuevo archivo de configuración.

    chmod 644 ~/dc-configs/dc-pubsub-custom-config.json

Publique el MQTT mensaje personalizado mediante el AWS IoT Device Client

Este cambio afecta únicamente al contenido de la carga útil del MQTT mensaje, por lo que la política actual seguirá funcionando. Sin embargo, si se cambiara el MQTTtema (tal como lo define el publish-topic valor en~/dc-configs/dc-pubsub-custom-config.json), también habría que modificar la declaración de iot::Publish política para permitir que Raspberry Pi publique en el nuevo MQTT tema.

Para enviar el MQTT mensaje desde el cliente del AWS IoT dispositivo
  1. Asegúrese de que tanto la ventana del terminal como la ventana con el cliente de MQTT prueba estén visibles mientras realiza este procedimiento. Además, asegúrese de que su cliente de MQTT prueba siga suscrito al filtro de temas #. Si no lo está, vuelva a suscribirse al filtro de temas #.

  2. En la ventana del terminal, introduzca estos comandos para ejecutar AWS IoT Device Client mediante el archivo de configuración creado en Crear el archivo de configuración.

    cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json

    En la ventana del terminal, el cliente del AWS IoT dispositivo muestra los mensajes de información y cualquier error que se produzca cuando se ejecuta.

    Si no se muestra ningún error en la ventana del terminal, revise el cliente MQTT de prueba.

  3. En el cliente de MQTT prueba, en la ventana Suscripciones, consulta la carga útil de mensajes personalizados enviada al tema del test/dc/pubtopic mensaje.

  4. Si el cliente del AWS IoT dispositivo no muestra ningún error y ves la carga útil del mensaje personalizado que publicaste en el test/dc/pubtopic mensaje en el cliente de MQTT prueba, significa que has publicado el mensaje personalizado correctamente.

  5. En la ventana del terminal, introduzca ^C (Ctrl-C) para detener el cliente del AWS IoT dispositivo.

Una vez que hayas demostrado que el cliente del AWS IoT dispositivo publicó una carga de mensajes personalizada, puedes continuar haciéndolo. Demuestre la suscripción a los mensajes con el cliente del dispositivo AWS IoT