Connettere un Raspberry Pi o altro dispositivo - 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à.

Connettere un Raspberry Pi o altro dispositivo

In questa sezione, configureremo un Raspberry Pi da utilizzare con. AWS IoT Se hai un altro dispositivo che desideri collegare, le istruzioni per Raspberry Pi includono riferimenti che possono aiutarti ad adattare queste istruzioni al tuo dispositivo.

Normalmente questo richiede circa 20 minuti, ma può richiedere più tempo se si hanno molti aggiornamenti del software di sistema da installare.

Importante

Adattare queste istruzioni ad altri dispositivi e sistemi operativi può essere difficile. Dovrai comprendere abbastanza bene il tuo dispositivo da poter interpretare queste istruzioni e applicarle al tuo dispositivo.

Se riscontri difficoltà durante la configurazione del dispositivo per AWS IoT, potresti provare una delle altre opzioni del dispositivo come alternativa, ad esempio o. Crea un dispositivo virtuale con Amazon EC2 Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT

Configurare il dispositivo

L'obiettivo di questo passaggio è raccogliere ciò che è necessario per configurare il dispositivo in modo che possa avviare il sistema operativo (OS), connettersi a Internet e consentire di interagire con esso tramite un'interfaccia a riga di comando.

Per completare questo tutorial, è necessario quanto segue:

  • Un Account AWS. Se non disponi dell'account, effettua la procedura descritta in Configura il tuo Account AWS prima di continuare.

  • Un modello Raspberry Pi 3 B o più recente. Questo potrebbe funzionare su versioni precedenti di Raspberry Pi, ma non sono state testate.

  • Raspberry Pi OS (32 bit) o versione successiva. Ti consigliamo di utilizzare sempre la versione più recente di Raspberry Pi OS. Le versioni precedenti del sistema operativo potrebbero funzionare, ma non sono state testate.

    Per eseguire questo esempio, non è necessario installare il desktop con l'interfaccia grafica utente (GUI); tuttavia, se sei nuovo di Raspberry Pi e l'hardware Raspberry Pi lo supporta, l'utilizzo del desktop con la GUI potrebbe essere più semplice.

  • Una WiFi connessione Ethernet o.

  • Tastiera, mouse, monitor, cavi, alimentatori e altro hardware richiesto dal dispositivo.

Importante

Prima di continuare con la fase successiva, è necessario che il sistema operativo sia installato, configurato e in esecuzione. Il dispositivo deve essere connesso a Internet e deve essere possibile accedere al dispositivo utilizzando la sua interfaccia da riga di comando. L'accesso della riga di comando può avvenire tramite tastiera, mouse e monitor collegati direttamente o utilizzando un'interfaccia remota del terminale SSH.

Se sul Raspberry Pi è in esecuzione un sistema operativo che dispone di un'interfaccia utente grafica (GUI), apri una finestra di terminale sul dispositivo ed esegui le seguenti istruzioni in tale finestra. In caso contrario, se ci si connette al dispositivo utilizzando un terminale remoto, ad esempio PuTTY, apri un terminale remoto sul dispositivo e utilizzalo.

Installa gli strumenti e le librerie necessari per AWS IoT Device SDK

Prima di installare l'SDK del AWS IoT dispositivo e il codice di esempio, assicurati che il sistema sia aggiornato e disponga degli strumenti e delle librerie necessari per installare gli SDK.

  1. Aggiorna il sistema operativo e installa le librerie richieste

    Prima di installare un AWS IoT Device SDK, esegui questi comandi in una finestra di terminale sul dispositivo per aggiornare il sistema operativo e installare le librerie richieste.

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install cmake
    sudo apt-get install libssl-dev
  2. Installa Git

    Se nel sistema operativo del tuo dispositivo non è installato Git, devi installarlo per installare AWS IoT Device SDK for JavaScript.

    1. Verifica se Git è già installato eseguendo questo comando.

      git --version
    2. Se il comando precedente restituisce la versione Git, Git è già installato ed è possibile passare alla fase 3.

    3. Se viene visualizzato un errore quando esegui il comando git, installa Git eseguendo questo comando.

      sudo apt-get install git
    4. Prova di nuovo per vedere se Git è installato eseguendo questo comando.

      git --version
    5. Se Git è installato, passa alla sezione successiva. In caso contrario, risolvi e correggi l'errore prima di continuare. Hai bisogno di Git per installare l'SDK AWS IoT del dispositivo. JavaScript

