

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

# Introdução ao ESP32 Espressif -WROOM-32SE
<a name="getting_started_esp32wroom-32se"></a>

**Importante**  <a name="deprecation-message"></a>
Essa integração de referência 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).

**nota**  
[Para explorar como integrar bibliotecas modulares e demonstrações do FreeRTOS em seu próprio projeto Espressif IDF, consulte nossa integração de referência em destaque para a plataforma -C3. ESP32](https://www.freertos.org/featured-freertos-iot-integration-targeting-an-espressif-esp32-c3-risc-v-mcu/) 
Atualmente, a porta FreeRTOS ESP32 para -WROOM-32SE não suporta o recurso de multiprocessamento simétrico (SMP).

Este tutorial mostra como começar a usar o ESP32 Espressif -WROOM-32SE. Para comprar um de nosso parceiro no catálogo de dispositivos AWS parceiros, consulte [ESP32-WROOM-32SE](https://devices.amazonaws.com/detail/a3G0h0000077nRtEAI/ESP32-WROOM-32SE).

## Visão geral do
<a name="getting_started_esp32wroom-32se-overview"></a>

Este tutorial orienta você pelas seguintes etapas:

1. Conectar a placa a uma máquina host.

1. Instalar o software na máquina host para desenvolver e depurar aplicações incorporadas para a placa do microcontrolador.

1. Compilar uma aplicação de demonstração do FreeRTOS de forma cruzada para uma imagem binária.

1. Carregar a imagem binária do aplicativo em na placa e executar o aplicativo.

1. Monitorar e depurar a aplicação em execução usando uma conexão serial.

## Pré-requisitos
<a name="setup-esp32wroom-32se-prereqs"></a>

Antes de começar a usar os FreeRTOS em seu quadro Espressif, você deve configurar sua conta e permissões. AWS 

### Inscreva-se para um Conta da AWS
<a name="sign-up-for-aws"></a>

Se você não tiver um Conta da AWS, conclua as etapas a seguir para criar um.

**Para se inscrever em um Conta da AWS**

1. Abra a [https://portal.aws.amazon.com/billing/inscrição.](https://portal.aws.amazon.com/billing/signup)

1. Siga as instruções online.

   Parte do procedimento de inscrição envolve receber uma chamada telefônica ou uma mensagem de texto e inserir um código de verificação pelo teclado do telefone.

   Quando você se inscreve em um Conta da AWS, um *Usuário raiz da conta da AWS*é criado. O usuário-raiz tem acesso a todos os Serviços da AWS e recursos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar [tarefas que exigem acesso de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS envia um e-mail de confirmação após a conclusão do processo de inscrição. A qualquer momento, você pode visualizar a atividade atual da sua conta e gerenciar sua conta acessando [https://aws.amazon.com/e](https://aws.amazon.com/) escolhendo **Minha conta**.

### Criar um usuário com acesso administrativo
<a name="create-an-admin"></a>

Depois de se inscrever em um Conta da AWS, proteja seu Usuário raiz da conta da AWS Centro de Identidade do AWS IAM, habilite e crie um usuário administrativo para que você não use o usuário root nas tarefas diárias.

**Proteja seu Usuário raiz da conta da AWS**

1.  Faça login [Console de gerenciamento da AWS](https://console.aws.amazon.com/)como proprietário da conta escolhendo **Usuário raiz** e inserindo seu endereço de Conta da AWS e-mail. Na próxima página, insira a senha.

   Para obter ajuda ao fazer login usando o usuário-raiz, consulte [Fazer login como usuário-raiz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) no *Guia do usuário do Início de Sessão da AWS *.

1. Habilite a autenticação multifator (MFA) para o usuário-raiz.

   Para obter instruções, consulte [Habilitar um dispositivo de MFA virtual para seu usuário Conta da AWS raiz (console) no Guia](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) do *usuário do IAM*.

**Criar um usuário com acesso administrativo**

1. Habilita o Centro de Identidade do IAM.

   Para obter instruções, consulte [Habilitar o Centro de Identidade do AWS IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

1. No Centro de Identidade do IAM, conceda o acesso administrativo a um usuário.

   Para ver um tutorial sobre como usar o Diretório do Centro de Identidade do IAM como fonte de identidade, consulte [Configurar o acesso do usuário com o padrão Diretório do Centro de Identidade do IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) no *Guia Centro de Identidade do AWS IAM do usuário*.

**Iniciar sessão como o usuário com acesso administrativo**
+ Para fazer login com o seu usuário do Centro de Identidade do IAM, use o URL de login enviado ao seu endereço de e-mail quando o usuário do Centro de Identidade do IAM foi criado.

  Para obter ajuda para fazer login usando um usuário do IAM Identity Center, consulte Como [fazer login no portal de AWS acesso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) no *Guia Início de Sessão da AWS do usuário*.

**Atribuir acesso a usuários adicionais**

1. No Centro de Identidade do IAM, crie um conjunto de permissões que siga as práticas recomendadas de aplicação de permissões com privilégio mínimo.

   Para obter instruções, consulte [Criar um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

1. Atribua usuários a um grupo e, em seguida, atribua o acesso de logon único ao grupo.

   Para obter instruções, consulte [Adicionar grupos](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
+ Usuários e grupos em Centro de Identidade do AWS IAM:

  Crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.
+ Usuários gerenciados no IAM com provedor de identidades:

  Crie um perfil para a federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ Usuários do IAM:
  + Crie um perfil que seu usuário possa assumir. Siga as instruções em [Criação de um perfil para um usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.
  + (Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em [Adição de permissões a um usuário (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

## Conceitos básicos
<a name="setup-esp32wroom-32s-idf42"></a>

**nota**  
Os comandos do Linux neste tutorial exigem o uso do shell Bash.

1. **Configuração de hardware da Espressif.**

   Para obter informações sobre como configurar o hardware da placa de desenvolvimento ESP32 -WROOM-32SE, consulte o Guia de introdução [ ESP32- DevKit C](https://docs.espressif.com/projects/esp-idf/en/release-v4.2/esp32/get-started/index.html#installation-step-by-step) V4.
**Importante**  
Ao chegar à seção **Guia detalhado de instalação** deste guia, siga até concluir a Etapa 4 (Configurar as variáveis de ambiente). Pare depois de concluir a Etapa 4 e siga as etapas restantes aqui.

1. Faça o download dos Amazon [GitHub](https://github.com/aws/amazon-freertos)FreeRTOS em. (Para obter instruções, consulte o arquivo [README.md](https://github.com/aws/amazon-freertos/blob/main/README.md).)

1. **Configure o ambiente de desenvolvimento**.

   Para se comunicar com sua placa, você deve instalar uma cadeia de ferramentas. A Espressif fornece o ESP-IDF para desenvolver software para suas placas. Como o ESP-IDF tem a própria versão do kernel do FreeRTOS integrada como um componente, o Amazon FreeRTOS inclui uma versão personalizada do ESP-IDF v4.2 que tem o kernel do FreeRTOS removido. Isso corrige problemas com arquivos duplicados durante a compilação. Para usar a versão personalizada do ESP-IDF v4.2 incluída no Amazon FreeRTOS, siga as instruções abaixo para o sistema operacional da sua máquina host.

   **Windows**

   1. Faça download do [Instalador online universal](https://dl.espressif.com/dl/esp-idf/?idf=4.2) do ESP-IDF para Windows.

   1. Execute o **Instalador online universal**.

   1. Ao chegar à etapa **Fazer download ou usar ESP-IDF**, selecione **Usar um diretório ESP-IDF existente** e defina **Escolher diretório ESP-IDF existente como `freertos/vendors/espressif/esp-idf`**.

   1. Concluir a instalação.

   **macOS**

   1. Siga as instruções nos [Pré-requisitos de configuração padrão da cadeia de ferramentas (ESP-IDF v4.2) para macOS](https://docs.espressif.com/projects/esp-idf/en/release-v4.2/esp32/get-started/macos-setup.html).
**Importante**  
Quando você chegar nas instruções de "Obter ESP-IDF" em **Próximas etapas**, pare e retorne para as instruções desta página.

   1. Abra a janela de linha de comando.

   1. Navegue até o diretório de download do FreeRTOS e, em seguida, execute o script a seguir para baixar e instalar a cadeia de ferramentas do espressif em sua plataforma.

      ```
      vendors/espressif/esp-idf/install.sh
      ```

   1. Adicione as ferramentas da cadeia de ferramentas ESP-IDF ao caminho do seu terminal com o comando a seguir.

      ```
      source vendors/espressif/esp-idf/export.sh
      ```

   **Linux**

   1. Siga as instruções nos [Pré-requisitos da configuração padrão da cadeia de ferramentas (ESP-IDF v4.2) para Linux](https://docs.espressif.com/projects/esp-idf/en/release-v4.2/esp32/get-started/linux-setup.html).
**Importante**  
Quando você chegar nas instruções de "Obter ESP-IDF" em **Próximas etapas**, pare e retorne para as instruções desta página.

   1. Abra a janela de linha de comando.

   1. Navegue até o diretório de download do FreeRTOS e execute o script a seguir para baixar e instalar a cadeia de ferramentas do Espressif em sua plataforma.

      ```
      vendors/espressif/esp-idf/install.sh
      ```

   1. Adicione as ferramentas da cadeia de ferramentas ESP-IDF ao caminho do seu terminal com o comando a seguir.

      ```
      source vendors/espressif/esp-idf/export.sh
      ```

1. **Estabelecimento de uma conexão serial**.

   1. Para estabelecer uma conexão serial entre sua máquina host e o ESP32 -WROOM-32SE, instale os drivers CP210x USB para UART Bridge VCP. Você pode fazer download desses drivers no [Silicon Labs](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers).

   1. Siga as etapas para [estabelecer uma conexão serial com ESP32](https://docs.espressif.com/projects/esp-idf/en/release-v4.2/esp32/get-started/establish-serial-connection.html).

   1. Depois de estabelecer uma conexão serial, anote a porta serial da conexão de sua placa. Você precisa disso para instalar a demonstração.

### Configuração das aplicações de demonstração do FreeRTOS
<a name="configure-demos-esp32wroom-32s-idf42"></a>

Para este tutorial, o arquivo de configuração do FreeRTOS está localizado em `freertos/vendors/espressif/boards/board-name/aws_demos/config_files/FreeRTOSConfig.h`. (Por exemplo, se `AFR_BOARD espressif.esp32_devkitc` for escolhido, o arquivo de configuração estará localizado em `freertos/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h`.) 

**Importante**  
O ATECC608 dispositivo A tem uma inicialização única que é bloqueada no dispositivo na primeira vez em que um projeto é executado (durante a chamada para`C_InitToken`). No entanto, o projeto de demonstração e o projeto de teste do FreeRTOS têm configurações diferentes. Se o dispositivo estiver bloqueado durante as configurações do projeto de demonstração, nem todos os testes no projeto de teste serão bem-sucedidos.

1. Configure o projeto de demonstração do FreeRTOS seguindo as etapas em [Configuração das demonstrações do FreeRTOS](freertos-prereqs.md#freertos-configure). Quando você chegar à última etapa **Para formatar suas AWS IoT credenciais**, pare e execute as etapas a seguir.

1. A Microchip forneceu várias ferramentas de script para ajudar na configuração das peças ATECC608 A. Navegue até o diretório `freertos/vendors/microchip/example_trust_chain_tool` e abra o arquivo `README.md`.

1. Siga as instruções no arquivo `README.md` para provisionar seu dispositivo. As etapas incluem o seguinte:

   1. Crie e registre uma autoridade de certificação com AWS.

   1. Gere suas chaves no ATECC608 A e exporte a chave pública e o número de série do dispositivo.

   1. Gere um certificado para o dispositivo e registre esse certificado com AWS.

1. Carregar o certificado CA e o certificado de dispositivo no dispositivo seguindo as instruções para [Provisionamento de chaves no modo de desenvolvedor](dev-mode-key-provisioning.md).

### Monitorando mensagens MQTT na nuvem AWS
<a name="gsg-esp32wroom-32se-monitor-mqtt"></a>

Antes de executar o projeto de demonstração do FreeRTOS, você pode configurar o cliente MQTT no console para monitorar AWS IoT as mensagens que seu dispositivo envia para a nuvem. AWS 

**Para assinar o tópico MQTT com o cliente AWS IoT MQTT**

1. Faça login no [console do AWS IoT](https://console.aws.amazon.com/iotv2/).

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

1. Em **Tópico de assinatura**, insira `your-thing-name/example/topic` e selecione **Assinar o tópico**.

### Compilação, atualização e execução do projeto de demonstração do FreeRTOS usando o script idf.py
<a name="build-and-run-example-esp32wroom-32se-idf42"></a>

Você pode usar o utilitário Espressif (`idf.py`) do IDF para gerar os arquivos de compilação, compilar o binário da aplicação e instalar os binários em seu dispositivo.

**nota**  
Algumas configurações podem exigir que você use a opção de porta "`-p port-name`" com`idf.py` para especificar a porta correta, como no exemplo a seguir.  

```
idf.py -p /dev/cu.usbserial-00101301B flash
```

**Compilação e instalação do FreeRTOS no Windows, Linux e macOS (ESP-IDF v4.2)**

1. Navegue até a raiz do diretório de downloads do FreeRTOS.

1. Na janela da linha de comando, insira o comando a seguir para adicionar as ferramentas de ESP-IDF ao PATH do seu terminal:  
**Windows (aplicação "Comando")**  

   ```
   vendors\espressif\esp-idf\export.bat
   ```  
**Windows (aplicação "ESP-IDF 4.x CMD")**  
(Isso já foi feito quando você abriu a aplicação.)  
**Linux / macOS**  

   ```
   source vendors/espressif/esp-idf/export.sh
   ```

1. Configure o cmake no diretório `build` e compile a imagem do firmware com o comando a seguir.

   ```
   idf.py -DVENDOR=espressif -DBOARD=esp32_ecc608a_devkitc -DCOMPILER=xtensa-esp32 build
   ```

   A saída deverá ser parecida com a do exemplo a seguir.

   ```
      Running cmake in directory /path/to/hello_world/build
      Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"...
      Warn about uninitialized values.
      -- Found Git: /usr/bin/git (found version "2.17.0")
      -- Building empty aws_iot component due to configuration
      -- Component names: ...
      -- Component paths: ...
   
      ... (more lines of build system output)
   
      [527/527] Generating hello-world.bin
      esptool.py v2.3.1
   
      Project build complete. To flash, run this command:
      ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin  build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin
      or run 'idf.py -p PORT flash'
   ```

   Se não houver erros, a compilação gerará os arquivos .bin binários do firmware.

1. Apague a memória instalada da placa de desenvolvimento com o comando a seguir.

   ```
   idf.py erase_flash
   ```

1. Use o script `idf.py` para instalar o binário da aplicação na placa.

   ```
   idf.py flash
   ```

1. Monitore a saída da porta serial da placa com o comando a seguir.

   ```
   idf.py monitor
   ```
**nota**  
Você pode combinar esses comandos, como no exemplo a seguir.  

     ```
     idf.py erase_flash flash monitor
     ```
Para determinadas configurações da máquina host, você deve especificar a porta ao instalar a placa, como no exemplo a seguir.  

     ```
     idf.py erase_flash flash monitor -p /dev/ttyUSB1
     ```

### Crie e atualize Freertos com CMake
<a name="flash-esp32wroom-32se-cmake-idf42"></a>

Além de usar o `idf.py` script fornecido pelo SDK do IDF para criar e executar seu código, você também pode criar o projeto com. CMake Atualmente, ele é compatível com o Makefile da Unix e o sistema de compilação Ninja.

**Como compilar e instalar o projeto**

1. Em uma janela da linha de comando, navegue até o diretório raiz de downloads do FreeRTOS.

1. Execute o script a seguir para adicionar as ferramentas ESP-IDF ao PATH do shell.  
**Windows**  

   ```
   vendors\espressif\esp-idf\export.bat
   ```  
**Linux / macOS**  

   ```
   source vendors/espressif/esp-idf/export.sh
   ```

1. Insira o comando a seguir para gerar os arquivos de compilação.  
**Com Makefiles da Unix**  

   ```
   cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
   ```  
**Com Ninja**  

   ```
   cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
   ```

1. Apague a instalada e depois instale a placa.  
**Com Makefiles da Unix**  

   ```
   make -C ./YOUR_BUILD_DIRECTORY erase_flash
   ```

   ```
   make -C ./YOUR_BUILD_DIRECTORY flash
   ```  
**Com Ninja**  

   ```
   ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
   ```

   ```
   ninja -C ./YOUR_BUILD_DIRECTORY flash
   ```

## Mais informações
<a name="getting_started_esp32wroom-32se-additional"></a>

Para obter mais informações sobre como usar e solucionar problemas de ESP32 placas Espressif, consulte os tópicos a seguir:
+ [Usando FreeRTOS em seu próprio projeto para CMake ESP32](getting_started_espressif.md#getting_started_espressif_cmake_project)
+ [Solução de problemas](getting_started_espressif.md#getting_started_espressif_troubleshooting)
+ [Depuração](getting_started_espressif.md#getting_started_espressif_debugging)