Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Verifica le comunicazioni con i dispositivi client

Modalità Focus
Verifica le comunicazioni con i dispositivi client - AWS IoT Greengrass

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

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

I dispositivi client possono utilizzare il SDK per dispositivi AWS IoT per rilevare, connettersi e comunicare con un dispositivo principale. È possibile utilizzare il Greengrass discovery client SDK per dispositivi AWS IoT per utilizzare l'API Greengrass discovery, che restituisce informazioni sui dispositivi principali a cui un dispositivo client può connettersi. La risposta dell'API include gli endpoint del broker MQTT da connettere e i certificati da utilizzare per verificare l'identità di ciascun dispositivo principale. Quindi, il dispositivo client può provare ogni endpoint fino a quando non si connette correttamente a un dispositivo principale.

I dispositivi client possono rilevare solo i dispositivi principali a cui vengono associati. Prima di testare le comunicazioni tra un dispositivo client e un dispositivo principale, è necessario associare il dispositivo client al dispositivo principale. Per ulteriori informazioni, consulta Associa i dispositivi client.

L'API Greengrass discovery restituisce gli endpoint del broker MQTT del dispositivo principale specificati. Puoi utilizzare il componente IP Detector per gestire questi endpoint al posto tuo oppure puoi gestirli manualmente per ogni dispositivo principale. Per ulteriori informazioni, consulta Gestisci gli endpoint principali dei dispositivi.

Nota

Per utilizzare l'API di scoperta Greengrass, un dispositivo client deve disporre dell'greengrass:Discoverautorizzazione. Per ulteriori informazioni, consulta AWS IoT Policy minima per i dispositivi client.

SDK per dispositivi AWS IoT È disponibile in più linguaggi di programmazione. Per ulteriori informazioni, consulta AWS IoT Device SDKs nella AWS IoT Core Developer Guide.

Comunicazioni di test (Python)

In questa sezione, si utilizza l'esempio di scoperta di Greengrass nella versione 2 SDK per dispositivi AWS IoT per Python per testare le comunicazioni tra un dispositivo client e un dispositivo principale.

Importante

Per utilizzare la versione SDK per dispositivi AWS IoT v2 per Python, un dispositivo deve eseguire Python 3.6 o versione successiva.

Per testare le comunicazioni (SDK per dispositivi AWS IoT v2 per Python)
  1. Scarica e installa la SDK per dispositivi AWS IoT versione 2 per Python AWS IoT sull'oggetto da connettere come dispositivo client.

    Sul dispositivo client, procedi come segue:

    1. Clona il repository SDK per dispositivi AWS IoT v2 for Python per scaricarlo.

      git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    2. Installa la SDK per dispositivi AWS IoT v2 per Python.

      python3 -m pip install --user ./aws-iot-device-sdk-python-v2
  2. Passa alla cartella samples nella SDK per dispositivi AWS IoT v2 per Python.

    cd aws-iot-device-sdk-python-v2/samples
  3. Esegui l'applicazione Greengrass discovery di esempio. Questa applicazione prevede argomenti che specifichino il nome dell'oggetto del dispositivo client, l'argomento e il messaggio MQTT da utilizzare e i certificati che autenticano e proteggono la connessione. L'esempio seguente invia un messaggio Hello World all'argomento. clients/MyClientDevice1/hello/world

    • Sostituire MyClientDevice1 con il nome dell'oggetto del dispositivo client.

    • Sostituisci ~/certs/AmazonRootCA1.pem con il percorso del certificato Amazon root CA sul dispositivo client.

    • Sostituisci ~/certs/device.pem.crt con il percorso del certificato del dispositivo sul dispositivo client.

    • Sostituisci ~/certs/private.pem.key con il percorso del file della chiave privata sul dispositivo client.

    • Sostituiscilo us-east-1 con la AWS regione in cui operano il dispositivo client e il dispositivo principale.

    python3 basic_discovery.py \\ --thing_name MyClientDevice1 \\ --topic 'clients/MyClientDevice1/hello/world' \\ --message 'Hello World!' \\ --ca_file ~/certs/AmazonRootCA1.pem \\ --cert ~/certs/device.pem.crt \\ --key ~/certs/private.pem.key \\ --region us-east-1 \\ --verbosity Warn

    L'applicazione di esempio Discovery invia il messaggio 10 volte e si disconnette. Inoltre, sottoscrive lo stesso argomento in cui pubblica i messaggi. Se l'output indica che l'applicazione ha ricevuto messaggi MQTT sull'argomento, il dispositivo client può comunicare correttamente con il dispositivo principale.

    Performing greengrass discovery... awsiot.greengrass_discovery.DiscoverResponse(gg_groups=[awsiot.greengrass_discovery.GGGroup(gg_group_id='greengrassV2-coreDevice-MyGreengrassCore', cores=[awsiot.greengrass_discovery.GGCore(thing_arn='arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore', connectivity=[awsiot.greengrass_discovery.ConnectivityInfo(id='203.0.113.0', host_address='203.0.113.0', metadata='', port=8883)])], certificate_authorities=['-----BEGIN CERTIFICATE-----\ MIICiT...EXAMPLE=\ -----END CERTIFICATE-----\ '])]) Trying core arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore at host 203.0.113.0 port 8883 Connected! Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 0} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 0}' Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 1} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 1}' ... Published topic clients/MyClientDevice1/hello/world: {"message": "Hello World!", "sequence": 9} Publish received on topic clients/MyClientDevice1/hello/world b'{"message": "Hello World!", "sequence": 9}'

    Se invece l'applicazione genera un errore, consulta Risoluzione dei problemi di rilevamento di Greengrass.

    Puoi anche visualizzare i log di Greengrass sul dispositivo principale per verificare se il dispositivo client si connette e invia messaggi correttamente. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.

