Blog
Bibliotecas do ESP32: instalar, usar e corrigir
Instalar uma biblioteca é a metade fácil — a metade difícil é o mismatch de versão que quebra o próximo compile. Onde as bibliotecas vivem, como escolher uma que funciona e o que fazer quando o exemplo não compila.
Como instalar biblioteca do ESP32 no Arduino?
Library Manager (Sketch → Include Library → Manage Libraries), procure, instale — a maioria das bibliotecas de ESP32 está lá. O caminho manual: baixe o ZIP, Sketch → Include Library → Add .ZIP Library. Uma pegadinha: o Library Manager lista tudo para toda placa, então filtre por tags ESP32 ou confira que o repo diz arduino-esp32. O FAQ da Arduino IDE cobre a estrutura de pastas.
Como usar a biblioteca de GIF animado no ESP32?
A AnimatedGIF do Larry Bank é a referência — combine com a TFT_eSPI e ela toca GIFs nas telas SPI comuns. GIFs decodificam para frames crus, então RAM importa: um frame de 320×240 tem uns 150 KB, e é por isso que animação sofre em chips de 2 MB e canta em placas com PSRAM. No meu ILI9341 de 240×320 rodou a uns 15 FPS, suave o bastante para uma animação em loop. A página de projetos de exemplo tem uma montagem funcional.
Existe biblioteca serial no ESP32?
Sim — a HardwareSerial vem embutida no core, sem instalação. Serial, Serial1 e Serial2 existem no ESP32 clássico; no C3 e no S3, a disponibilidade de Serial1 e Serial2 depende da quantidade de UARTs do chip. “Harware serial” é typo de busca; é a mesma biblioteca embutida de qualquer forma.
Por que minha biblioteca compila numa placa e não em outra?
Config específica da placa — pinos em #define, presença de PSRAM, tamanho do flash. Muitas bibliotecas de ESP32 assumem um WROOM-32 com 4 MB de flash e fixam pinos que placas S3 roteiam diferente. Leia o README da biblioteca para a tabela de placas; se ela lista placas, a sua precisa estar nela.
Biblioteca instalada mas não encontrada?
Reinicie a IDE, depois confira a pasta do sketchbook: File → Preferences mostra ela, e bibliotecas de usuário vivem em <sketchbook>/libraries. Duas falhas comuns: o ZIP extraiu numa pasta aninhada (o Arduino quer o .h um nível abaixo), ou a IDE cacheou uma cópia corrompida — delete e reinstale. A base de conhecimento tem o passo a passo com capturas.
A atualização do core quebrou minha biblioteca — e agora?
O salto da 2.x para a 3.x do arduino-esp32 renomeou APIs; bibliotecas presas em nomes antigos falham com erros confusos. Correções, em ordem: atualize a biblioteca, leia o changelog dela, ou prenda o core no Boards Manager na versão que a biblioteca nomeia.
Bibliotecas embutidas vs de terceiros — qual é a diferença?
Embutida significa que o core entrega — WiFi.h, HardwareSerial, SPI, Wire. Terceiros significa um repo externo — sensores, displays, serviços. As embutidas atualizam junto com o core; as de terceiros atualizam no cronograma delas, que é exatamente por que prender versões importa.
Duas bibliotecas definem a mesma função — conflito?
Sim, e o linker escolhe uma em silêncio ou dá erro. O C++ não te impede; o resultado é cara ou coroa de qual será chamada. Ache o duplicado pela mensagem de erro e desinstale uma biblioteca ou use o namespace dela, se tiver. Eu bati nisso com duas bibliotecas de DHT uma vez; a correção foi deletar a que eu nunca usava.
Como saber de qual biblioteca um sketch precisa?
Leia as linhas #include e procure cada nome no Library Manager — Adafruit BMP280, U8g2, o que for. O README ou o header do exemplo normalmente nomeia o fork preferido do autor, o que importa para bibliotecas renomeadas. A biblioteca com issues que realmente são fechados é a que funciona.
Dá para escrever minha própria biblioteca ESP32?
Sim — uma pasta com .h, .cpp e library.properties dentro de <sketchbook>/libraries é uma biblioteca. Exporte a API que você usa, mantenha detalhes de hardware na config do header, e uma biblioteca ESP32 é só uma biblioteca Arduino que faz #ifdef de headers ESP32.
Os projetos deste tópico rodam direto no simulador gratuito do sensbench: circuito pré-montado, firmware incluído, sem conta e sem instalação.