Instalando a ESP IDF no Windows – ESP32

Neste tutorial, vamos aprender a instalar a Toolchain juntamente com a ESP IDF, que é um ambiente completo de desenvolvimento pro ESP32, onde é suportado todas features, opções e configurações sobre o microcontrolador, permitindo que o ESP32 se encaixe perfeitamente nos mais variados projetos, desde simples até industriais!

[toc]

O que é a ESP IDF e quais são os pontos fortes?

Normalmente chamada apenas de IDF, podemos dizer que esta engloba todos os conjuntos de API’s e configurações do ESP32. Já a Toolchain (mingw32) consiste em uma ferramenta que compila e constrói o código que escrevemos juntamente com as configurações escolhidas no “menuconfig”. Por fim, ESP IDF é o conjunto de bibliotecas feitas pro ESP32.

Os principais pontos a serem levados em consideração para você trocar a Arduino IDE ou outra, pela IDF são:

  • Suporte a todas features, incluindo Bluetooth, Flash Encryption e Secure Boot (itens importantes para quem pretende criar e vender produtos).
  • Configuração total do sistema, como por exemplo eFuses, clock, watchdog’s, timer’s, memória dinâmica para WiFi e até tempo de Wake-UP após Deep sleep.

Mãos a obra – Testando a ESP IDF

Instalando a Toolchain e ESP IDF

Usaremos alguns diretórios padrões para instalação, você pode optar por escolher qualquer nome e local, mas tome cuidado ao seguir o tutorial “ao pé da letra”.

1-) Faça o download da Toolchain em: http://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html

Figura 1 – Download Toolchain.

2-) Abra o .ZIP e copie a pasta “msys32” para a raiz do seu HD “C:\”.

Figura 2 – Copiando a pasta.

3-) Faça o download do .ZIP da ultima release que encontrar, nesse caso é a 3.0-rc1: https://github.com/espressif/esp-idf/releases

Nota: há outras maneiras de baixar a IDF, como pelo próprio Toolchain. Caso precise de outros métodos, veja as referencias.

Figura 3 – Download da IDF.

4-) Crie uma pasta chamada “ESP32” na raiz da “msys32” que você copiou no passo 2. Logo em seguida, abra o .ZIP do passo 3, copie a pasta dentro desse novo diretório “ESP32” e renomeie para “esp-idf”. Ficara parecido com: “C:\msys32\ESP32\esp-idf”

Figura 4 – Pasta renomeada.

5-) Precisamos adicionar uma variável à Toolchain que guardará o diretório da pasta “esp-idf”, sem isso não funcionará corretamente.

Vá no diretório “C:\msys32\etc\profile.d” copie e cole qualquer script (extensão .SH), fazendo com que o arquivo fique duplicado.

Figura 5 – Duplicando um script.

Renomeie este script duplicado para “export_idf_path” e abra-o com algum editor de texto como bloco de notas e apague tudo o que estiver escrito. Escreva essa nova e única linha que indica ao Toolchain o diretório da esp-idf que instalamos:

export IDF_PATH=”C:\msys32\ESP32\esp-idf”

Figura 6 – export_idf_path editado para o caminho da esp-idf.

Finalmente instalamos todo o ambiente de programação e desenvolvimento do ESP32 no Windows, agora vamos copiar a pasta de algum exemplo da IDF para que seja nosso local de trabalho.

Vamos copiar a pasta do projeto “hello world” que se encontra em “C:\msys32\ESP32\esp-idf\examples\get-started\” no mesmo local que nossa pasta “esp-idf” e renomeá-la “esp32”.

Figura 6 – Pasta hello world a ser copiada.
Figura 7 – Hello world copiado e renomeado.

Pronto! Podemos usufruir de todas features e configurações do ESP32. Se você não souber usar o painel da IDF, logo abaixo em “Entendendo a fundo”, explicaremos como usar a IDF para compilar e configurar seus projetos.

Componentes necessários

Código do projeto

Não iremos programar nada! Apenas dar upload do antigo “hello world”  que copiamos logo acima, veja abaixo em “Entendendo a fundo” como dar upload do código ao ESP32 pelo painel da IDF.

