Pular para o conteúdo principal

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)​

  1. Abra o Prompt de Comando ou o PowerShell como administrador (opcional, mas recomendado).
  2. Verifique se o Python está instalado:
    python --version
  3. Instale o esptool:
    pip install esptool
  4. Confirme a instalação:
    esptool version
    (Deve aparecer algo como 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)​

  1. Conecte o ESP32 no computador via USB.
  2. Abra o Gerenciador de Dispositivos (clique com botão direito no Menu Iniciar → Gerenciador de Dispositivos).
  3. Expanda a seção Portas (COM e LPT).
  4. Procure por um dispositivo similar a:

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)​

ProblemaSolução
Failed to connect / No serial data receivedSegure o botão BOOT, aperte e solte o EN/RESET, depois solte o BOOT
Porta não encontradaVerifique 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 chipTente com baud rate menor: esptool --port COM4 --baud 115200 chip-id
Ainda não funcionaUse o modo trace: esptool --port COM4 --trace chip-id

5. Atividade Prática (para os alunos)​

  1. Cada aluno deve anotar:

    • Número da porta COM
    • Modelo do chip detectado
    • MAC Address
    • Tamanho da flash
  2. Tire um print ou anote o resultado do comando chip-id e 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:

  1. Instalar e configurar o VS Code.
  2. Utilizar o PlatformIO para criar um projeto.
  3. Programar um ESP32 utilizando o framework Arduino.
  4. Compilar e executar o código.
  5. Simular o circuito no Wokwi.
  6. Utilizar Git para controlar versões.
  7. 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çãoValor
Nameesp32-test
BoardEspressif ESP32 Dev Module
FrameworkArduino
LocationDiretó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:

  1. Executar o Build.
  2. Corrigir possíveis erros.
  3. Executar a simulação no Wokwi.
  4. Verificar as mensagens no monitor serial.
  5. 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.