ESP32 com esptool no Windows
Aula de Laboratório – Teste Inicial do ESP32 com esptool no Windows
Duração sugerida: 60–90 minutos
Nível: Iniciante
Objetivo da aula: Verificar se o ESP32 está funcionando corretamente, se a comunicação serial está ok e se os drivers USB estão instalados, usando a ferramenta oficial esptool.
1. Objetivos de Aprendizagem
Ao final desta aula o aluno deverá ser capaz de:
- Instalar o esptool no Windows
- Identificar a porta COM correta do ESP32
- Executar os principais comandos de diagnóstico
- Interpretar o resultado e resolver problemas comuns de conexão
- Confirmar que o chip responde (teste de hardware básico)
2. Pré-requisitos
- Windows 10 ou 11
- Python 3.8 ou superior instalado (com opção “Add Python to PATH” marcada)
- Cabo USB de dados (não só de carga)
- Placa ESP32 (qualquer modelo: DevKit, NodeMCU-32S, etc.)
3. Materiais Necessários
- Computador com Windows
- Placa ESP32
- Cabo USB
- Acesso à internet (apenas para instalação)
4. Passo a Passo da Aula
Etapa 1 – Instalação do esptool (10 min)
- Abra o Prompt de Comando ou o PowerShell como administrador (opcional, mas recomendado).
- Verifique se o Python está instalado:
python --version
- Instale o esptool:
pip install esptool
- Confirme a instalação:
(Deve aparecer algo comoesptool version
esptool.py v4.x.x)
Dica: Se aparecer erro de “pip não reconhecido”, use
python -m pip install esptool.
Etapa 2 – Identificar a Porta COM (10 min)
- Conecte o ESP32 no computador via USB.
- Abra o Gerenciador de Dispositivos (clique com botão direito no Menu Iniciar → Gerenciador de Dispositivos).
- Expanda a seção Portas (COM e LPT).
- Procure por um dispositivo similar a:
- Silicon Labs CP210x USB to UART Bridge (COMx)
- CH340/CH341 USB to serial port Windows driver
- FTDI ou “USB Serial Device (COMx)”
Anote o número da porta (ex: COM4, COM6, COM12).
Se não aparecer nenhuma porta nova, o driver não está instalado. Baixe o driver correspondente (CP210x ou CH340) no site do fabricante da placa.
Etapa 3 – Teste Básico com esptool (20 min)
No Prompt de Comando ou PowerShell, execute os comandos abaixo substituindo COM4 pela sua porta:
Comando 1 – Teste principal (recomendado)
esptool --port COM4 chip-id
Comando 2 – Informações da memória flash
esptool --port COM4 flash-id
Comando 3 – Endereço MAC do chip
esptool --port COM4 read-mac
Comando 4 – Resumo completo (muito útil)
esptool --port COM4 chip-id flash-id read-mac
Etapa 4 – Interpretação do Resultado (15 min)
Resultado esperado (exemplo real):
esptool.py v4.8.1
Serial port COM4
Connecting........
Detecting chip type... ESP32
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in eFuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:6f:28:xx:xx:xx
Uploading stub...
Running stub...
Stub running...
Chip ID: 0x00a1b2c3
Hard resetting via RTS pin...
O que isso significa?
- Comunicação serial OK
- Drivers funcionando
- Chip respondendo corretamente
- ESP32 está “vivo”
Etapa 5 – Problemas Comuns e Soluções (15 min)
| Problema | Solução |
|---|---|
Failed to connect / No serial data received | Segure o botão BOOT, aperte e solte o EN/RESET, depois solte o BOOT |
| Porta não encontrada | Verifique no Gerenciador de Dispositivos se o driver está ok |
| “Acesso negado” | Feche Arduino IDE, PlatformIO, Serial Monitor ou qualquer outro programa usando a porta |
| Não detecta o chip | Tente com baud rate menor: esptool --port COM4 --baud 115200 chip-id |
| Ainda não funciona | Use o modo trace: esptool --port COM4 --trace chip-id |
5. Atividade Prática (para os alunos)
-
Cada aluno deve anotar:
- Número da porta COM
- Modelo do chip detectado
- MAC Address
- Tamanho da flash
-
Tire um print ou anote o resultado do comando
chip-ide entregue ao professor.
6. Próximos Passos (para a próxima aula)
- Apagar a flash (
esptool --port COMx erase-flash) - Gravar o primeiro firmware (exemplo WiFi Scan)
- Testar conexão WiFi
Aula de teste: VS Code + PlatformIO + ESP32 + Arduino + Wokwi + Git
Uma boa aula de teste inicial pode ter como objetivo validar todo o ambiente de desenvolvimento antes de iniciar projetos mais complexos de IoT.
Objetivo da aula
Ao final, o aluno deverá conseguir:
- Instalar e configurar o VS Code.
- Utilizar o PlatformIO para criar um projeto.
- Programar um ESP32 utilizando o framework Arduino.
- Compilar e executar o código.
- Simular o circuito no Wokwi.
- Utilizar Git para controlar versões.
- Publicar o projeto em um repositório remoto.
1. Visão geral do ambiente
┌───────────────────────────────────────────────┐
│ VS Code │
│ │
│ ┌──────────────┐ ┌───────────────────┐ │
│ │ PlatformIO │─────▶│ ESP32 + Arduino │ │
│ └──────────────┘ └───────────────────┘ │
│ │ │
│ ├──────────────▶ Wokwi │
│ │ Simulação │
│ │ │
│ └──────────────▶ Git │
│ │ │
└──────────────────────────────┼────────────────┘
│
▼
Repositório Git
2. Pré-requisitos
Os alunos devem possuir:
- Visual Studio Code
- Extensão PlatformIO IDE
- Git
- Conta no GitHub
- Conta no Wokwi, caso necessário
Extensões recomendadas no VS Code:
- PlatformIO IDE
- Wokwi Simulator
- GitHub Pull Requests and Issues
- GitLens (opcional)
3. Criando o projeto PlatformIO
No VS Code:
PlatformIO Home
↓
New Project
Configuração sugerida:
| Opção | Valor |
|---|---|
| Name | esp32-test |
| Board | Espressif ESP32 Dev Module |
| Framework | Arduino |
| Location | Diretório de trabalho |
A estrutura inicial será semelhante a:
esp32-test/
│
├── .pio/
├── .vscode/
├── include/
├── lib/
├── src/
│ └── main.cpp
├── test/
│
├── .gitignore
└── platformio.ini
4. Configuração do ESP32
Arquivo:
platformio.ini
Configuração inicial:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
5. Primeiro programa: Blink + Serial
Arquivo:
#include <Arduino.h>
#define LED_PIN 2
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
Serial.println("ESP32 iniciado!");
}
void loop() {
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
delay(1000);
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
delay(1000);
}
Esse programa permite testar simultaneamente:
- compilação;
- framework Arduino;
- GPIO;
- monitor serial;
- simulação.
6. Testando o projeto
O PlatformIO disponibiliza os comandos principais:
✓ Build
→ Upload
🔌 Serial Monitor
🗑 Clean
Fluxo:
Código
↓
Build
↓
Compilação
↓
Sem erros?
│
├── Não → Corrigir código
│
└── Sim
↓
Upload
↓
ESP32 físico
Mesmo sem possuir a placa física, podemos continuar utilizando o Wokwi.
7. Simulação com Wokwi
Adicionar o arquivo:
wokwi.toml
Exemplo:
[wokwi]
version = 1
firmware = ".pio/build/esp32dev/firmware.bin"
elf = ".pio/build/esp32dev/firmware.elf"
Criar também:
diagram.json
Exemplo básico:
{
"version": 1,
"author": "Aula de Teste",
"editor": "wokwi",
"parts": [
{
"type": "board-esp32-devkit-c-v4",
"id": "esp",
"top": 0,
"left": 0,
"attrs": {}
}
],
"connections": []
}
A estrutura passa a ser:
esp32-test/
│
├── src/
│ └── main.cpp
│
├── platformio.ini
├── wokwi.toml
├── diagram.json
│
└── .gitignore
8. Fluxo PlatformIO + Wokwi
O fluxo esperado durante a aula será:
┌──────────────┐
│ VS Code │
└──────┬───────┘
│
▼
┌──────────────┐
│ main.cpp │
│ Arduino │
└──────┬───────┘
│
▼
┌──────────────┐
│ PlatformIO │
│ Build │
└──────┬───────┘
│
▼
┌──────────────┐
│ firmware.bin │
└──────┬───────┘
│
▼
┌──────────────┐
│ Wokwi │
│ Simulação │
└──────────────┘
9. Teste do monitor serial
Durante a simulação, o aluno deverá observar:
ESP32 iniciado!
LED ON
LED OFF
LED ON
LED OFF
...
Esse teste confirma que:
- o código foi compilado corretamente;
- o ESP32 virtual está executando;
- a comunicação serial está funcionando;
- o ambiente PlatformIO + Wokwi está integrado.
10. Inicializando o Git
No terminal do VS Code:
git init
Verificar os arquivos:
git status
Adicionar os arquivos:
git add .
Criar o primeiro commit:
git commit -m "Initial ESP32 PlatformIO Wokwi project"
11. .gitignore
O PlatformIO normalmente deve ignorar arquivos gerados automaticamente.
Exemplo:
.pio/
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch
É importante não versionar:
.pio/
pois contém os arquivos de compilação.
Por outro lado, é interessante manter no repositório:
platformio.ini
src/
include/
lib/
test/
diagram.json
wokwi.toml
README.md
12. Publicando no GitHub
Após criar um repositório remoto:
git branch -M main
Adicionar o repositório remoto:
git remote add origin SEU_REPOSITORIO
Enviar:
git push -u origin main
Fluxo completo:
┌─────────────┐
│ Desenvolver │
└──────┬──────┘
▼
┌─────────────┐
│ Build │
└──────┬──────┘
▼
┌─────────────┐
│ Simular │
│ Wokwi │
└──────┬──────┘
▼
┌─────────────┐
│ git status │
└──────┬──────┘
▼
┌─────────────┐
│ git add │
└──────┬──────┘
▼
┌─────────────┐
│ git commit │
└──────┬──────┘
▼
┌─────────────┐
│ git push │
└─────────────┘
13. Atividade prática da aula
Desafio: LED piscando com configuração
Modificar o programa para que o LED alterne entre:
LED ligado por 500 ms
LED desligado por 500 ms
Depois:
- Executar o Build.
- Corrigir possíveis erros.
- Executar a simulação no Wokwi.
- Verificar as mensagens no monitor serial.
- Criar um commit.
Exemplo:
git add .
git commit -m "Configure LED blink interval"
git push
14. Desafio adicional: adicionar botão
Como próxima etapa da aula, adicionar:
ESP32
│
├── LED
│
└── Botão
Funcionamento:
Botão pressionado
↓
ESP32 detecta entrada
↓
LED alterna de estado
↓
Mensagem enviada ao Serial Monitor
Isso permite testar:
pinMode();digitalRead();digitalWrite();INPUT_PULLUP;- simulação de entradas digitais;
- controle de versões.
Resultado esperado
Ao final da aula, cada aluno deverá possuir um projeto semelhante a:
esp32-platformio-wokwi-test/
│
├── src/
│ └── main.cpp
│
├── include/
├── lib/
├── test/
│
├── diagram.json
├── wokwi.toml
├── platformio.ini
├── .gitignore
└── README.md
com o seguinte fluxo de trabalho:
VS Code → PlatformIO → ESP32/Arduino → Wokwi → Git → GitHub
Isso cria uma excelente aula zero, pois valida toda a cadeia de ferramentas que será utilizada posteriormente em projetos de IoT mais completos.
Posso também montar o repositório-base completo, com README.md, código do ESP32, diagram.json, configuração do Wokwi e uma sequência de exercícios para os alunos.