

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Executar testes de Bluetooth Low Energy
<a name="afr-bridgekeeper-dt-bt"></a>

Esta seção descreve como configurar e executar testes Bluetooth Low Energy usando AWS IoT Device Tester FreeRTOS.

 Os testes Bluetooth não são necessários para a qualificação principal. Se você não deseja testar seu dispositivo com o suporte a Bluetooth do FreeRTOS, pode ignorar esta configuração. Deixe o recurso BLE no device.json definido como `No`.

## Pré-requisitos
<a name="dt-bt-prereq"></a>
+ Siga as instruções em [Primeiro teste da sua placa de microcontrolador](qual-steps.md).
+ Um Raspberry Pi 4B ou 3B\$1. (Obrigatório para executar a aplicação complementar Raspberry Pi BLE)
+ Um micro cartão SD e adaptador de cartão SD para o software Raspberry Pi.

 

## Configuração do Raspberry Pi
<a name="dt-bt-pi-setup"></a>

Para testar os recursos de BLE do dispositivo em teste (DUT), você deve ter um Raspberry Pi Modelo 4B ou 3B\$1.

**Para configurar o Raspberry Pi para executar testes de BLE**

1. Baixe uma das imagens Yocto personalizadas que contenham o software necessário para executar os testes.
   + [Imagem 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) 
   + [Imagem 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**  
A imagem do Yocto só deve ser usada para testes com AWS IoT Device Tester FreeRTOS e não para qualquer outra finalidade.

1. Atualize a imagem yocto no cartão SD do Raspberry Pi.

   1. Usando uma ferramenta de gravação de cartão SD, como [Etcher](https://www.balena.io/etcher), instale o arquivo `image-name.rpi-sd.img` obtido por download no cartão SD. Como a imagem do sistema operacional é grande, essa etapa deve levar algum tempo. Depois ejete seu cartão SD do computador e insira o cartão microSD no seu Raspberry Pi.

1. Configure seu Raspberry Pi.

   1. Durante a primeira inicialização, recomendamos que você conecte o Raspberry Pi a um monitor, teclado e mouse.

   1. Conecte seu Raspberry Pi a uma fonte de alimentação micro USB.

   1. Faça login usando as credenciais padrão. Para ID de usuário, insira **root**. Para senha, insira **idtafr**.

   1. Usando uma conexão Wi-Fi ou Ethernet, conecte o Raspberry Pi à sua rede.

      1. Para conectar seu Raspberry Pi por Wi-Fi, abra `/etc/wpa_supplicant.conf` no Raspberry Pi e adicione suas credenciais Wi-Fi à configuração 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. Execute `ifup wlan0` para iniciar a conexão Wi-Fi. Pode levar alguns minutos para se conectar à sua rede Wi-Fi.

   1. Para uma conexão Ethernet, execute `ifconfig eth0`. Para uma conexão Wi-Fi, execute `ifconfig wlan0`. Anote o endereço IP, que aparece como `inet addr` na saída do comando. Você precisa do endereço IP posteriormente neste procedimento.

   1. (Opcional) Os testes executam comandos no Raspberry Pi sobre SSH usando as credenciais padrão para a imagem yocto. Para segurança adicional, recomendamos que você configure a autenticação de chave pública para SSH e desative o SSH baseado em senha.

      1. Crie uma chave SSH usando o comando OpenSSL `ssh-keygen`. Se você já tem um par de chaves SSK no seu computador host, é uma prática recomendada criar um novo AWS IoT Device Tester para permitir que os FreeRTOS façam login no seu Raspberry Pi.
**nota**  
O Windows não vem com um cliente SSH instalado. Para obter informações sobre como instalar um cliente SSH no Windows, consulte [Como fazer download do software SSH](https://www.ssh.com/ssh/#sec-Download-client-software).

      1. O comando `ssh-keygen` solicita que você informe um nome e caminho para armazenar o par de chaves. Por padrão, os arquivos de pares de chaves são nomeados como `id_rsa` (chave privada) e `id_rsa.pub` (chave pública). No macOS e no Linux, o local padrão desses arquivos é `~/.ssh/`. No Windows, o local padrão é `C:\Users\user-name`.

      1. Quando uma frase-chave for solicitada, bastará pressionar ENTER para continuar.

      1. Para adicionar sua chave SSH ao Raspberry Pi para que os AWS IoT Device Tester FreeRTOS possam entrar no dispositivo, use o comando do seu computador host. `ssh-copy-id` Esse comando adiciona sua chave pública ao arquivo `~/.ssh/authorized_keys` no seu Raspberry Pi.

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

      1. Quando solicitado a inserir uma senha, digite **idtafr**. Essa é a senha padrão para a imagem yocto.
**nota**  
O comando `ssh-copy-id` pressupõe que a chave pública é chamada `id_rsa.pub`. No macOS e Linux, o local padrão é ` ~/.ssh/`. No Windows, o local padrão é `C:\Users\user-name\.ssh`. Se você atribuiu à chave pública um nome diferente ou armazenou em um local diferente, você deve especificar o caminho para sua chave pública SSH usando a opção `-i` para `ssh-copy-id` (por exemplo, `ssh-copy-id -i ~/my/path/myKey.pub`). Para obter mais informações sobre a criação de chaves SSH e a cópia de chaves públicas, consulte [SSH-COPY-ID](https://www.ssh.com/ssh/copy-id).

      1. Para testar se a autenticação da chave pública está funcionando, execute `ssh -i /my/path/myKey root@raspberry-pi-device-ip`.

         Se você não receber uma solicitação de senha, a autenticação de chave pública está funcionando.

      1. Verifique se é possível fazer login no seu Raspberry Pi usando uma chave pública e, depois, desative o SSH baseado em senha.

         1. No Raspberry Pi, edite o arquivo `/etc/ssh/sshd_config`.

         1. Defina o recurso `PasswordAuthentication` como `no`.

         1. Salve e feche o arquivo `sshd_config`.

         1. Recarregue o servidor SSH executando `/etc/init.d/sshd reload`.

   1. Crie um arquivo `resource.json`.

      1. No diretório em que você extraiu o AWS IoT Device Tester, crie um arquivo chamado. `resource.json`

      1. Adicione as seguintes informações sobre seu Raspberry Pi ao arquivo, *rasp-pi-ip-address* substituindo-as pelo endereço IP do seu 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 você decidir não usar a autenticação de chave pública para SSH, adicione o seguinte à seção `connectivity` do arquivo `resource.json`.

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

      1. (Opcional) Se você decidir usar a autenticação de chave pública para SSH, adicione o seguinte à seção `connectivity` do arquivo `resource.json`.

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

## Configuração do dispositivo do FreeRTOS
<a name="afr-device-setup"></a>

No seu arquivo `device.json`, defina o recurso `BLE` como `Yes`. Se você estiver começando com um arquivo `device.json` de antes de os testes de Bluetooth estarem disponíveis, é preciso adicionar o recurso para o BLE à matriz `features`:

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

## Executar os testes do BLE
<a name="running-ble-test"></a>

Depois de habilitar o recurso BLE no `device.json`, os testes BLE serão executados quando você executar `devicetester_[linux | mac | win_x86-64] run-suite` *sem especificar um group-id*.

Se você quiser executar os testes BLE separadamente, poderá especificar o ID do grupo para o BLE: `devicetester_[linux | mac | win_x86-64] run-suite --userdata path-to-userdata/userdata.json --group-id FullBLE`.

Para o desempenho mais confiável, coloque o Raspberry Pi próximo do dispositivo em teste (DUT).

## Solução de problemas de testes de BLE
<a name="troubleshooting-ble"></a>

Siga as etapas em [Primeiro teste da sua placa de microcontrolador](qual-steps.md). Se testes diferentes de BLE estiverem falhando, é mais provável que o problema não seja decorrente da configuração do Bluetooth.