

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 Amazon-FreeRTOS repositório que está obsoleto. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente com base no repositório agora Amazon-FreeRTOS obsoleto, consulte o. [Amazon-FreeRTOS Guia de migração do repositório Github](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 [Wi-Fi provisionamento](#ble-demo-wifi)

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

  Esta aplicação demonstra como usar as APIs do middleware Bluetooth Low Energy do FreeRTOS 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).

### Configurar AWS IoT e 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.

**Realização da configuração 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 os SDKs móveis usam o Amazon Cognito para a autenticação de dispositivos, não é necessário criar um certificado de dispositivo para demonstrações que usam Bluetooth Low Energy.

   Se você estiver conectando seu microcontrolador diretamente à nuvem Wi-Fi, escolha **Criar certificado**, escolha **Ativar** e, em seguida, baixe o certificado, a chave pública e a chave privada do item.

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 dos IDs para autenticar seu aplicativo móvel na 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 [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md)arquivo para obter instruções.

1. Configure o FreeRTOS no seu microcontrolador.

   Para obter informações sobre como começar a usar o FreeRTOS em FreeRTOS-qualified um microcontrolador, consulte o guia da sua placa em [Introdução](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-getting-started.html) ao FreeRTOS.
**nota**  
Você pode executar as demonstrações em qualquer Energy-enabled microcontrolador Bluetooth Low com FreeRTOS e bibliotecas portadas do FreeRTOS Bluetooth Low Energy. Atualmente, o projeto de demonstração do [MQTT por Bluetooth Low Energy](#ble-demo-mqtt) FreeRTOS está totalmente portado para os seguintes dispositivos Bluetooth Low: Energy-enabled   
[Espressif e o ESP32-DevKitC ESP-WROVER-KIT](https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html)
[nórdico n 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 Network Manager estiver habilitado para ambos Wi-Fi e Bluetooth Low Energy, as demonstrações começarão 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 Wi-Fi conexão 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ê tiver Bluetooth Low Energy e Wi-Fi ativado, a linha que começa com `#define configENABLED_NETWORKS` in é a `aws_iot_network_config.h` seguinte:

```
#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 no SDK do [Android para dispositivos Bluetooth do FreeRTOS, abaixo, e no SDK do iOS para dispositivos Bluetooth `amazon-freertos-ble-android-sdk/app` do FreeRTOS, abaixo](https://github.com/aws/amazon-freertos-ble-android-sdk).](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. Aberto [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 exibindo um dispositivo ESP32 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.  
![Exibição da ID do dispositivo ESP32.](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 dispositivo ESP32 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" exibindo o código "465520" para confirmar no "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 IDs de dispositivos ESP32, com opções de proxy MQTT, configuração de rede e GATT MQTT personalizado 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.

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

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

**nota**  
Atualmente, a demonstração Wi-Fi de provisionamento é compatível com o Espressif. ESP32-DevKitC

**Para habilitar a demonstração**

1. Ative o Wi-Fi serviço de provisionamento. 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 Wi-Fi aprovisionamento está desativado por padrão.

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

**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 IDs de dispositivos ESP32, com opções de proxy MQTT, configuração de rede e GATT MQTT personalizado 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. Wi-Fi As redes disponíveis aparecem em uma lista em **Redes escaneadas**.  
![A interface de gerenciamento do dispositivo ESP32 não mostra nenhuma rede salva, mas indica duas redes Wi-Fi abertas detectadas: uma com segurança WPA2 e RSSI de -29, e 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.  
![Wi-Fi caixa de diálogo de entrada de senha de rede com campo de senha vazio, 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 os SDKs móveis de Bluetooth Low Energy, você pode criar seu próprio cliente GATT para um dispositivo móvel que se conecta ao servidor GATT no seu microcontrolador e é executado em paralelo com a aplicação 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 IDs de dispositivos ESP32, com opções de proxy MQTT, configuração de rede e GATT MQTT personalizado 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`.