Colocando para funcionar

Após o upload do código e ver o monitor, já temos algumas informações sobre o nosso microcontrolador.

Figura 8 – IDF MONITOR.

Entendendo a fundo

IDF

Para dar upload dos códigos, ver o “Serial monitor”, editar configurações do Bootloader e etc, precisamos usar o painel (CMD) da IDF.

Antes de mostrarmos alguns comandos da IDF, vamos configurar o nosso projeto ESP32 (antigo hello world) para que o upload seja feito e vejamos funcionando.

1-) Abra o programa “mingw32” que se encontra em “C:\msys32\”, abra a pasta do projeto com “cd /esp32/esp32” e abra o menu de configurações com “make menuconfig”

Figura 9 – Abrindo a pasta do projeto e configurando.

Aqui é o paraíso do ESP32, onde conseguimos configurar praticamente tudo desse microcontrolador, desde clock até alocação de memórias dinâmicas e Watchdog.

Precisamos escolher a porta COM em que seu ESP32 está plugado no computador, você encontra isso em “Gerenciador de dispositivos” no Windows, o nosso está na porta COM8.

2-) Vá em “Serial flasher config” e altere a “Default serial port” para sua porta COM, o nosso será COM8. Você também pode alterar a velocidade de upload caso seu conversor suporte, normalmente é o CP2102 que suporta até a opção “921600”.

Aconselhamos fortemente que se você pretende usar o ESP32 para algo comercial ou projeto sério, leia e configure todas as opções do ESP32 corretamente para seu projeto, você pode ver a ajuda de cada configuração apertando “H” e nas referencias.

Agora que configuramos a porta COM correta para upload, salve e saia do menuconfig.

3-) Digite “make flash monitor” para que comece a compilação do seu código, isso pode demorar MUITO toda vez que você altera o menuconfig, pois o Toolchain recompila todos os componentes, entretanto, após a primeira compilação depois da alteração do menuconfig, não demora mais que 60 segundos.

A dica para acelerar essa primeira compilação é usar todos os núcleos do seu processador. É indicado usar o numero de núcleos + 1. Nosso computador tem 4 núcleos, então vamos usar o seguinte comando: “make flash monitor -j5”, isso deixa a compilação extremamente mais rápida.

Nosso código será finalmente enviado ao ESP32 e automaticamente após o termino, será aberto o “Serial monitor” que mostrará algumas informações sobre seu microcontrolador.

A partir daqui você já pode aproveitar a IDF, também existem alguns comandos interessantes e únicos:

  • make help: mostra todos os comandos da IDF e o que fazem.
  • make: mostra alguns comandos de compilação e endereços dos binários.
  • make flash: da upload do código ao ESP32.
  • make monitor: abre o “Serial monitor”.
  • make clean: apaga a pasta BUILD do projeto.
  • make erase_flash: apaga toda a FLASH do ESP32, incluindo seções de memória não volátil como NVS, FAT e EEPROM.
  • make size: mostra o tamanho dos binários como o uso da FLASH e RAM.

Considerações finais

A ESP-IDF é um prato cheio pra quem pretende se aprofundar no ESP32 desde motivos profissionais ou educacionais, uma vez que este é barato e confiável até para aplicações industriais, diferente do ESP8266.

Você ainda pode usar bibliotecas do Arduino como a WiFi, Serial e WiFiClient em vez das originais da IDF, isso é chamado de “Arduino component”, onde podemos usar tanto as bibliotecas e funções do Arduino, quanto da IDF. Para isso, precisará alterar algumas coisas da pasta do seu projeto que são ensinadas aqui: https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md

Referencias

http://esp-idf.readthedocs.io/en/latest/get-started/windows-setup.html

http://esp-idf.readthedocs.io/en/latest/get-started/index.html

http://esp-idf.readthedocs.io/en/latest/get-started/add-idf_path-to-profile.html

https://github.com/espressif/arduino-esp32/blob/master/docs/esp-idf_component.md

Privacy Preference Center