

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

# Aplicações de demonstração do Bluetooth Low Energy
<a name="ble-demo"></a>

**Importante**  <a name="deprecation-message-demo"></a>
Essa demonstração está hospedada no repositório Amazon-FreeRTOS, que está preterido. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório Amazon-FreeRTOS que está preterido, consulte o [Guia de migração do repositório Github do Amazon FreeRTOS](github-repo-migration.md).

## Visão geral do
<a name="ble-demo-overview"></a>

A Bluetooth Low Energy do FreeRTOS inclui três aplicações de demonstração:
+ Demonstração do [MQTT por Bluetooth Low Energy](#ble-demo-mqtt) 

  Este aplicação demonstra como usar o MQTT pelo serviço Bluetooth Low Energy.
+ Demonstração do [Provisionamento de Wi-Fi](#ble-demo-wifi)

  Esta aplicação demonstra como usar o serviço de provisionamento de Wi-Fi Bluetooth Low Energy.
+ Demonstração do [Servidor de atributos genéricos](#ble-demo-server)

  Este aplicativo demonstra como usar o APIs middleware FreeRTOS Bluetooth Low Energy para criar um servidor GATT simples.

**nota**  
Para configurar e executar as demonstrações do FreeRTOS, siga as etapas em [Conceitos básicos do FreeRTOS](freertos-getting-started.md).

## Pré-requisitos
<a name="ble-demo-prereqs"></a>

Para acompanhar essas demonstrações, você precisa de um microcontrolador com recursos do Bluetooth Low Energy. Você também precisa do [SDK do iOS para dispositivos Bluetooth do FreeRTOS](freertos-ble-mobile.md#freertos-ble-ios) ou do [SDK do Android para dispositivos Bluetooth do FreeRTOS](freertos-ble-mobile.md#freertos-ble-android).

### Configure o AWS IoT Amazon Cognito para Freertos Bluetooth Low Energy
<a name="set-up-ble-demo-aws"></a>

Para conectar seus AWS IoT dispositivos ao MQTT, você precisa configurar o Amazon AWS IoT Cognito.

**Para configurar AWS IoT**

1. Configure uma AWS conta em [https://aws.amazon.com/](https://aws.amazon.com/).

1. Abra o console [AWS IoT](https://console.aws.amazon.com/iot/) e, no painel de navegação, escolha **Manage (Gerenciar)** e depois **Things (Coisas)**.

1. Escolha **Create (Criar)** e **Create a single thing (Criar uma única coisa)**.

1. Insira um nome para o dispositivo e escolha **Next (Próximo)**.

1. Se você estiver conectando seu microcontrolador à nuvem por meio de um dispositivo móvel, escolha **Create thing without certificate (Criar coisa sem certificado)**. Como o Mobile SDKs usa o Amazon Cognito para autenticação de dispositivos, você não precisa criar um certificado de dispositivo para demonstrações que usam Bluetooth Low Energy.

   Se você estiver conectando seu microcontrolador à nuvem diretamente por Wi-Fi, escolha **Create certificate (Criar certificado)**, **Activate (Ativar)** e faça download do certificado da coisa, da chave pública e da chave privada.

1. Escolha a coisa que você acabou de criar na lista de coisas registradas e escolha **Interact (Interagir)** na página da coisa. Anote o endpoint da API AWS IoT REST.

Para obter mais informações sobre a configuração, consulte [Introdução ao AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html).

**Como criar um grupo de usuários do Amazon Cognito**

1. Abra o console do Amazon Cognito e escolha **Gerenciar grupos de usuários**.

1. Selecione **Criar um grupo de usuários**.

1. Atribua um nome ao grupo de usuários e escolha **Review defaults (Revisar padrões)**.

1. No painel de navegação, escolha **App clients (Clientes de aplicação)** e **Add an app client (Adicionar um cliente de aplicação)**.

1. Insira um nome para o cliente de aplicação e escolha **Create app client (Criar cliente de aplicação)**.

1. No painel de navegação, escolha **Review (Revisar)** e, depois, **Create pool (Criar grupo)**.

   Anote o ID do grupo que aparecer na página **General Settings (Configurações gerais)** do grupo de usuários.

1. No painel de navegação, escolha **App clients (Clientes de aplicação)** e **Show details (Mostrar detalhes)**. Anote o ID e o segredo do cliente de aplicação.

**Como criar um banco de identidades do Amazon Cognito**

1. Abra o console do Amazon Cognito e escolha **Gerenciar bancos de identidades**.

1. Insira um nome para o grupo de identidades.

1. Expanda **Authentication providers (Provedores de autenticação)**, escolha a guia **Cognito** e insira os IDs do grupo de usuários e do cliente de aplicação.

1. Selecione **Criar grupo**.

1. Expanda **View Details (Exibir detalhes)** e anote os dois nomes de função do IAM. Escolha **Permitir** e crie os perfis do IAM para identidades autenticadas e não autenticadas acessarem ao Amazon Cognito.

1. Escolha **Edit identity pool** (Editar grupo de identidades). Anote o ID do grupo de identidades. Ele deve ter o formato `us-west-2:12345678-1234-1234-1234-123456789012`.

Para obter mais informações sobre os conceitos básicos do Amazon Cognito, consulte [Conceitos básicos do Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-getting-started.html).

**Como criar e anexar uma política do IAM à identidade autenticada**

1. Abra o console do IAM e, no painel de navegação, escolha **Perfis**.

1. Encontre e escolha a função da sua identidade autenticada, escolha **Attach policies (Anexar políticas)** e, em seguida, escolha **Add inline policy (Adicionar política em linha)**.

1. Escolha a guia **JSON** e cole o JSON a seguir:

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "iot:AttachPolicy",
               "iot:AttachPrincipalPolicy",
               "iot:Connect",
               "iot:Publish",
               "iot:Subscribe",
               "iot:Receive",
               "iot:GetThingShadow",
               "iot:UpdateThingShadow",
               "iot:DeleteThingShadow"
            ],
            "Resource":[
               "*"
            ]
         }
      ]
   }
   ```

------

1. Escolha **Review policy (Revisar política)**, insira um nome para a política e escolha **Create policy (Criar política)**.

Mantenha suas informações AWS IoT e do Amazon Cognito em mãos. Você precisa do endpoint e de IDs autenticar seu aplicativo móvel com a AWS nuvem.

### Configuração do ambiente do FreeRTOS para Bluetooth Low Energy
<a name="ble-demo-set-up"></a>

Para configurar o ambiente, é necessário fazer download do FreeRTOS com a [Biblioteca de Bluetooth Low Energy](freertos-ble-library.md) no microcontrolador, além de fazer download do SDK móvel e configurá-lo para dispositivos Bluetooth do FreeRTOS em seu dispositivo móvel.

**Como configurar o ambiente do microcontrolador com o Bluetooth Low Energy do FreeRTOS**

1. Baixe ou clone FreeRTOS de. [GitHub](https://github.com/aws/amazon-freertos) Consulte o arquivo [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md) para obter instruções.

1. Configure o FreeRTOS no seu microcontrolador.

   Para obter informações sobre os conceitos básicos do FreeRTOS em um microcontrolador qualificado para o FreeRTOS, consulte o guia da sua placa em [Conceitos básicos do FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-getting-started.html).
**nota**  
Você pode executar as demonstrações em todo microcontrolador habilitado para o Bluetooth Low Energy com o FreeRTOS e as bibliotecas Bluetooth Low Energy do FreeRTOS obtidas por portabilidade. Atualmente, o projeto de demonstração [MQTT por Bluetooth Low Energy](#ble-demo-mqtt) do FreeRTOS foi totalmente migrado para os seguintes dispositivos habilitados para Bluetooth Low Energy:  
[Espressif ESP32 - DevKit C e o ESP-WROVER-KIT](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html)
[Nórdico em RF52840 -DK](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_nordic.html)

## Componentes comuns
<a name="ble-demo-common"></a>

As aplicações de demonstração do FreeRTOS têm dois componentes comuns:
+ Network Manager
+ aplicação de demonstração do SDK móvel de Bluetooth Low Energy

### Network Manager
<a name="ble-demo-network-manager"></a>

O Gerenciador de rede gerencia a conexão de rede do microcontrolador. Ele está localizado no diretório do FreeRTOS, em `demos/network_manager/aws_iot_network_manager.c`. Se o gerenciador de rede está habilitado para Wi-Fi e Bluetooth Low Energy, as demonstrações começam com Bluetooth Low Energy por padrão. Se a conexão Bluetooth Low Energy for interrompida e sua placa estiver Wi-Fi-enabled, o Network Manager mudará para uma conexão Wi-Fi disponível para evitar que você se desconecte da rede.

Para habilitar um tipo de conexão de rede com o Network Manager, adicione o tipo de conexão de rede ao `configENABLED_NETWORKS` parâmetro em `vendors/vendor/boards/board/aws_demos/config_files/aws_iot_network_config.h` (onde *vendor* é o nome do fornecedor e o *board* nome da placa que você está usando para executar as demonstrações).

Por exemplo, se você estiver com Bluetooth Low Energy e rede Wi-Fi ativadas, a linha que começa com `#define configENABLED_NETWORKS` em `aws_iot_network_config.h` mostrará:

```
#define  configENABLED_NETWORKS  ( AWSIOT_NETWORK_TYPE_BLE | AWSIOT_NETWORK_TYPE_WIFI )
```

Para obter uma lista dos tipos de conexão de rede compatíveis no momento, consulte as linhas que começam com `#define AWSIOT_NETWORK_TYPE` em `aws_iot_network.h`.

### aplicação de demonstração do SDK móvel de Bluetooth Low Energy do FreeRTOS
<a name="ble-sdk-app"></a>

[O aplicativo de demonstração do FreeRTOS Bluetooth Low Energy Mobile SDK está localizado GitHub em [Android SDK para dispositivos Bluetooth FreeRTOS abaixo e `amazon-freertos-ble-android-sdk/app` no SDK iOS para dispositivos Bluetooth FreeRTOS](https://github.com/aws/amazon-freertos-ble-android-sdk) em.](https://github.com/aws/amazon-freertos-ble-ios-sdk) `amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo` Neste exemplo, usamos capturas de tela da versão para iOS da aplicação móvel de demonstração.

**nota**  
Se você estiver usando um dispositivo iOS, precisará do Xcode para criar a aplicação móvel de demonstração. Se você estiver usando um dispositivo Android, poderá usar o Android Studio para criar a aplicação móvel de demonstração.

**Para configurar a aplicação de demonstração do SDK para iOS**

Ao definir variáveis de configuração, use o formato dos valores de espaços reservados fornecidos nos arquivos de configuração.

1. Confirme se o [SDK do iOS para dispositivos Bluetooth do FreeRTOS](freertos-ble-mobile.md#freertos-ble-ios) está instalado.

1. Emita o comando a seguir de `amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/`:

   ```
   $ pod install
   ```

1. Abra o projeto `amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo.xcworkspace` com Xcode e altere a conta do desenvolvedor assinante para a sua conta.

1. Crie uma AWS IoT política na sua região (caso ainda não tenha feito isso).
**nota**  
Essa política é diferente da política do IAM criada para a identidade autenticada do Amazon Cognito.

   1. Abra o [console do AWS IoT](https://console.aws.amazon.com/iot/).

   1. No painel de navegação, escolha **Secure (Seguro)**, **Policies (Políticas)** e **Create (Criar)**. Insira um nome para identificar a política. Na seção **Add statements (Adicionar instruções)**, escolha **Advanced mode (Modo avançado)**. Copie e cole o seguinte JSON na janela do editor de política. Substitua *aws-region* e *aws-account* por sua AWS região e ID da conta.

   1. Escolha **Criar**.

1. Abra `amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo/Amazon/AmazonConstants.swift` e redefina as variáveis a seguir:
   + `region`: Sua AWS região.
   + `iotPolicyName`: O nome AWS IoT da sua apólice.
   + `mqttCustomTopic`: o tópico MQTT no qual você deseja publicar.

1. Abra o `amazon-freertos-ble-ios-sdk/Example/AmazonFreeRTOSDemo/AmazonFreeRTOSDemo/Support/awsconfiguration.json`.

   Em `CognitoIdentity`, redefina as variáveis a seguir:
   + `PoolId`: ID de banco de identidades do Amazon Cognito.
   + `Region`: Sua AWS região.

   Em `CognitoUserPool`, redefina as variáveis a seguir:
   + `PoolId`: ID de grupo de usuários do Amazon Cognito.
   + `AppClientId`: o ID do cliente da aplicação.
   + `AppClientSecret`: o segredo do cliente da aplicação.
   + `Region`: Sua AWS região.

**Para configurar a aplicação de demonstração do SDK para Android**

Ao definir variáveis de configuração, use o formato dos valores de espaços reservados fornecidos nos arquivos de configuração.

1. Confirme se o [SDK do Android para dispositivos Bluetooth do FreeRTOS](freertos-ble-mobile.md#freertos-ble-android) está instalado.

1. Crie uma AWS IoT política na sua região (caso ainda não tenha feito isso).
**nota**  
Essa política é diferente da política do IAM criada para a identidade autenticada do Amazon Cognito.

   1. Abra o [console do AWS IoT](https://console.aws.amazon.com/iot/).

   1. No painel de navegação, escolha **Secure (Seguro)**, **Policies (Políticas)** e **Create (Criar)**. Insira um nome para identificar a política. Na seção **Add statements (Adicionar instruções)**, escolha **Advanced mode (Modo avançado)**. Copie e cole o seguinte JSON na janela do editor de política. Substitua *aws-region* e *aws-account* por sua AWS região e ID da conta.

   1. Escolha **Criar**.

1. Abra [ https://github.com/aws/amazon-freertos-ble-android- sdk/blob/master/app/src/main/java/software/amazon/freertos/demo/DemoConstants .java](https://github.com/aws/amazon-freertos-ble-android-sdk/blob/master/app/src/main/java/software/amazon/freertos/demo/DemoConstants.java) e redefina as seguintes variáveis:
   + `AWS_IOT_POLICY_NAME`: O nome AWS IoT da sua apólice.
   + `AWS_IOT_REGION`: Sua AWS região.

1. Abra [ https://github.com/aws/amazon-freertos-ble-android- sdk/blob/master/app/src/main/res/raw/awsconfiguration .json.](https://github.com/aws/amazon-freertos-ble-android-sdk/blob/master/app/src/main/res/raw/awsconfiguration.json) 

   Em `CognitoIdentity`, redefina as variáveis a seguir:
   + `PoolId`: ID de banco de identidades do Amazon Cognito.
   + `Region`: Sua AWS região.

   Em `CognitoUserPool`, redefina as variáveis a seguir:
   + `PoolId`: ID de grupo de usuários do Amazon Cognito.
   + `AppClientId`: o ID do cliente da aplicação.
   + `AppClientSecret`: o segredo do cliente da aplicação.
   + `Region`: Sua AWS região.

**Para descobrir e estabelecer conexões seguras com seu microcontrolador por Bluetooth Low Energy**

1. Para emparelhar seu microcontrolador e dispositivo móvel com segurança (etapa 6), você precisa de um emulador de terminal serial com recursos de entrada e saída (como). TeraTerm Configure o terminal para conectar-se à sua placa por uma conexão serial de acordo com as instruções em [Instalação de um emulador de terminal](gsg-troubleshooting.md#uart-term).

1. Execute o projeto de demonstração de Bluetooth Low Energy no seu microcontrolador.

1. Execute a aplicação de demonstração do SDK móvel de Bluetooth Low Energy em seu dispositivo móvel.

   Para iniciar a aplicação de demonstração no Android para SDK a partir da linha de comando, execute o seguinte comando:

   ```
   $ ./gradlew installDebug
   ```

1. Confirme se o microcontrolador aparece em **Devices (Dispositivos)** na aplicação de demonstração do SDK móvel de Bluetooth Low Energy.  
![\[Página de gerenciamento de dispositivos mostrando um ESP32 dispositivo com seu identificador exclusivo.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list1.png)
**nota**  
Todos os dispositivos com o FreeRTOS e o serviço de informações de dispositivos (`freertos/.../device_information`) que estiverem no intervalo aparecerão na lista.

1. Escolha seu microcontrolador na lista de dispositivos. A aplicação estabelece uma conexão com a placa, e uma linha verde é exibida ao lado do dispositivo conectado.  
![\[ESP32 ID do dispositivo exibido.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list2.png)

   Você pode se desconectar do microcontrolador arrastando a linha para a esquerda.  
![\[Página de dispositivos mostrando uma ID de ESP32 dispositivo e outra ID de dispositivo.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list3.png)

1. Se solicitado, emparelhe seu microcontrolador e dispositivo móvel.  
![\[Saída do console mostrando a desconexão do dispositivo BLE, a desconexão do serviço MQTT, o início da transmissão de anúncios, a conexão BLE com o dispositivo remoto e uma solicitação para comparação numérica.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/pairing-board.png)  
![\[Caixa de diálogo de solicitação de emparelhamento Bluetooth para o dispositivo ESP32 "" mostrando o código “465520" para confirmar em"”. ESP32\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/pairing-mobile.png)

   Se o código para comparação numérica é o mesmo em ambos os dispositivos, pareie-os.

**nota**  
A aplicação de demonstração do SDK móvel de Bluetooth Low Energy usa o Amazon Cognito para autenticação do usuário. Verifique se você configurou um usuário e banco de identidades do Amazon Cognito e se anexou as políticas do IAM às identidades autenticadas.

## MQTT por Bluetooth Low Energy
<a name="ble-demo-mqtt"></a>

Na demonstração do MQTT via Bluetooth Low Energy, seu microcontrolador publica mensagens AWS na nuvem por meio de um proxy MQTT.

**Para inscrever-se em um tópico de demonstração do MQTT**

1. Faça login no AWS IoT console.

1. No painel de navegação, escolha **Teste** e, em seguida, escolha **cliente de teste MQTT** para abrir o cliente MQTT.

1. Em **Tópico de inscrição**, insira ***thing-name*/example/topic1** e selecione **Inscreva-se no tópico**.

Se você usa Bluetooth Low Energy para emparelhar o microcontrolador com seu dispositivo móvel, as mensagens MQTT são roteadas por meio da aplicação de demonstração do SDK móvel de Bluetooth Low Energy em seu dispositivo móvel.

**Como habilitar a demonstração por Bluetooth Low Energy**

1. Abra `vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h` e defina `CONFIG_MQTT_BLE_TRANSPORT_DEMO_ENABLED`.

1. Abra `demos/include/aws_clientcredential.h` e configure `clientcredentialMQTT_BROKER_ENDPOINT` com o endpoint do AWS IoT broker. Configure `clientcredentialIOT_THING_NAME` com o nome da coisa para o dispositivo microcontrolador de BLE. O endpoint do AWS IoT broker pode ser obtido no AWS IoT console escolhendo **Configurações** no painel de navegação esquerdo ou por meio da CLI executando o comando:. `aws iot describe-endpoint --endpoint-type=iot:Data-ATS`
**nota**  
O endpoint do AWS IoT broker e o nome da coisa devem estar na mesma região em que a identidade cognito e o grupo de usuários estão configurados.

**Para executar a demonstração**

1. Compile e execute o projeto de demonstração no seu microcontrolador.

1. Verifique se você pareou a placa e o dispositivo móvel usando o [aplicação de demonstração do SDK móvel de Bluetooth Low Energy do FreeRTOS](#ble-sdk-app).

1. Na lista **Devices (Dispositivos)** na aplicação móvel de demonstração, escolha seu microcontrolador e, depois, escolha **MQTT Proxy (Proxy MQTT)** para abrir as configurações do proxy MQTT.  
![\[Lista de três ESP32 dispositivos IDs, com as opções MQTT Proxy, Network Config e Custom GATT MQTT abaixo.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list4.png)

1. Depois de habilitar o proxy MQTT, as mensagens MQTT são exibidas no tópico `thing-name/example/topic1` e os dados são impressos no terminal UART.

## Provisionamento de Wi-Fi
<a name="ble-demo-wifi"></a>

O provisionamento de Wi-Fi é um serviço de Bluetooth Low Energy do FreeRTOS que permite enviar com segurança as credenciais de rede Wi-Fi de um dispositivo móvel para um microcontrolador por Bluetooth Low Energy. O código-fonte para o serviço de provisionamento de Wi-Fi pode ser encontrado em `freertos/.../wifi_provisioning`.

**nota**  
Atualmente, a demonstração do Wi-Fi Provisioning é compatível com o ESP32 Espressif - C. DevKit

**Para habilitar a demonstração**

1. Habilite o serviço de provisionamento de Wi-Fi. Abra `vendors/vendor/boards/board/aws_demos/config_files/iot_ble_config.h` e `#define IOT_BLE_ENABLE_WIFI_PROVISIONING` defina como `1` (onde *vendor* é o nome do fornecedor e o nome do quadro que você *board* está usando para executar as demonstrações).
**nota**  
O serviço de provisionamento de Wi-Fi é desabilitado por padrão.

1. Configure o [Network Manager](#ble-demo-network-manager) para ativar tanto Bluetooth Low Energy quanto Wi-Fi.

**Para executar a demonstração**

1. Compile e execute o projeto de demonstração no seu microcontrolador.

1. Verifique se você pareou o microcontrolador e o dispositivo móvel usando o [aplicação de demonstração do SDK móvel de Bluetooth Low Energy do FreeRTOS](#ble-sdk-app).

1. Na lista **Devices (Dispositivos)** na aplicação móvel de demonstração, escolha seu microcontrolador e, depois, escolha **Network Config (Configuração de rede)** para abrir as configurações de rede.  
![\[Lista de três ESP32 dispositivos IDs, com as opções MQTT Proxy, Network Config e Custom GATT MQTT abaixo.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list4.png)

1. Depois que você escolher **Network Config (Configuração de rede)** para sua placa, o microcontrolador enviará uma lista de redes nas proximidades para o dispositivo móvel. As redes Wi-Fi disponíveis aparecem em uma lista em **Scanned Networks (Redes verificadas)**.  
![\[ESP32 interface de gerenciamento de dispositivos que não mostra redes salvas, duas redes wi-fi abertas escaneadas, uma com WPA2 segurança e RSSI de -29, a outra com segurança aberta e RSSI de -50.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-network-config1.png)

   Na lista **Scanned Networks (Redes verificadas)**, escolha a rede e digite o SSID e a senha, se necessário.  
![\[Caixa de diálogo para inserir a senha da rede Wi-Fi com o campo de senha vazio e botões Cancelar e Salvar.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-wifi-password.png)

   O microcontrolador conecta-se à rede e a salva. A rede é exibida nas **Saved Networks (Redes salvas)**.  
![\[Interface de rede mostrando WiFi redes salvas e digitalizadas, uma protegida por WPA2 e outra aberta, com indicadores de intensidade do sinal.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-network-config2.png)

Você pode salvar várias redes na aplicação móvel de demonstração. Quando você reinicia a aplicação e a demonstração, o microcontrolador se conecta à primeira rede salva disponível, começando pela parte superior da lista de **Saved Networks (Redes salvas)**. 

Para alterar a ordem de prioridade das redes ou excluir redes, na página **Network Configuration (Configuração de rede)**, escolha **Editing Mode (Modo de edição)**. Para alterar a ordem de prioridade das redes, escolha o lado direito da rede que você deseja priorizar novamente e arraste-a para cima ou para baixo. Para excluir uma rede, escolha o botão vermelho no lado esquerdo da rede que você deseja excluir.

![\[A tela de configurações da rede Wi-Fi mostra as redes salvas, opções de edição para excluir ou alterar a prioridade e redes verificadas.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-network-editing.png)


## Servidor de atributos genéricos
<a name="ble-demo-server"></a>

Neste exemplo, uma aplicação do servidor de demonstração de recursos genéricos (GATT) no seu microcontrolador envia um valor de contador simples para o [aplicação de demonstração do SDK móvel de Bluetooth Low Energy do FreeRTOS](#ble-sdk-app).

Usando o Bluetooth Low Energy Mobile SDKs, você pode criar seu próprio cliente GATT para um dispositivo móvel que se conecta ao servidor GATT em seu microcontrolador e é executado em paralelo com o aplicativo móvel de demonstração.

**Para habilitar a demonstração**

1. Ative a demonstração Bluetooth Low Energy GATT. Em `vendors/vendor/boards/board/aws_demos/config_files/iot_ble_config.h` (onde *vendor* é o nome do fornecedor e o nome da placa que você *board* está usando para executar as demonstrações), adicione `#define IOT_BLE_ADD_CUSTOM_SERVICES ( 1 )` à lista de declarações definidas.
**nota**  
A demonstração Bluetooth Low Energy GATT é desabilitada por padrão.

1. Abra `freertos/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h`, comente `#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED` e defina `CONFIG_BLE_GATT_SERVER_DEMO_ENABLED`.

**Para executar a demonstração**

1. Compile e execute o projeto de demonstração no seu microcontrolador.

1. Verifique se você pareou a placa e o dispositivo móvel usando o [aplicação de demonstração do SDK móvel de Bluetooth Low Energy do FreeRTOS](#ble-sdk-app).

1. Na lista **Devices (Dispositivos)** na aplicação, escolha sua placa e, depois, escolha **MQTT Proxy (Proxy MQTT)** para abrir as opções do proxy MQTT.  
![\[Lista de três ESP32 dispositivos IDs, com as opções MQTT Proxy, Network Config e Custom GATT MQTT abaixo.\]](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/ble-device-list4.png)

1. Retorne à lista **Devices (Dispositivos)**, escolha sua placa e, depois, escolha **Custom GATT MQTT (MQTT GATT personalizado)** para abrir as opções de serviço de GATT personalizado.

1. Escolha **Start Counter (Iniciar contador)** para começar a publicar dados no tópico MQTT ***your-thing-name*/example/topic**.

   Depois de habilitar o proxy MQTT, o Hello World e as mensagens incrementais do contador aparecem no tópico `your-thing-name/example/topic`.