Installa AWS IoT Device SDK

Installa l'SDK AWS IoT del dispositivo.

Python

In questa sezione installerai Python, i suoi strumenti di sviluppo e AWS IoT Device SDK for Python sul tuo dispositivo. Queste istruzioni sono per un Raspberry Pi con il sistema operativo Raspberry Pi più recente. Se disponi di un altro dispositivo o utilizzi un altro sistema operativo, potrebbe essere necessario adattare queste istruzioni per il dispositivo.

  1. Installa Python e i suoi strumenti di sviluppo

    Il AWS IoT Device SDK for Python richiede l'installazione di Python v3.5 o versione successiva sul tuo Raspberry Pi.

    In una finestra di terminale del dispositivo, esegui questi comandi.

    1. Esegui questo comando per determinare la versione di Python installata sul dispositivo.

      python3 --version

      Se Python è installato, mostrerà la sua versione.

    2. Se la versione visualizzata è Python 3.5 o superiore, puoi passare alla fase 2.

    3. Se la versione visualizzata è inferiore a Python 3.5, puoi installare la versione corretta eseguendo questo comando.

      sudo apt install python3
    4. Esegui questo comando per confermare che la versione corretta di Python è ora installata.

      python3 --version
  2. Test per pip3

    In una finestra di terminale del dispositivo, esegui questi comandi.

    1. Esegui questo comando per vedere se pip3 è installato.

      pip3 --version
    2. Se il comando restituisce un numero di versione, pip3 è installato e puoi passare alla fase 3.

    3. Se il comando precedente restituisce un errore, esegui questo comando per installare pip3.

      sudo apt install python3-pip
    4. Esegui questo comando per vedere se pip3 è installato.

      pip3 --version
  3. Installa l'attuale AWS IoT Device SDK per Python

    Installa AWS IoT Device SDK for Python e scarica le app di esempio sul tuo dispositivo.

    Sul dispositivo, esegui questi comandi.

    cd ~ python3 -m pip install awsiotsdk
    git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
JavaScript

In questa sezione installerai Node.js, il gestore di pacchetti npm e AWS IoT Device SDK for JavaScript sul tuo dispositivo. Queste istruzioni sono per un Raspberry Pi che esegue il sistema operativo Raspberry Pi. Se disponi di un altro dispositivo o utilizzi un altro sistema operativo, potrebbe essere necessario adattare queste istruzioni per il dispositivo.

  1. Installare la versione più recente di Node.js

    Il AWS IoT Device SDK for JavaScript richiede l'installazione di Node.js e del gestore di pacchetti npm sul tuo Raspberry Pi.

    1. Scarica la versione più recente del repository Node immettendo questo comando.

      cd ~ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    2. Installa Node e npm.

      sudo apt-get install -y nodejs
    3. Verifica l'installazione di Node.

      node -v

      Verifica che il comando visualizzi la versione di Node. Questo tutorial richiede Node 10.0 o versioni successive. Se la versione di Node non viene visualizzata, prova a scaricare di nuovo il repository di Node.

    4. Verifica l'installazione di npm.

      npm -v

      Conferma che il comando visualizzi la versione di npm. Se la versione npm non viene visualizzata, provare a installare nuovamente Node e npm.

    5. Riavviare il dispositivo.

      sudo shutdown -r 0

      Continua dopo il riavvio del dispositivo.

  2. Installa il Device SDK per AWS IoT JavaScript

    Installa il AWS IoT Device SDK for JavaScript sul tuo Raspberry Pi.

    1. Clona il AWS IoT Device SDK for JavaScript repository nella aws-iot-device-sdk-js-v2 directory della tua home directory. Sul Raspberry Pi, la directory Pagina principale è ~/, utilizzata come Pagina principale nei seguenti comandi. Se il dispositivo utilizza un percorso diverso per la directory Pagina principale, è necessario sostituire ~/ con il percorso corretto per il dispositivo nei seguenti comandi.

      Questi comandi creano la directory ~/aws-iot-device-sdk-js-v2 e copiano il codice SDK in esso.

      cd ~ git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
    2. Passa alla directory aws-iot-device-sdk-js-v2 creata nella fase precedente ed esegui npm install per installare l'SDK. Il comando npm install chiama la compilazione della libreria aws-crt, operazione che può richiedere alcuni minuti.

      cd ~/aws-iot-device-sdk-js-v2 npm install

