Primeiros passos com ESP32 e algumas IDEs

Hora de dar os primeiros passos com ESP32

É tanta emoção que até pra escolher um título para o artigo foi difícil, mas acabou ficando claro que tinha que ser “Primeiros passos com ESP32”. Eu não sabia por onde começar, de tantas coisas que me vem à cabeça. Sem exageros, esse ESP32 é insuperável! Como se não bastasse o ESP8266 não ter concorrentes a altura, surge o ESP32 com tanto poder que faz um simples maker como eu pirar. E aposto que você também está ensandecido para utilizar seus recursos. Damos conta? Sim, mas um passo por vez. Pensando desse modo,  vou gradativamente escrevendo artigos com o ESP32 disponível na AutoCore Robótica.

Vale a pena adquirir um ESP32?

Só posso te dar uma resposta para tal questionamento (se é que você o fez): Óbvio que vale. É muito poder de processamento e essa board rompe de vez as fronteiras entre o Arduino e, olhe lá se não substitui francamente boards com sistema Linux embarcado em diversos projetos!

Slave ou standalone?

Você pode utilizá-lo das duas maneiras, mas por favor, se for utilizá-lo como slave, não me conte para que eu não sofra. Um hardware desses não deveria jamais ser subutilizado desse modo. Deixe-me tentar explicar o porquê.

Características





Dessa vez temos não 1, mas 2 núcleos nesse processador da arquitetura Tensilica LX6. Com o ESP8266 temos apenas 1 núcleo que pode funcionar a 80MHz ou a 160MHz, mas sente-se para ler isso; o ESP32 roda a 240MHz! Precisa de memória para processar seu programa? Sem problemas, pois o ESP32 tem 512KB de SRAM!

Além do tradicional WiFi que funciona em modo AP e/ou Station, agora ele inclui um híbrido Bluetooth LE! E chega de falar que seu programa não cabe no ESP, pois dessa vez você conta com 16MB de flash.

O ADC está lá ainda operando na mesma tensão limite. Ele possui um sensor de efeito hall, 10 interfaces capacitivas de toque e um oscilador de 32kHz.

Precisa de GPIO? Ok, divirta-se com seus 32 GPIO! Ele inclui 3 UARTs, 3 SPI, 12 canais ADC (não mais 1, como o ESP8266), 2 DAC e 2 I²C. Ainda não está satisfeito? Ok. Ele tem PWM, timer, IN/OUT em cada um dos pinos de GPIO; entendeu isso? Em todos os pinos de GPIO!

Sabe aquela vontade de ter mais segurança no parque de hardwares da IoT? Então, sua vontade agora vai passar, por ele tem criptografia por hardware para AES e SHA2, com uma chave RSA de 4096 bits!

Ele tem mais alguns recursos que sequer conheço, então me ative ao que achei mais interessante, mas vale a pena dar uma olhada no overview do ESP32 no site da ESPressif.

Por onde começar?

Bem, como sempre cito, só utilizo Linux, então minhas dicas são voltadas a esse sistema, mas é muito parecido com o Windows. Para começar “leve”, vamos adicionar o suporte à IDE do Arduino, certo?

Preparando o ambiente de desenvolvimento no Windows

Vou deixar apenas o link porque não tenho como testar isso, mas o procedimento parece bastante simples, basta seguir os passos descritos nesse link.

Adicionando suporte ao ESP32 na IDE do Arduino (Linux)

Você precisará adicionar seu usuário ao grupo dialout para não precisar abrir a IDE como root. Normalmente isso já está feito e você nem tem que se preocupar. Outra coisa necessária é a instalação do pip para instalar o pyserial ou ainda, instalação via apt. Seguindo mais ou menos a documentação da ESPressif, você pode fazer como eu fiz:

Após, reinicie a IDE do Arduino e pronto.

Programar ESP32 com PlatformIO

Mais simples do que utilizar a IDE do Arduino e ainda contar com recursos extras, instalar o PlatformIO pode ser a solução perfeita para programar para o ESP32. Faça o download no site do PlatformIO, depois crie um novo projeto e selecione ESP32 na vasta lista de boards disponíveis.

