

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
<a name="connecting-to-existing-device"></a>

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.

**Topics**
+ [Configurare il dispositivo](#gs-device-prereqs)
+ [Installa gli strumenti e le librerie necessari per AWS IoT Device SDK](#gs-device-sdk-tools)
+ [Installa AWS IoT Device SDK](#gs-device-install-sdk)
+ [Installazione ed esecuzione dell'applicazione di esempio](#gs-device-node-app-run)
+ [Visualizza i messaggi dell'app di esempio nella AWS IoT console](#gs-device-view-msg)

**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](creating-a-virtual-thing.md) [Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT](using-laptop-as-device.md)

## Configurare il dispositivo
<a name="gs-device-prereqs"></a>

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 [Configurare Account AWS](setting-up.md) prima di continuare.
+ Un [modello Raspberry Pi 3 B](https://www.raspberrypi.com/products/) o più recente. Questo potrebbe funzionare su versioni precedenti di Raspberry Pi, ma non sono state testate.
+ [Raspberry Pi OS (32 bit)](https://www.raspberrypi.com/software/operating-systems/) 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
<a name="gs-device-sdk-tools"></a>

Prima di installare il AWS IoT Device SDK e il codice di esempio, assicurati che il sistema sia aggiornato e disponga degli strumenti e delle librerie necessari per installare. SDKs

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 del 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
   ```

1. 

**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
      ```

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

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

      ```
      sudo apt-get install git
      ```

   1. Prova di nuovo per vedere se Git è installato eseguendo questo comando.

      ```
      git --version
      ```

   1. 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
<a name="gs-device-install-sdk"></a>

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.

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

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

      ```
      sudo apt install python3
      ```

   1. Esegui questo comando per confermare che la versione corretta di Python è ora installata.

      ```
      python3 --version
      ```

1. 

**Test per pip3**  
In una finestra di terminale del dispositivo, esegui questi comandi.

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

      ```
      pip3 --version
      ```

   1. Se il comando restituisce un numero di versione, **pip3** è installato e puoi passare alla fase 3.

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

      ```
      sudo apt install python3-pip
      ```

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

      ```
      pip3 --version
      ```

1. 

**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 -
      ```

   1. Installa Node e npm.

      ```
      sudo apt-get install -y nodejs
      ```

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

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

   1. Riavviare il dispositivo.

      ```
      sudo shutdown -r 0
      ```

      Continua dopo il riavvio del dispositivo.

1. 

**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 directory della `aws-iot-device-sdk-js-v2` tua directory. {{home}} Sul Raspberry Pi, la {{home}} directory è`~/`, che viene utilizzata come {{home}} directory nei seguenti comandi. Se il dispositivo utilizza un percorso diverso per la {{home}} directory, è necessario sostituirlo `~/` 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
      ```

   1. 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
<a name="gs-device-node-app-run"></a>

In questa sezione, installerai ed eseguirai l'app di `pubsub` esempio disponibile nel AWS IoT Device SDK. 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 `certs` sottodirectory nella tua {{home}} directory eseguendo questi comandi.

   ```
   cd ~
   mkdir certs
   ```

1. Copia nella directory `~/certs` il certificato, la chiave privata e il certificato CA root creato precedentemente in [Crea AWS IoT risorse](create-iot-resources.md).

   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](create-iot-resources.md) 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**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/connecting-to-existing-device.html)

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](https://console.aws.amazon.com/iot/home), scegli **All devices** (Tutti i dispositivi) e quindi **Things** (Oggetti).<br />Nella pagina **Impostazioni** del AWS IoT menu. L'endpoint viene visualizzato nella sezione **Device data endpoint** (Endpoint dei dati del dispositivo). | 

Il {{your-iot-endpoint}} valore 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
   ```

1. Nella finestra della riga di comando, sostituisci {{your-iot-endpoint}} come 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}}
   ```

1. Osserva che l'applicazione di esempio:

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

   1. Sottoscrive l'argomento del messaggio **topic\_1** e visualizza i messaggi ricevuti su tale argomento.

   1. Pubblica 10 messaggi sull’argomento **topic\_1**.

   1. 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'applicazione di esempio](gs-device-troubleshoot.md).

   È 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
   ```

1. Nella finestra della riga di comando, sostituisci {{your-iot-endpoint}} come 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}}
   ```

1. Osserva che l'applicazione di esempio:

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

   1. Sottoscrive l'argomento del messaggio **topic\_1** e visualizza i messaggi ricevuti su tale argomento.

   1. Pubblica 10 messaggi sull’argomento **topic\_1**.

   1. 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'applicazione di esempio](gs-device-troubleshoot.md).

   È 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
<a name="gs-device-view-msg"></a>

È 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](view-mqtt-messages.md). 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.

1. Apri il **client di test MQTT** nella **console AWS IoT **.

1. Effettua la sottoscrizione all'argomento **topic\_1**.

1. 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}}
   ```

------