Comunicazioni di test (C++)

In questa sezione, si utilizza l'esempio di scoperta di Greengrass nella versione SDK per dispositivi AWS IoT 2 per C++ per testare le comunicazioni tra un dispositivo client e un dispositivo principale.

Per creare la SDK per dispositivi AWS IoT v2 per C++, un dispositivo deve disporre dei seguenti strumenti:

  • C++ 11 o versione successiva

  • CMake 3.1 o successivo

  • Uno dei seguenti compilatori:

    • GCC 4.8 o successivo

    • Clang 3.9 o successivo

    • MSVC 2015 o versione successiva

Per testare le comunicazioni (SDK per dispositivi AWS IoT v2 per C++)
  1. Scarica e crea la versione SDK per dispositivi AWS IoT v2 per C++ su cui AWS IoT connetterti come dispositivo client.

    Sul dispositivo client, procedi come segue:

    1. Create una cartella per l'area di lavoro SDK per dispositivi AWS IoT v2 for C++ e modificatela.

      cd mkdir iot-device-sdk-cpp cd iot-device-sdk-cpp
    2. Clona il repository SDK per dispositivi AWS IoT v2 for C++ per scaricarlo. Il --recursive flag specifica di scaricare i sottomoduli.

      git clone --recursive https://github.com/aws/aws-iot-device-sdk-cpp-v2.git
    3. Crea una cartella per l'output della build SDK per dispositivi AWS IoT v2 for C++ e modificala.

      mkdir aws-iot-device-sdk-cpp-v2-build cd aws-iot-device-sdk-cpp-v2-build
    4. Crea la SDK per dispositivi AWS IoT v2 per C++.

      cmake -DCMAKE_INSTALL_PREFIX="~/iot-device-sdk-cpp" -DCMAKE_BUILD_TYPE="Release" ../aws-iot-device-sdk-cpp-v2 cmake --build . --target install
  2. Crea l'applicazione di esempio Greengrass discovery nella versione SDK per dispositivi AWS IoT 2 per C++. Esegui questa operazione:

    1. Passate alla cartella di esempio Greengrass discovery nella versione SDK per dispositivi AWS IoT 2 per C++.

      cd ../aws-iot-device-sdk-cpp-v2/samples/greengrass/basic_discovery
    2. Crea una cartella per l'output della build di esempio di Greengrass discovery e modificala.

      mkdir build cd build
    3. Crea l'applicazione di esempio Greengrass discovery.

      cmake -DCMAKE_PREFIX_PATH="~/iot-device-sdk-cpp" -DCMAKE_BUILD_TYPE="Release" .. cmake --build . --config "Release"
  3. Esegui l'applicazione Greengrass discovery di esempio. Questa applicazione prevede argomenti che specifichino il nome dell'oggetto del dispositivo client, l'argomento MQTT da utilizzare e i certificati che autenticano e proteggono la connessione. L'esempio seguente sottoscrive l'clients/MyClientDevice1/hello/worldargomento e pubblica un messaggio immesso nella riga di comando relativo allo stesso argomento.

    • Sostituire MyClientDevice1 con il nome dell'oggetto del dispositivo client.

    • Sostituisci ~/certs/AmazonRootCA1.pem con il percorso del certificato Amazon root CA sul dispositivo client.

    • Sostituisci ~/certs/device.pem.crt con il percorso del certificato del dispositivo sul dispositivo client.

    • Sostituisci ~/certs/private.pem.key con il percorso del file della chiave privata sul dispositivo client.

    • Sostituiscilo us-east-1 con la AWS regione in cui operano il dispositivo client e il dispositivo principale.

    ./basic-discovery \ --thing_name MyClientDevice1 \ --topic 'clients/MyClientDevice1/hello/world' \ --ca_file ~/certs/AmazonRootCA1.pem \ --cert ~/certs/device.pem.crt \ --key ~/certs/private.pem.key \ --region us-east-1

    L'applicazione di esempio Discovery sottoscrive l'argomento e richiede all'utente di inserire un messaggio da pubblicare.

    Connecting to group greengrassV2-coreDevice-MyGreengrassCore with thing arn arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore, using endpoint 203.0.113.0:8883 Connected to group greengrassV2-coreDevice-MyGreengrassCore, using connection to 203.0.113.0:8883 Successfully subscribed to clients/MyClientDevice1/hello/world Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press enter. Enter 'exit' to exit this program.

    Se invece l'applicazione genera un errore, consulta Risoluzione dei problemi di rilevamento di Greengrass.

  4. Inserisci un messaggio, ad esempio. Hello World!

    Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press enter. Enter 'exit' to exit this program. Hello World!

    Se l'output indica che l'applicazione ha ricevuto il messaggio MQTT sull'argomento, il dispositivo client può comunicare correttamente con il dispositivo principale.

    Operation on packetId 2 Succeeded Publish received on topic clients/MyClientDevice1/hello/world Message: Hello World!

    Puoi anche visualizzare i log di Greengrass sul dispositivo principale per verificare se il dispositivo client si connette e invia messaggi correttamente. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.

