Se você acha que estou insistindo demais nos módulos ESP8266/ESP32… acho que sou culpado. Por incrível que pareça, esses microcontroladores representam um excelente ponto de partida para quem deseja molhar os pés nas águas do DIY, do código Arduino e de outras linguagens compatíveis. Existem muitas opções para programar um ESP32, mas hoje decidimos voltar ao canal do «atomic14», que nos ensina o mínimo necessário em termos de componentes…
Imagino que alguém deve pensar: «Lisandro, isto não faz sentido». Por que seguir esse caminho quando um módulo ESP32 com seu próprio regulador de voltagem, botões de reset, pinos soldados e porta micro USB incluída custa menos de 10 euros na Amazon? A resposta não é outra senão «aprendizado». Sim, um módulo ESP32 pronto para uso nos levará a bom porto com facilidade, mas um dia você precisará extraí-lo de outro produto, ou seu adaptador USB-para-serial falhará sem aviso. Conhecer o pinout e as funções internas de qualquer módulo ESP / Arduino / ATtiny / STM32 sempre é uma boa ideia, e o último vídeo do «atomic14» aponta nessa direção.
Programando um módulo ESP32 com componentes mínimos
A primeira coisa que devemos mencionar do tutorial é que ele só funciona com os modelos ESP32-S2 e ESP32-S3. A razão é simples: esses são os únicos membros da família ESP que trazem suporte USB-OTG (todos os outros exigem um adaptador). Ao mesmo tempo, não devemos perder de vista que o ESP32 trabalha a 3.3V, e qualquer tentativa de conectá-lo diretamente a 5V o iluminará como uma árvore de Natal… antes de destruí-lo. Então, o que precisamos exatamente?
- Uma fonte de 3.3V (bateria, adaptador, você escolhe), conectada ao pino correspondente (3v3 = +) e a um dos GND (-)
- O pino Enable, conectado aos 3.3V para colocá-lo em «high»
- IO19 é «Data -» da porta USB, enquanto IO20 é «Data +»
- IO0 deve estar conectado ao GND na primeira vez que programamos o ESP32. Não seria má ideia usar um botão aqui.
- O LED em IO2 e seu resistor são opcionais, mas muito úteis para verificar que tudo funciona.
- E claro, qualquer driver relevante para Windows (se você usar), acompanhado por um IDE compatível (Arduino IDE, PlatformIO, etc.)
Para finalizar, gostaria de acrescentar um detalhe que é quase mencionado no vídeo do atomic14: Muitos usuários relatam problemas de conectividade em alguns módulos ESP32, com a legenda «A fatal error occurred: Failed to connect to ESP32». O youtuber VoltLog sugere que isso se deve a um erro provocado pelo salto do sinal Enable, que modifica a condição do IO0. A solução é adicionar um capacitor de 1 microfarad entre o pino Enable e o GND. Isso torna o Enable um pouco mais lento e evita que o erro seja acionado.