

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

# Esegui i test Bluetooth Low Energy
<a name="afr-bridgekeeper-dt-bt"></a>

Questa sezione descrive come configurare ed eseguire i test Bluetooth Low Energy utilizzando AWS IoT Device Tester FreerTOS.

 I test Bluetooth non sono richiesti per la qualifica core. Se non vuoi testare il tuo dispositivo con il supporto Bluetooth di FreerTOS puoi saltare questa configurazione, assicurati di lasciare la funzionalità BLE in device.json impostata su. `No`

## Prerequisiti
<a name="dt-bt-prereq"></a>
+ Segui le istruzioni in [Primo test della scheda del microcontrollore](qual-steps.md).
+ Un Raspberry Pi 4B o 3B\$1. Obbligatorio per eseguire l'applicazione companion Raspberry Pi BLE.
+ Una scheda microSD e una scheda SD per il software Raspberry Pi.

 

## Configurazione di Raspberry Pi
<a name="dt-bt-pi-setup"></a>

Per testare le funzionalità BLE del dispositivo in prova (DUT), è necessario disporre di un Raspberry Pi Model 4B o 3B\$1.

**Per configurare il Raspberry Pi per eseguire i test BLE**

1. Scarica una delle immagini Yocto personalizzate che contengono il software necessario per eseguire i test.
   + [Immagine per Raspberry Pi 4B](https://docs.aws.amazon.com/freertos/latest/userguide/freertos/IDTFR_BLE_RaspberryPi4B_1.0.0_2021-04-13.rpi-sd.img) 
   + [Immagine per Raspberry Pi 3B\$1](https://docs.aws.amazon.com/freertos/latest/userguide/freertos/IDTFR_BLE_RaspberryPi3Bplus_1.0.0_2021-04-13.rpi-sd.img) 
**Nota**  
L'immagine Yocto deve essere usata solo per i test con AWS IoT Device Tester FreerTOS e non per altri scopi.

1. Memorizzare sulla memoria flash l'immagine Yocto sulla scheda SD per Raspberry Pi.

   1. Utilizzando uno strumento di scrittura per scheda SD come [Etcher](https://www.balena.io/etcher), memorizzare sulla memoria flash il file `image-name.rpi-sd.img` scaricato sulla scheda SD. Poiché l'immagine del sistema operativo è di grandi dimensioni, l'operazione potrebbe richiedere alcuni minuti. Espelli la scheda SD dal computer e inserisci la scheda microSD nel Raspberry Pi.

1. Configurare il Raspberry Pi.

   1. Per il primo avvio, ti consigliamo di connettere il Raspberry Pi a un monitor, una tastiera e un mouse.

   1. Collegare il Raspberry Pi a una fonte di alimentazione micro USB.

   1. Accedere utilizzando le credenziali predefinite. Per ID utente, immettere **root**. Per la password, immettere **idtafr**.

   1. Utilizzando una connessione Wi-Fi o Ethernet, connettere il Raspberry Pi alla rete.

      1. Per collegare il Raspberry Pi tramite Wi-Fi, aprire `/etc/wpa_supplicant.conf` sul Raspberry Pi e aggiungere le credenziali Wi-Fi alla configurazione di `Network`.

         ```
         ctrl_interface=/var/run/wpa_supplicant
         ctrl_interface_group=0
         update_config=1
         
         network={
                 scan_ssid=1
                 ssid="your-wifi-ssid"
                 psk="your-wifi-password"
                 }
         ```

      1. Eseguire `ifup wlan0` per avviare la connessione Wi-Fi. Potrebbe essere necessario qualche minuto per la connessione alla rete Wi-Fi.

   1. Per una connessione Ethernet, eseguire `ifconfig eth0`. Per una connessione Wi-Fi, eseguire `ifconfig wlan0`. Annotare l'indirizzo IP che viene visualizzato come `inet addr` nell'output del comando. L'indirizzo IP sarà necessario più avanti in questa procedura.

   1. (Facoltativo) I test eseguono i comandi sul Raspberry Pi tramite SSH utilizzando le credenziali predefinite per l'immagine yocto. Per una maggiore sicurezza, si consiglia di impostare l'autenticazione della chiave pubblica per SSH e disabilitare l'SSH basato su password.

      1. Creare un chiave SSH utilizzando il comando `ssh-keygen` OpenSSL. Se hai già una coppia di chiavi SSK sul tuo computer host, è consigliabile crearne una nuova AWS IoT Device Tester per consentire a FreerTOS di accedere al tuo Raspberry Pi.
**Nota**  
Windows non viene fornito con un client SSH preinstallato. Per informazioni su come installare un client SSH su Windows, consultare l'argomento che descrive come [scaricare il software SSH](https://www.ssh.com/ssh/#sec-Download-client-software).

      1. Il comando `ssh-keygen` richiede di specificare un nome e un percorso di archiviazione della coppia di chiavi. Per impostazione predefinita, i file della coppia di chiavi sono `id_rsa` (chiave privata) e `id_rsa.pub` (chiave pubblica). In macOS e Linux, il percorso predefinito di questi file è `~/.ssh/`. In Windows, la posizione predefinita è `C:\Users\user-name`.

      1. Quando viene richiesta una frase chiave, è sufficiente premere INVIO per continuare.

      1. Per aggiungere la tua chiave SSH al tuo Raspberry Pi in modo che AWS IoT Device Tester FreerTOS possa accedere al dispositivo, usa il `ssh-copy-id` comando dal tuo computer host. Questo comando aggiunge la chiave pubblica al file `~/.ssh/authorized_keys` sul Raspberry Pi.

         `ssh-copy-id root@raspberry-pi-ip-address`

      1. Quando viene richiesta una password, immettere **idtafr**. Questa è la password predefinita per l'immagine yocto.
**Nota**  
Il comando `ssh-copy-id` presume che la chiave pubblica sia denominata `id_rsa.pub`. Su macOS e Linux, la posizione predefinita è ` ~/.ssh/`. In Windows, la posizione predefinita è `C:\Users\user-name\.ssh`. Se hai attribuito un nome diverso alla chiave pubblica o la hai archiviata in una posizione diversa, devi specificare il percorso completo della chiave pubblica SSH con l'opzione `-i` di `ssh-copy-id`, ad esempio `ssh-copy-id -i ~/my/path/myKey.pub`. Per ulteriori informazioni sulla creazione di chiavi SSH e sulla copia di chiavi pubbliche, consulta [SSH-COPY-ID](https://www.ssh.com/ssh/copy-id).

      1. Per verificare che l'autenticazione della chiave pubblica funzioni, eseguire `ssh -i /my/path/myKey root@raspberry-pi-device-ip`.

         Se non viene richiesta una password, l'autenticazione della chiave pubblica è attiva.

      1. Verificare che sia possibile accedere al Raspberry Pi utilizzando una chiave pubblica e quindi disabilitare SSH basato su password.

         1. Sul Raspberry Pi, modificare il file `/etc/ssh/sshd_config`.

         1. Impostare l'attributo `PasswordAuthentication` su `no`.

         1. Salvare e chiudere il file `sshd_config`.

         1. Ricaricare il server SSH eseguendo `/etc/init.d/sshd reload`.

   1. Creare un file `resource.json`.

      1. Nella directory in cui hai estratto AWS IoT Device Tester, crea un file denominato. `resource.json`

      1. Aggiungi le seguenti informazioni sul tuo Raspberry Pi al file, sostituendole *rasp-pi-ip-address* con l'indirizzo IP del tuo Raspberry Pi.

         ```
         [
             {
                 "id": "ble-test-raspberry-pi",
                 "features": [
                     {"name":"ble", "version":"4.2"}
                 ],
                 "devices": [
                     {
                         "id": "ble-test-raspberry-pi-1",
                         "connectivity": {
                             "protocol": "ssh",
                             "ip": "rasp-pi-ip-address"
                         }
                     }
                 ]
             }
         ]
         ```

      1. Se non hai scelto di utilizzare l'autenticazione a chiave pubblica per SSH, aggiungi quanto segue alla `connectivity` sezione del file. `resource.json`

         ```
         "connectivity": {
             "protocol": "ssh",
             "ip": "rasp-pi-ip-address",
             "auth": {
                 "method": "password",
                 "credentials": {
                     "user": "root",
                     "password": "idtafr"
                 }
             }
         }
         ```

      1. (Facoltativo) Se è stato scelto di utilizzare l'autenticazione della chiave pubblica per SSH, aggiungere quanto segue alla sezione `connectivity` del file `resource.json`.

         ```
         "connectivity": {
             "protocol": "ssh",
             "ip": "rasp-pi-ip-address",
             "auth": {
                 "method": "pki",
                 "credentials": {
                     "user": "root",
                     "privKeyPath": "location-of-private-key"
                 }
             }
         }
         ```

## Configurazione del dispositivo FreerTOS
<a name="afr-device-setup"></a>

Nel file `device.json`, imposta la caratteristica `BLE` su `Yes`. Se si inizia da un file `device.json` prima che i test Bluetooth fossero disponibili, è necessario aggiungere la caratteristica per BLE all'array `features`:

```
{
    ...
    "features": [
        {
            "name": "BLE",
            "value": "Yes"
        },
    ...
}
```

## Esegui i test BLE
<a name="running-ble-test"></a>

Dopo aver abilitato la caratteristica BLE in `device.json`, i test BLE vengono eseguiti quando esegui `devicetester_[linux | mac | win_x86-64] run-suite` *senza specificare un ID gruppo*.

Se vuoi eseguire i test BLE separatamente, puoi specificare l'ID gruppo per BLE: `devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE`.

Per le prestazioni più affidabili, posiziona il Raspberry Pi vicino al dispositivo sottoposto a test.

## Risolvi i problemi relativi ai test BLE
<a name="troubleshooting-ble"></a>

Verifica di aver seguito i passaggi descritti in [Primo test della scheda del microcontrollore](qual-steps.md). Se i test diversi da BLE non riescono, il problema probabilmente non è dovuto alla configurazione Bluetooth.