Comunicazioni di prova () JavaScript

In questa sezione, si utilizza Greengrass discovery sample nella versione SDK per dispositivi AWS IoT 2 per JavaScript testare le comunicazioni tra un dispositivo client e un dispositivo principale.

Importante

Per utilizzare la versione SDK per dispositivi AWS IoT v2 for JavaScript, un dispositivo deve eseguire Node v10.0 o versione successiva.

Per testare le comunicazioni (v2 for)SDK per dispositivi AWS IoT JavaScript
  1. Scarica e installa la SDK per dispositivi AWS IoT versione 2 sull' AWS IoT oggetto JavaScript da connettere come dispositivo client.

    Sul dispositivo client, procedi come segue:

    1. Clona il JavaScript repository SDK per dispositivi AWS IoT v2 for per scaricarlo.

      git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Installa la v2 per SDK per dispositivi AWS IoT . JavaScript

      cd aws-iot-device-sdk-js-v2 npm install
  2. Passa alla cartella di esempio Greengrass discovery nella versione 2 per SDK per dispositivi AWS IoT . JavaScript

    cd samples/node/basic_discovery
  3. Installa l'applicazione di esempio Greengrass discovery.

    npm install
  4. Esegui l'applicazione Greengrass discovery di esempio. Questa applicazione prevede argomenti che specifichino il nome dell'oggetto del dispositivo client, l'argomento e il messaggio MQTT da utilizzare e i certificati che autenticano e proteggono la connessione. L'esempio seguente invia un messaggio Hello World all'argomento. clients/MyClientDevice1/hello/world

    • Sostituire MyClientDevice1 con il nome dell'oggetto del dispositivo client.

    • Sostituisci ~/certs/AmazonRootCA1.pem con il percorso del certificato Amazon root CA sul dispositivo client.

    • Sostituisci ~/certs/device.pem.crt con il percorso del certificato del dispositivo sul dispositivo client.

    • Sostituisci ~/certs/private.pem.key con il percorso del file della chiave privata sul dispositivo client.

    • Sostituiscilo us-east-1 con la AWS regione in cui operano il dispositivo client e il dispositivo principale.

    node dist/index.js \ --thing_name MyClientDevice1 \ --topic 'clients/MyClientDevice1/hello/world' \ --message 'Hello World!' \ --ca_file ~/certs/AmazonRootCA1.pem \ --cert ~/certs/device.pem.crt \ --key ~/certs/private.pem.key \ --region us-east-1 \ --verbose warn

    L'applicazione di esempio Discovery invia il messaggio 10 volte e si disconnette. Inoltre, sottoscrive lo stesso argomento in cui pubblica i messaggi. Se l'output indica che l'applicazione ha ricevuto messaggi MQTT sull'argomento, il dispositivo client può comunicare correttamente con il dispositivo principale.

    Discovery Response: {"gg_groups":[{"gg_group_id":"greengrassV2-coreDevice-MyGreengrassCore","cores":[{"thing_arn":"arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore","connectivity":[{"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""}]}],"certificate_authorities":["-----BEGIN CERTIFICATE-----\nMIICiT...EXAMPLE=\n-----END CERTIFICATE-----\n"]}]} Trying endpoint={"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""} [WARN] [2021-06-12T00:46:45Z] [00007f90c0e8d700] [socket] - id=0x7f90b8018710 fd=26: setsockopt() for NO_SIGNAL failed with errno 92. If you are having SIGPIPE signals thrown, you may want to install a signal trap in your application layer. Connected to endpoint={"id":"203.0.113.0","host_address":"203.0.113.0","port":8883,"metadata":""} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":1} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":2} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":3} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":4} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":5} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":6} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":7} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":8} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":9} Publish received. topic:"clients/MyClientDevice1/hello/world" dup:false qos:0 retain:false {"message":"Hello World!","sequence":10} Complete!

    Se invece l'applicazione genera un errore, consulta Risoluzione dei problemi di rilevamento di Greengrass.

    Puoi anche visualizzare i log di Greengrass sul dispositivo principale per verificare se il dispositivo client si connette e invia messaggi correttamente. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.

Comunicazioni di test (Java)

In questa sezione, si utilizza Greengrass discovery sample nella versione SDK per dispositivi AWS IoT 2 per Java per testare le comunicazioni tra un dispositivo client e un dispositivo principale.

Importante

Per creare la versione SDK per dispositivi AWS IoT v2 per Java, un dispositivo deve disporre dei seguenti strumenti:

  • Java 8 o versione successiva, con JAVA_HOME puntamento alla cartella Java.

  • Apache Maven

Per testare le comunicazioni (SDK per dispositivi AWS IoT v2 per Java)
  1. Scaricate e create la SDK per dispositivi AWS IoT versione v2 per Java su un AWS IoT dispositivo da connettere come dispositivo client.

    Sul dispositivo client, effettuate le seguenti operazioni:

    1. Clona il repository SDK per dispositivi AWS IoT v2 for Java per scaricarlo.

      git clone https://github.com/aws/aws-iot-device-sdk-java-v2.git
    2. Passa alla cartella SDK per dispositivi AWS IoT v2 for Java.

    3. Crea la SDK per dispositivi AWS IoT v2 per Java.

      cd aws-iot-device-sdk-java-v2 mvn versions:use-latest-versions -Dincludes="software.amazon.awssdk.crt*" mvn clean install
  2. Esegui l'applicazione Greengrass discovery di esempio. Questa applicazione prevede argomenti che specifichino il nome dell'oggetto del dispositivo client, l'argomento MQTT da utilizzare e i certificati che autenticano e proteggono la connessione. L'esempio seguente sottoscrive l'clients/MyClientDevice1/hello/worldargomento e pubblica un messaggio immesso nella riga di comando relativo allo stesso argomento.

    • Sostituisci entrambe le istanze di MyClientDevice1 con il nome dell'oggetto del dispositivo client.

    • Sostituisci $HOME/certs/AmazonRootCA1.pem con il percorso del certificato Amazon root CA sul dispositivo client.

    • Sostituisci $HOME/certs/device.pem.crt con il percorso del certificato del dispositivo sul dispositivo client.

    • Sostituisci $HOME/certs/private.pem.key con il percorso del file della chiave privata sul dispositivo client.

    • Sostituiscilo us-east-1 con il Regione AWS luogo in cui funzionano il dispositivo client e il dispositivo principale.

    DISCOVERY_SAMPLE_ARGS="--thing_name MyClientDevice1 \ --topic 'clients/MyClientDevice1/hello/world' \ --ca_file $HOME/certs/AmazonRootCA1.pem \ --cert $HOME/certs/device.pem.crt \ --key $HOME/certs/private.pem.key \ --region us-east-1" mvn exec:java -pl samples/Greengrass \ -Dexec.mainClass=greengrass.BasicDiscovery \ -Dexec.args="$DISCOVERY_SAMPLE_ARGS"

    L'applicazione Discovery Sample sottoscrive l'argomento e richiede all'utente di inserire un messaggio da pubblicare.

    Connecting to group ID greengrassV2-coreDevice-MyGreengrassCore, with thing arn arn:aws:iot:us-east-1:123456789012:thing/MyGreengrassCore, using endpoint 203.0.113.0:8883 Started a clean session Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press Enter. Type 'exit' or 'quit' to exit this program:

    Se invece l'applicazione genera un errore, consulta Risoluzione dei problemi di rilevamento di Greengrass.

  3. Inserisci un messaggio, ad esempio. Hello World!

    Enter the message you want to publish to topic clients/MyClientDevice1/hello/world and press Enter. Type 'exit' or 'quit' to exit this program: Hello World!

    Se l'output indica che l'applicazione ha ricevuto il messaggio MQTT sull'argomento, il dispositivo client può comunicare correttamente con il dispositivo principale.

    Message received on topic clients/MyClientDevice1/hello/world: Hello World!

    Puoi anche visualizzare i log di Greengrass sul dispositivo principale per verificare se il dispositivo client si connette e invia messaggi correttamente. Per ulteriori informazioni, consulta Monitora AWS IoT Greengrass i registri.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.