Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Dimostra la pubblicazione di messaggi con AWS IoT Device Client
Le procedure in questa sezione mostrano come il AWS IoT Device Client può inviare messaggi MQTT predefiniti e personalizzati.
Queste istruzioni di policy nella policy creata nella fase precedente per questi esercizi consentono al Raspberry Pi di eseguire queste azioni:
-
iot:Connect
Consente la connessione al client denominato
PubSubTestThing
, il Raspberry Pi su cui è in esecuzione il AWS IoT Device Client.{ "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing" ] }
-
iot:Publish
Fornire al Raspberry Pi l'autorizzazione a pubblicare messaggi con un argomento MQTT di
test/dc/pubtopic
.{ "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic" ] }
L'azione
iot:Publish
consente di pubblicare agli argomenti MQTT elencati nell'array di Risorsa. Il contenuto di tali messaggi non è controllato dall'istruzione di policy.
Pubblica il messaggio predefinito utilizzando AWS IoT Device Client
Questa procedura esegue il AWS IoT Device Client in modo da pubblicare un singolo messaggio MQTT predefinito che il client di test MQTT riceve e visualizza.
Per inviare il messaggio MQTT predefinito dal Device Client AWS IoT
-
Assicurati che sia la finestra terminale collegata al computer host locale sia connessa al tuo Raspberry Pi e che la finestra con il client MQTT di test sia visibile durante l'esecuzione di questa procedura.
-
Nella finestra del terminale, inserisci questi comandi per eseguire il AWS IoT Device Client utilizzando il file di configurazione creato in. Creare il file di configurazione
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
Nella finestra del terminale, il AWS IoT Device Client visualizza i messaggi informativi e gli eventuali errori che si verificano durante l'esecuzione.
Se nella finestra del terminale non vengono visualizzati errori, esamina il client MQTT di test.
-
In MQTT test client (Client MQTT di test), nella finestra Subscriptions (Sottoscrizioni) viene visualizzato il messaggio Hello World! inviato all'argomento del messaggio
test/dc/pubtopic
. -
Se il AWS IoT Device Client non mostra errori e viene visualizzato Hello World! inviato al
test/dc/pubtopic
messaggio nel client di test MQTT, hai dimostrato che la connessione è riuscita. -
Nella finestra del terminale, digitate
^C
(Ctrl-C) per fermare il AWS IoT Device Client.
Dopo aver dimostrato che AWS IoT Device Client ha pubblicato il messaggio MQTT predefinito, puoi continuare con. Pubblica un messaggio personalizzato utilizzando AWS IoT Device Client
Pubblica un messaggio personalizzato utilizzando AWS IoT Device Client
Le procedure di questa sezione creano un messaggio MQTT personalizzato e quindi eseguono AWS IoT Device Client in modo che pubblichi il messaggio MQTT personalizzato una volta per essere ricevuto e visualizzato dal client MQTT di test.
Crea un messaggio MQTT personalizzato per il Device Client AWS IoT
Esegui questi passaggi nella finestra terminale del computer host locale connesso al Raspberry Pi.
Per creare un messaggio personalizzato da pubblicare sul AWS IoT Device Client
-
Nella finestra terminale, apri un editor di testo, ad esempio
nano
. -
Nell'editor di testo, copia e incolla il documento JSON riportato di seguito. Questo sarà il payload del messaggio MQTT pubblicato da AWS IoT Device Client.
{ "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
-
Salva il contenuto dell'editor di testo come
~/messages/sample-ws-message.json
. -
Inserisci il comando seguente per impostare le autorizzazioni del file di messaggio appena creato.
chmod 600 ~/messages/*
Per creare un file di configurazione per il AWS IoT Device Client da utilizzare per inviare il messaggio personalizzato
-
Nella finestra del terminale, in un editor di testo come
nano
, apri il file di configurazione esistente di AWS IoT Device Client:.~/dc-configs/dc-pubsub-config.json
-
Modifica l'oggetto
samples
in questo modo. Nessun'altra parte di questo file deve essere modificata."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" -
Salva il contenuto dell'editor di testo come
~/dc-configs/dc-pubsub-custom-config.json
. -
Esegui questo comando per impostare le autorizzazioni sul nuovo file di configurazione.
chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
Pubblica il messaggio MQTT personalizzato utilizzando Device Client AWS IoT
Questa modifica influisce solo sui contenuti del payload del messaggio MQTT, quindi la policy attuale continuerà a funzionare. Tuttavia, se l'argomento MQTT (come definito dal valore publish-topic
in ~/dc-configs/dc-pubsub-custom-config.json
) è stato cambiato, anche l'istruzione di policy iot::Publish
dovrebbe essere modificata per consentire a Raspberry Pi di pubblicare sul nuovo argomento MQTT.
Per inviare il messaggio MQTT dal Device Client AWS IoT
-
Assicurati che sia la finestra terminale che la finestra con il client MQTT di test siano visibili durante l'esecuzione di questa procedura. Inoltre, assicurati che il tuo client MQTT di test abbia una sottoscrizione ancora attiva per il filtro di argomenti #. Se non lo è, effettua nuovamente la sottoscrizione al filtro argomento#.
-
Nella finestra terminale, immettere questi comandi per eseguire AWS IoT Device Client utilizzando il file di configurazione creato in Creare il file di configurazione.
cd ~/aws-iot-device-client/build ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
Nella finestra del terminale, il AWS IoT Device Client visualizza i messaggi informativi e gli eventuali errori che si verificano durante l'esecuzione.
Se nella finestra del terminale non vengono visualizzati errori, esaminare il client di test MQTT.
-
Nel client MQTT di test, nella finestra Subscriptions (Sottoscrizioni), viene visualizzato il payload del messaggio personalizzato inviato all'argomento del messaggio
test/dc/pubtopic
. -
Se il AWS IoT Device Client non mostra errori e vedi il payload di messaggi personalizzati che hai pubblicato nel
test/dc/pubtopic
messaggio nel client di test MQTT, hai pubblicato un messaggio personalizzato con successo. -
Nella finestra del terminale, digitate
^C
(Ctrl-C) per arrestare il Device Client. AWS IoT
Dopo aver dimostrato che AWS IoT Device Client ha pubblicato un payload di messaggi personalizzato, puoi continuare a farlo. Dimostra di esserti iscritto ai messaggi con Device Client AWS IoT