Referências Rápidas 🔖
Comandos ESP-IDF Essenciais
Para referência rápida durante desenvolvimento, aqui estão os comandos mais utilizados do sistema ESP-IDF que você usará repetidamente ao longo do projeto.
O comando idf.py build compila todo o projeto, gerando binários que podem ser carregados no ESP32. Este comando deve ser executado sempre que você fizer mudanças no código antes de tentar flashear dispositivo.
O comando idf.py flash carrega o código compilado para o ESP32 conectado via USB. Você pode combinar build e flash com idf.py build flash para executar ambas operações sequencialmente.
O comando idf.py monitor abre monitor serial que exibe saída de logging do dispositivo. Pressionar Ctrl+] fecha o monitor. Você pode combinar todas operações com idf.py build flash monitor.
O comando idf.py menuconfig abre interface de configuração onde você pode ajustar parâmetros de compilação, habilitar componentes opcionais e configurar aspectos do framework.
Tabela de Pinos GPIO Comuns do ESP32
Certos pinos GPIO do ESP32 têm características especiais ou restrições que você deve conhecer ao planejar conexões de hardware. GPIO0 é usado para boot mode selection e deve estar em nível alto durante boot normal. GPIO2 controla LED interno em muitas placas de desenvolvimento.
GPIO34 até GPIO39 são input-only e não podem ser configurados como saídas. Estes pinos também não têm pull-ups internos. GPIO6 até GPIO11 são conectados ao flash SPI interno e não devem ser usados para outras finalidades.
Pinos que suportam ADC incluem GPIO32-39 para ADC1 e GPIO0, 2, 4, 12-15, 25-27 para ADC2. Lembre-se que ADC2 não pode ser usado quando WiFi está ativo.
Códigos de Erro Comuns do ESP-IDF
Compreender significado de códigos de erro que você encontrará facilita diagnóstico rápido de problemas. ESP_OK com valor zero indica sucesso. ESP_FAIL indica falha genérica sem informação específica sobre causa.
ESP_ERR_NO_MEM significa que alocação de memória falhou devido a heap insuficiente. ESP_ERR_INVALID_ARG indica que parâmetro inválido foi passado para função. ESP_ERR_INVALID_STATE sugere que operação foi tentada quando componente estava em estado inapropriado.
ESP_ERR_TIMEOUT ocorre quando operação excedeu tempo limite especificado. ESP_ERR_NOT_FOUND indica que item buscado não existe. Sempre use esp_err_to_name() para converter código de erro em string legível para logging.