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.
Los procedimientos de esta sección muestran cómo AWS IoT Device Client puede enviar mensajes de MQTT 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
Dar al cliente llamado
PubSubTestThing
su Raspberry Pi que ejecuta AWS IoT Device Client para que se conecte.{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
-
iot:Publish
Dar permiso a la Raspberry Pi para publicar mensajes con un tema de MQTT de
test/dc/pubtopic
.{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
La acción
iot:Publish
da permiso para publicar en los temas de MQTT que figuran 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 AWS IoT Device Client de forma que publique un único mensaje de MQTT predeterminado que el cliente de prueba de MQTT recibe y muestra.
Para enviar el mensaje de MQTT predeterminado desde AWS IoT Device Client
-
Asegúrese de que tanto la ventana del terminal de su ordenador host local conectada a su Raspberry Pi como la ventana con el cliente de prueba de MQTT estén visibles mientras realiza este procedimiento.
-
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-config.json
En la ventana del terminal, AWS IoT Device Client 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 de prueba de MQTT.
-
En el cliente de prueba de MQTT, en la ventana Suscripciones, consulte el mensaje Hello World! enviado al tema del mensaje
test/dc/pubtopic
. -
Si AWS IoT Device Client no muestra ningún error y aparece Hello World! enviado al mensaje
test/dc/pubtopic
en el cliente de prueba de MQTT, ha demostrado que la conexión se ha realizado correctamente. -
En la ventana del terminal, introduzca
^C
(Ctrl-C) para detener AWS IoT Device Client.
Cuando haya demostrado que AWS IoT Device Client publicó el mensaje de MQTT predeterminado, puede continuar con Publicación de un mensaje personalizado con AWS IoT Device Client.
Publicación de un mensaje personalizado con AWS IoT Device Client
Los procedimientos de esta sección crean un mensaje de MQTT personalizado y, a continuación, ejecutan AWS IoT Device Client para publicar el mensaje de MQTT personalizado una vez para que el cliente de prueba de MQTT lo reciba y lo muestre.
Crear un mensaje de MQTT personalizado para AWS IoT Device Client
Realice estos pasos en la ventana del terminal del ordenador host local que está conectado a su Raspberry Pi.
Para crear un mensaje personalizado con el fin de que AWS IoT Device Client lo publique
-
En la ventana del terminal, abra un editor de texto, por ejemplo,
nano
. -
En el editor de texto, copie y pegue el siguiente documento JSON. Esta será la carga del mensaje de MQTT que publique AWS IoT Device Client.
{ "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
-
Guarde el contenido del editor de texto como
~/messages/sample-ws-message.json
. -
Introduzca el siguiente comando para configurar los permisos del archivo de mensaje que acaba de crear.
chmod 600 ~/messages/*
Para crear un archivo de configuración con el fin de AWS IoT Device Client lo utilice para enviar el mensaje personalizado
-
En la ventana del terminal, en un editor de texto como
nano
, abra el archivo de configuración de AWS IoT Device Client existente:~/dc-configs/dc-pubsub-config.json
. -
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" -
Guarde el contenido del editor de texto como
~/dc-configs/dc-pubsub-custom-config.json
. -
Ejecute este comando para establecer los permisos en el nuevo archivo de configuración.
chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
Publicar el mensaje de MQTT personalizado mediante AWS IoT Device Client
Este cambio afecta únicamente al contenido de la carga del mensaje de MQTT, por lo que la política actual seguirá funcionando. Sin embargo, si se cambiara el tema de MQTT (tal como lo define el valor publish-topic
en ~/dc-configs/dc-pubsub-custom-config.json
), también habría que modificar la declaración de política de iot::Publish
para permitir que la Raspberry Pi publique en el nuevo tema de MQTT.
Para enviar el mensaje de MQTT desde AWS IoT Device Client
-
Asegúrese de que tanto la ventana del terminal como la ventana con el cliente de prueba de MQTT estén visibles mientras realiza este procedimiento. Además, verifique que su cliente de prueba de MQTT siga suscrito al filtro de temas #. Si no lo está, vuelva a suscribirse al filtro de temas #.
-
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, AWS IoT Device Client 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 de prueba de MQTT.
-
En el cliente de prueba de MQTT, en la ventana Suscripciones, observe la carga del mensaje personalizado enviado al tema del mensaje
test/dc/pubtopic
. -
Si AWS IoT Device Client no muestra ningún error y usted ve la carga del mensaje personalizado que publicó en el mensaje
test/dc/pubtopic
en el cliente de prueba de MQTT, significa que ha publicado un mensaje personalizado correctamente. -
En la ventana del terminal, introduzca
^C
(Ctrl-C) para detener AWS IoT Device Client.
Después de haber demostrado que AWS IoT Device Client publicó una carga de mensaje personalizada, puede continuar con Visualización de la suscripción a mensajes con AWS IoT Device Client.