Installazione ed esecuzione dell'applicazione di esempio

In questa sezione, installerai ed eseguirai l'app di pubsub esempio disponibile nel Device SDK. AWS IoT Questa app mostra come il tuo dispositivo utilizza la libreria MQTT per pubblicare ed effettuare la sottoscrizione ai messaggi MQTT. L'app di esempio sottoscrive un argomento topic_1, pubblica 10 messaggi in tale argomento e visualizza i messaggi ricevuti dal broker di messaggi.

Installazione dei file di certificato

L'app di esempio richiede i file di certificato che autenticano il dispositivo da installare sul dispositivo.

Per installare i file di certificato del dispositivo per l'app di esempio
  1. Crea una sottodirectory certs nella directory Pagina principale eseguendo questi comandi.

    cd ~ mkdir certs
  2. Copia nella directory ~/certs il certificato, la chiave privata e il certificato CA root creato precedentemente in Crea AWS IoT risorse.

    La modalità di copia dei file di certificato sul dispositivo dipende dal dispositivo e dal sistema operativo e non è descritto qui. Tuttavia, se il dispositivo supporta un'interfaccia utente grafica (GUI) e dispone di un browser Web, è possibile eseguire la procedura descritta in Crea AWS IoT risorse dal browser web del dispositivo per scaricare i file risultanti direttamente sul dispositivo.

    I comandi della sezione successiva presuppongono che i file di chiave e certificato siano memorizzati sul dispositivo, come illustrato in questa tabella.

    Nomi dei file dei certificati

    File

    Percorso del file

    Un certificato emesso da una CA root

    ~/certs/Amazon-root-CA-1.pem

    Certificato del dispositivo

    ~/certs/device.pem.crt

    Chiave privata

    ~/certs/private.pem.key

Per eseguire l'app di esempio sono necessarie le seguenti informazioni:

Valori dei parametri dell'applicazione

Parametro

Dove trovare il valore

your-iot-endpoint

Nella console AWS IoT, scegli All devices (Tutti i dispositivi) e quindi Things (Oggetti).

Nella pagina Impostazioni del AWS IoT menu. L'endpoint viene visualizzato nella sezione Device data endpoint (Endpoint dei dati del dispositivo).

