

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejecución de pruebas de Bluetooth de bajo consumo
<a name="afr-bridgekeeper-dt-bt"></a>

En esta sección se describe cómo configurar y ejecutar pruebas de Bluetooth de bajo consumo con AWS IoT Device Tester Freertos.

 Las pruebas de Bluetooth no son obligatorias para la cualificación principal. Si no desea realizar pruebas en su dispositivo con el soporte de Bluetooth para FreeRTOS, puede omitir esta configuración, asegúrese de establecer la característica BLE de device.json en `No`.

## Requisitos previos
<a name="dt-bt-prereq"></a>
+ Siga las instrucciones en [Primera prueba de su placa de microcontrolador](qual-steps.md).
+ Un Raspberry Pi 4B o 3B\$1. (necesario para ejecutar la aplicación complementaria de Raspberry Pi BLE)
+ Una tarjeta microSD y un adaptador de tarjeta SD para el software de Raspberry Pi.

 

## Configuración de Raspberry Pi
<a name="dt-bt-pi-setup"></a>

Para probar las capacidades de BLE del dispositivo a prueba (DUT), tiene que tener un Raspberry Pi modelo 4B o 3B\$1.

**Configuración de Raspberry Pi y realización de las pruebas de BLE**

1. Descargue una de las imágenes de Yocto que contenga el software necesario para realizar las pruebas.
   + [ Imagen para Raspberry Pi 4B](https://docs.aws.amazon.com/freertos/latest/userguide/freertos/IDTFR_BLE_RaspberryPi4B_1.0.0_2021-04-13.rpi-sd.img) 
   + [ Imagen para 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**  
La imagen de Yocto solo debe usarse para realizar pruebas con AWS IoT Device Tester FreeRTOS y no para ningún otro propósito.

1. Instale la imagen de Yocto en la tarjeta SD para Raspberry Pi.

   1. Mediante una herramienta de escritura en tarjetas SD como[Etcher](https://www.balena.io/etcher), instale el archivo `image-name.rpi-sd.img` que ha descargado en la tarjeta SD. Dado que la imagen del sistema operativo es grande, este paso puede tardar un tiempo. A continuación, extraiga la tarjeta SD del equipo e inserte la tarjeta microSD en Raspberry Pi.

1. Configure su Raspberry Pi.

   1. Para la primera operación de inicio, le recomendamos que conecte el Raspberry Pi a un monitor, un teclado y un ratón.

   1. Conecte el Raspberry Pi a una fuente de alimentación micro-USB.

   1. Inicie sesión con las credenciales predeterminadas. En el ID de usuario, introduzca **root**. En la contraseña, introduzca **idtafr**.

   1. Mediante una conexión Ethernet o Wi-Fi, conecte el Raspberry Pi a su red.

      1. Para conectar el Raspberry Pi mediante Wi-Fi, abra `/etc/wpa_supplicant.conf` en el Raspberry Pi y añada sus credenciales de Wi-Fi a la configuración de `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. Ejecute `ifup wlan0` para iniciar la configuración del Wi-Fi. La conexión a su red Wi-Fi puede tardar un minuto.

   1. Para una conexión Ethernet, ejecute `ifconfig eth0`. Para una conexión Wi-Fi, ejecute `ifconfig wlan0`. Anote la dirección IP, que aparece como `inet addr` en la salida del comando. Necesitará la dirección IP más adelante en este procedimiento.

   1. (Opcional) Las pruebas ejecutan comandos en el Raspberry Pi a través de SSH mediante las credenciales predeterminadas de la imagen de Yocto. Para aumentar la seguridad, le recomendamos que establezca una autenticación de clave pública en SSH y desactive SSH mediante contraseña.

      1. Cree una clave de SSH mediante el comando `ssh-keygen` de OpenSSL. Si ya tienes un par de claves SSK en tu ordenador host, se recomienda crear uno nuevo AWS IoT Device Tester para permitir que Freertos inicie sesión en tu Raspberry Pi.
**nota**  
Windows no incluye un cliente SSH instalado. Para obtener más información acerca de cómo instalar un cliente SSH en Windows, consulte [Descargar el software SSH](https://www.ssh.com/ssh/#sec-Download-client-software).

      1. El comando `ssh-keygen` le solicita un nombre y la ruta para almacenar el par de claves. De forma predeterminada, los archivos de par de claves se denominan `id_rsa` (clave privada) y `id_rsa.pub` (clave pública). En macOS y Linux, la ubicación predeterminada de estos archivos es `~/.ssh/`. En Windows, la ubicación predeterminada es `C:\Users\user-name`.

      1. Cuando se le solicite una frase clave, pulse INTRO para continuar.

      1. Para añadir tu clave SSH a tu Raspberry Pi AWS IoT Device Tester para que Freertos pueda iniciar sesión en el dispositivo, usa `ssh-copy-id` el comando desde tu ordenador host. Este comando añade su clave pública al archivo `~/.ssh/authorized_keys` del Raspberry Pi.

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

      1. Cuando se le solicite una contraseña, introduzca **idtafr**. Esta es la contraseña predeterminada para la imagen de Yocto.
**nota**  
El comando `ssh-copy-id` asume que la clave pública se denomina `id_rsa.pub`. En macOS y Linux, la ubicación predeterminada es ` ~/.ssh/`. En Windows, la ubicación predeterminada es `C:\Users\user-name\.ssh`. Si asignó a la clave pública un nombre diferente o la almacenó en otra ubicación, debe especificar la ruta completa a su clave pública SSH utilizando la opción `-i` para `ssh-copy-id` (por ejemplo: `ssh-copy-id -i ~/my/path/myKey.pub`). Para obtener más información acerca de la creación de claves de SSH y la copia de las claves públicas, consulte [SSH-COPY-ID](https://www.ssh.com/ssh/copy-id).

      1. Para comprobar si la autenticación de clave pública funciona, ejecute `ssh -i /my/path/myKey root@raspberry-pi-device-ip`.

         Si no se le solicita una contraseña, la autenticación de clave pública funciona.

      1. Compruebe que puede iniciar sesión en su Raspberry Pi mediante una clave pública y, a continuación, desactive SSH mediante contraseña.

         1. En el Raspberry Pi, edite el archivo `/etc/ssh/sshd_config`.

         1. Establezca el atributo `PasswordAuthentication` en `no`.

         1. Guarde y cierre el archivo `sshd_config`.

         1. Vuelva a cargar el servidor SSH mediante el comando `/etc/init.d/sshd reload`.

   1. Cree un archivo `resource.json`.

      1. En el directorio en el que extrajo AWS IoT Device Tester, cree un archivo con el nombre. `resource.json`

      1. Añada la siguiente información sobre su Raspberry Pi al archivo y *rasp-pi-ip-address* sustitúyala por la dirección IP de su 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. Si ha optado por no utilizar una autenticación de clave pública para SSH, añada lo siguiente a la sección `connectivity` del archivo `resource.json`.

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

      1. (Opcional) si elige utilizar una autenticación de clave pública para SSH, añada lo siguiente a la sección `connectivity` del archivo `resource.json`.

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

## Configuración del dispositivo FreeRTOS
<a name="afr-device-setup"></a>

En el archivo `device.json`, establezca la característica `BLE` en `Yes`. Si comienza con un archivo `device.json` desde antes de que las pruebas de Bluetooth estén disponibles, tiene que añadir la característica de BLE a la matriz de `features`:

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

## Ejecución de las pruebas de BLE
<a name="running-ble-test"></a>

Una vez que active la característica BLE en `device.json`, las pruebas de BLE se ejecutan cuando ejecute `devicetester_[linux | mac | win_x86-64] run-suite` *sin especificar un group-id*.

Si desea ejecutar las pruebas de BLE de forma independiente, puede especificar el ID de grupo de BLE: `devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE`.

Para que el desempeño sea más fiable, coloque su Raspberry Pi cerca del dispositivo a prueba (DUT).

## Resolución de problemas de las pruebas de BLE
<a name="troubleshooting-ble"></a>

Asegúrese de que ha seguido los pasos que se indican en [Primera prueba de su placa de microcontrolador](qual-steps.md). Si se produce un error con las pruebas que no pertenecen a la característica de BLE, es probable que el problema no se deba a la configuración de Bluetooth.