Os passos para instalação são básicos:

1 – Faça o download do core.

2 – Baixe o conjunto de exemplos.

3 – Extraia os arquivos

4 – Rode essa sequência de comandos (ref: github):

Mas utilizando-o no Atom, você dispensa a utilização de linhas de comando. Então sugiro a IDE pronta para uso.

Utilizando a IDE CodeBlocks





Essa IDE também é multiplataforma. Tendo instalado o PlatformIO Core, você pode criar um projeto para manipular nessa IDE de maneira bem simples. Se você já instalou o PlatformIO IDE, não precisará instalar o PlatformIO Core. Apenas abra um terminal e digite:

Depois, abra o CodeBlocks e adicione arquivos através do Menu Files->New->File… e compile o projeto através de Build->Build. Para fazer o upload do firware, use Build->Run. Modificações nas bibliotecas (adição, etc) não refletem na IDE. Para que estas surtam efeito, reinicie o PlatformIO no diretório atual:

Isso gerará essa verbosidade:

Para iniciar um novo projeto em um diretório específico:

E inicialize o projeto para a board:

Utilizando a IDE NetBeans

Eu gosto de utilizar a IDE NetBeans para programar o ESP8266 com o framework Sming.  Inclusive escrevi alguns artigos para utilizá-lo conectado a um docker. Para adicionar suporte ao ESP32 nessa IDE (agora sem container), você precisa ter o PlatformIO Core previamente instalado. Depois crie um diretório para o seu projeto e entre nele:

Agora basta importar o projeto na IDE, abrindo-o em File->Project. Adicione arquivos para o diretório src clicnado com o botão direito na pasta src do painel Projects.

Para construir o firmware, use o menu Run->Build Project e para fazer o upload do firmware use Run->Run Project.

Sempre atente-se em fazer o init novamente toda a vez que atualizar alguma coisa relacionada às bibliotecas para que isso reflita no projeto atual.

ESP32 Pinout

Esse pinout está disposto no github da ESPressif. A board que estou utlizando é um ESP32 NodeMCU e a marcação dos pinos está na parte de trás dela e ao que pude notar, a distribuição está idêntica.

ESP32 pinout
ESP32 pinout

Primeiro programa – PlatformIO

Para fazer o primeiro teste, utilizei o PlatformIO IDE, criando um novo projeto e selecionando a board NodeMCU-32S. Criei um diretório em meu home camado “esp32” e aguardei que a IDE fizesse download dos componentes necessários. Isso leval uns minutinhos.

O primeiríssimo teste foi criar um arquivo “teste.ino” dentro do diretório src e colocar somente a estrutura setup() e loop(), então compilei para ver se algo de estranho acontecia. Sem problemas. A partir daí, fiz o blink do LED onboard.

Porque utilizei o PlatformIO invés da IDE do Arduino

Bem, uma coisa que me incomoda muito na IDE do Arduino é a falta de auto-complete. No PlatformIO ele não faz auto-complete dos comandos chave, exceto já tenha sido utilizado ao menos uma vez. Mas isso já ajuda bastante, por isso gosto de utilizá-lo. Aliás, prefiro qualquer IDE que não seja a do Arduino. Mas tenho certeza que muita gente prefere manter-se na rotina. Basta seguir o procedimento supracitado para implementar o suporte na IDE do Arduino e, do mesmo modo, selecione a board NodeMCU-32S no menu de boards e pronto.

Próximos artigos

Nos próximos artigos vou mostrar a utilização dos recursos do ESP32, manipulação dos rádios WiFi e BLE e em algum deles pretendo fazer testes comparativos de desempenho. Já vá adquirindo seu novo brinquedo para que possamos fazer juntos!

Vá até o final da página e veja se os artigos relacionados lhe interessam.

1 Star2 Stars3 Stars4 Stars5 Stars (78 votes, average: 5,00 out of 5)
Loading...

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Um comentário em “Primeiros passos com ESP32 e algumas IDEs

Comentários estão encerrados.