Il your-iot-endpointvalore ha un formato di:endpoint_id-ats.iot.region.amazonaws.com, ad esempio,a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Python
Per installare ed eseguire l'app di esempio
  1. Passa alla directory delle app di esempio.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Nella finestra della riga di comando, sostituisci your-iot-endpointcome indicato ed esegui questo comando.

    python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Osserva che l'applicazione di esempio:

    1. Si connette al AWS IoT servizio del tuo account.

    2. Sottoscrive l'argomento del messaggio topic_1 e visualizza i messaggi ricevuti su tale argomento.

    3. Pubblica 10 messaggi su questo argomento topic_1.

    4. L'output sia simile a quello riportato di seguito:

    Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'... Connected! Subscribing to topic 'topic_1'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'topic_1': Hello World! [1] Received message from topic 'topic_1': b'Hello World! [1]' Publishing message to topic 'topic_1': Hello World! [2] Received message from topic 'topic_1': b'Hello World! [2]' Publishing message to topic 'topic_1': Hello World! [3] Received message from topic 'topic_1': b'Hello World! [3]' Publishing message to topic 'topic_1': Hello World! [4] Received message from topic 'topic_1': b'Hello World! [4]' Publishing message to topic 'topic_1': Hello World! [5] Received message from topic 'topic_1': b'Hello World! [5]' Publishing message to topic 'topic_1': Hello World! [6] Received message from topic 'topic_1': b'Hello World! [6]' Publishing message to topic 'topic_1': Hello World! [7] Received message from topic 'topic_1': b'Hello World! [7]' Publishing message to topic 'topic_1': Hello World! [8] Received message from topic 'topic_1': b'Hello World! [8]' Publishing message to topic 'topic_1': Hello World! [9] Received message from topic 'topic_1': b'Hello World! [9]' Publishing message to topic 'topic_1': Hello World! [10] Received message from topic 'topic_1': b'Hello World! [10]' 10 message(s) received. Disconnecting... Disconnected!

    In caso di problemi nell'esecuzione dell'app di esempio, consulta Risolvi i problemi con l'app di esempio.

    È inoltre possibile aggiungere il parametro --verbosity Debug alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero fornirti l'aiuto necessario per risolvere il problema.

JavaScript
Per installare ed eseguire l'app di esempio
  1. Nella finestra a riga di comando passa alla directory ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub che l'SDK ha creato e installa l'app di esempio utilizzando questi comandi. Il comando npm install chiama la compilazione della libreria aws-crt, operazione che può richiedere alcuni minuti.

    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub npm install
  2. Nella finestra della riga di comando, sostituisci your-iot-endpointcome indicato ed esegui questo comando.

    node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
  3. Osserva che l'applicazione di esempio:

    1. Si connette al AWS IoT servizio del tuo account.

    2. Sottoscrive l'argomento del messaggio topic_1 e visualizza i messaggi ricevuti su tale argomento.

    3. Pubblica 10 messaggi su questo argomento topic_1.

    4. L'output sia simile a quello riportato di seguito:

    Publish received on topic topic_1 {"message":"Hello world!","sequence":1} Publish received on topic topic_1 {"message":"Hello world!","sequence":2} Publish received on topic topic_1 {"message":"Hello world!","sequence":3} Publish received on topic topic_1 {"message":"Hello world!","sequence":4} Publish received on topic topic_1 {"message":"Hello world!","sequence":5} Publish received on topic topic_1 {"message":"Hello world!","sequence":6} Publish received on topic topic_1 {"message":"Hello world!","sequence":7} Publish received on topic topic_1 {"message":"Hello world!","sequence":8} Publish received on topic topic_1 {"message":"Hello world!","sequence":9} Publish received on topic topic_1 {"message":"Hello world!","sequence":10}

    In caso di problemi nell'esecuzione dell'app di esempio, consulta Risolvi i problemi con l'app di esempio.

    È inoltre possibile aggiungere il parametro --verbosity Debug alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero fornirti l'aiuto necessario per risolvere il problema.

Visualizza i messaggi dell'app di esempio nella AWS IoT console

È possibile visualizzare i messaggi dell'app di esempio durante il passaggio attraverso il broker di messaggi utilizzando il client di test MQTT nella console AWS IoT .

Per visualizzare i messaggi MQTT pubblicati dall'app di esempio
  1. Verificare Visualizza i messaggi MQTT con il AWS IoT client MQTT. In questo modo si impara come utilizzare il client di test MQTT nella console AWS IoT per visualizzare i messaggi MQTT durante il passaggio attraverso il broker di messaggi.

  2. Apri il client di test MQTT nella console AWS IoT .

  3. Effettua la sottoscrizione all'argomento topic_1.

  4. Nella finestra a riga di comando, esegui di nuovo l'app di esempio e guarda i messaggi nel Client MQTT nella console AWS IoT .

    Python
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    JavaScript
    cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint