View a markdown version of this page

Dimostra la pubblicazione di messaggi con il AWS IoT Device Client - AWS IoT Core

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 il AWS IoT Device Client

Le procedure in questa sezione dimostrano 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

    Fornisce il nome del clientPubSubTestThing, il tuo Raspberry Pi su cui è in esecuzione il AWS IoT Device Client, per connettersi.

    { "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 il AWS IoT Device Client

Questa procedura esegue il AWS IoT Device Client in modo che pubblichi un singolo messaggio MQTT predefinito che il client di test MQTT riceve e visualizza.

Per inviare il messaggio MQTT predefinito da AWS IoT Device Client
  1. 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.

  2. Nella finestra del terminale, inserisci questi comandi per eseguire il AWS IoT Device Client utilizzando il file di configurazione creato inCreare 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.

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

  4. 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 una connessione riuscita.

  5. Nella finestra del terminale, digitate ^C (Ctrl-C) per interrompere il AWS IoT Device Client.

Dopo aver dimostrato che il AWS IoT Device Client ha pubblicato il messaggio MQTT predefinito, puoi continuare con. Pubblica un messaggio personalizzato utilizzando il AWS IoT Device Client

Pubblica un messaggio personalizzato utilizzando il 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 AWS IoT Device Client

Esegui questi passaggi nella finestra terminale del computer host locale connesso al Raspberry Pi.

Per creare un messaggio personalizzato per AWS IoT Device Client da pubblicare
  1. Nella finestra terminale, apri un editor di testo, ad esempio nano.

  2. Nell'editor di testo, copia e incolla il documento JSON riportato di seguito. Questo sarà il payload dei messaggi MQTT pubblicato dal AWS IoT Device Client.

    { "temperature": 28, "humidity": 80, "barometer": 1013, "wind": { "velocity": 22, "bearing": 255 } }
  3. Salva il contenuto dell'editor di testo come ~/messages/sample-ws-message.json.

  4. Inserisci il comando seguente per impostare le autorizzazioni del file di messaggio appena creato.

    chmod 600 ~/messages/*
Per creare un file di configurazione per AWS IoT Device Client da utilizzare per inviare il messaggio personalizzato
  1. Nella finestra del terminale, in un editor di testo comenano, apri il file di configurazione di AWS IoT Device Client esistente:~/dc-configs/dc-pubsub-config.json.

  2. 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"
  3. Salva il contenuto dell'editor di testo come ~/dc-configs/dc-pubsub-custom-config.json.

  4. 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 il AWS IoT Device Client

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 AWS IoT Client del dispositivo
  1. 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#.

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

  3. Nel client MQTT di test, nella finestra Subscriptions (Sottoscrizioni), viene visualizzato il payload del messaggio personalizzato inviato all'argomento del messaggio test/dc/pubtopic.

  4. Se il AWS IoT Device Client non mostra errori e viene visualizzato il payload del messaggio personalizzato pubblicato nel test/dc/pubtopic messaggio nel client di test MQTT, significa che il messaggio personalizzato è stato pubblicato correttamente.

  5. Nella finestra del terminale, digitate ^C (Ctrl-C) per interrompere il AWS IoT Device Client.

Dopo aver dimostrato che il AWS IoT Device Client ha pubblicato un payload di messaggi personalizzato, puoi continuare a Dimostra l'iscrizione ai messaggi con il AWS IoT Device Client farlo.