Guias · 14 min de leitura

Plano de aula de ESP32: checklist de preparação para a primeira aula e roteiro de 40 minutos

Plano de aula de ESP32: na primeira aula, cada grupo carrega um código e acende um LED. Checklist de preparação, material para 24 alunos, roteiro de 40 minutos, código e 8 soluções rápidas.

Ao escrever um plano de aula de ESP32, resuma a primeira aula a um único objetivo: no fim, cada grupo carregou um código no próprio ESP32 e acendeu um LED. Wi-Fi, sensores e controle pelo celular ficam para as próximas aulas. Se 40 minutos bastam depende menos do que você faz na aula do que do que você faz antes dela: o driver USB-serial está instalado, o pacote de placas ESP32 está no Arduino IDE e o cabo da mesa transmite dados de verdade? Se esses três estiverem prontos, o primeiro carregamento leva cinco minutos; se não, metade da aula vai embora com “não aparece a porta”.

Este post traz um pacote para você levar à aula amanhã: um checklist para copiar com o que fazer uma semana antes, na véspera e na manhã da aula, uma tabela de material, um roteiro de 40 minutos minuto a minuto, dois sketches que compilam, cinco diferenças entre o ESP32 e o Arduino Uno, soluções de um minuto para os oito problemas mais comuns e perguntas de saída. Digamos que você tenha uma turma de 24 e divida os alunos em 8 grupos de três; todos os números abaixo partem disso. Se as suas aulas têm 45 ou 50 minutos, o tempo extra é a sua margem. Se o ESP32 ainda é novidade para você, leia antes o que é o ESP32.

Placa ESP32 DevKit de 30 pinos: porta Micro-USB, botões BOOT e EN, módulo ESP32-WROOM-32 e duas fileiras de pinos
A placa da primeira aula: um ESP32 DevKit de 30 pinos. Antes de começar, encontre com os alunos a porta USB, os botões BOOT e EN e os pinos D5, GND e 3V3 na placa.

Objetivo da primeira aula: por que só um LED?

Na primeira aula de ESP32 você tem duas opções: mostrar um projeto de Wi-Fi impressionante ou fazer todo mundo colocar algo pequeno para funcionar com as próprias mãos. A segunda ensina muito mais. Para acender um LED, o aluno precisa percorrer uma vez a cadeia inteira do início ao fim: abrir o código, escolher a placa e a porta, compilar, carregar, montar o circuito, ver o resultado e depois mudar um valor e carregar de novo. Quando essa cadeia funciona, as próximas aulas só acrescentam peças novas. Se você pular para o Wi-Fi antes disso, senhas de rede, drivers e cabos se acumulam e descobrir qual deles causou o erro fica quase impossível. Por isso este plano não tem rede na primeira aula: primeiro o LED integrado da placa, depois um único LED externo na protoboard e, para os grupos rápidos, os dois piscando alternadamente.

Checklist de preparação antes da aula

Divida a preparação em três etapas. Você pode copiar e imprimir a lista ou compartilhá-la com o técnico de informática da escola; tarefas que exigem permissão de administrador, como instalar drivers e programas, passam por ele na maioria das escolas. Uma semana antes:

  • Conte as placas e confira o modelo. Este plano foi escrito para o ESP32 DevKit de 30 pinos (com o módulo ESP32-WROOM-32); nas placas de 38 pinos o código é o mesmo, só muda a ordem dos pinos.
  • Leia o chip pequeno ao lado da porta USB da placa: é um CP2102, um CH340 ou um CH9102? Isso define qual driver você precisa.
  • Peça a instalação do Arduino IDE 2 nos computadores da sala. As máquinas da escola costumam exigir permissão de administrador para instalar, então reserve um horário com a informática.
  • No Arduino IDE, instale o pacote esp32 by Espressif Systems pelo Gerenciador de Placas. Ele baixa centenas de megabytes; na rede da escola, 40 minutos podem não bastar se você tentar fazer isso na aula.
  • Instale o driver USB-serial, conecte uma placa e confira se aparece uma porta nova em Ferramentas > Porta.
  • Teste os cabos: carregue um código em uma placa com cada um, separe os cabos que só carregam e marque os cabos de dados com fita colorida.
  • Encaixe um ESP32 em uma protoboard e veja se sobram furos livres dos dois lados. Se não sobrarem, cada grupo recebe duas protoboards.
  • Descubra os limites da rede da escola: o ESP32 só se conecta a Wi-Fi de 2,4 GHz, e redes corporativas que pedem usuário e senha são difíceis de usar. Você não vai usar Wi-Fi na primeira aula, mas vai precisar dessa informação nas próximas.
A armadilha do cabo que só carrega: alguns cabos Micro-USB e USB-C da gaveta foram feitos só para carregar e não têm os fios de dados. Com um cabo assim, o LED de alimentação da placa acende, o aluno acha que a placa está funcionando, mas nenhuma porta aparece no Arduino IDE. A primeira coisa que um grupo que diz “não tem porta” deve fazer é trocar o cabo. Marque os cabos de dados testados e não use na primeira aula cabos que os alunos trazem de casa.

Na véspera, todos os computadores devem estar prontos para a aula; o objetivo é que nenhuma etapa de configuração seja feita pela primeira vez durante a aula. Reserve também dez minutos na manhã da aula. As duas listas estão no mesmo lugar:

  • Véspera: faça um carregamento de teste em cada computador. Conecte a placa, selecione ESP32 Dev Module e a porta, carregue o sketch do LED integrado e veja o LED piscar. A primeira compilação pode levar mais de um minuto; esse teste também acelera as compilações seguintes.
  • Véspera: no Windows, cole na lateral do computador uma etiqueta com o número da porta (COM3, COM5 e assim por diante). A mesma placa ligada no mesmo soquete USB geralmente recebe o mesmo número.
  • Véspera: monte as caixas dos grupos: placa, cabo, protoboard, dois LEDs, dois resistores de 220 Ω, quatro jumpers. Deixe o conjunto reserva na mesa do professor.
  • Véspera: salve os dois sketches na área de trabalho de cada computador; se a internet ficar lenta, os alunos abrem o código de lá.
  • Véspera: confira se o projeto LED integrado do ESP32 piscando abre no BlueGrays no projetor.
  • Manhã da aula: ligue os computadores, abra o Arduino IDE e confira se a placa continua como ESP32 Dev Module.
  • Manhã da aula: desenhe na lousa um esboço simples da placa: porta USB, BOOT, EN, GND, 3V3 e GPIO5 (com a marcação D5 na placa).
  • Manhã da aula: escreva uma linha no canto da lousa: “Travou em Connecting...? Segure o BOOT.”
  • Manhã da aula: conte pela última vez os LEDs e resistores das caixas e coloque os cabos por cima.

Driver, pacote de placas e BOOT: detalhes que você precisa saber

Você pode ver dois pacotes de ESP32 no Gerenciador de Placas do Arduino IDE. Para as placas da sala, o certo é o pacote esp32 da Espressif; o chamado “Arduino ESP32 Boards” é para o Nano ESP32 da própria Arduino. Depois de instalar, escolha ESP32 Dev Module em Ferramentas > Placa > esp32. Se o pacote não aparecer na lista, você precisa adicionar o endereço do pacote da Espressif nas URLs do Gerenciador de Placas Adicionais, em Preferências; os passos estão em o que é o ESP32. Os sketches de ESP32 demoram mais para compilar do que os do Uno; mesmo para piscar um LED, a primeira compilação pode passar de um minuto. Avise os alunos antes, ou eles vão ficar apertando Carregar enquanto a barra de progresso parece travada. O chip USB-serial da placa define qual driver instalar:

Chip USB-serialComo reconhecer na placaNome da porta no WindowsObservação
CP2102 / CP2104Chip quadrado pequeno ao lado da porta USB, com a marcação CP2102 ou SiLabsSilicon Labs CP210x USB to UART Bridge (COMx)O Windows muitas vezes instala o driver sozinho; se não, você precisa do driver CP210x da Silicon Labs
CH340 (CH340C, CH340G)Chip retangular com a marcação CH340USB-SERIAL CH340 (COMx)Precisa do driver CH340 da WCH; às vezes o Windows Update o instala automaticamente
CH9102Chip quadrado pequeno nas placas mais novas, com a marcação CH9102USB-Enhanced-SERIAL CH9102 (COMx)Precisa do driver CH9102/CH343 da WCH; o driver CH340 não reconhece este chip

O botão BOOT está ligado ao pino GPIO0 do ESP32. Quando um carregamento começa, a placa precisa entrar no modo de programação; a maioria dos DevKits faz isso sozinha usando dois sinais do chip USB-serial. Com algumas combinações de placa e cabo, essa troca automática falha: os pontinhos de “Connecting...” na saída não param e você acaba com o erro “Failed to connect to ESP32”. A solução é segurar o BOOT assim que aparecer “Connecting...” e soltar quando começarem a rolar as linhas de progresso que começam com “Writing at”. O botão EN reinicia a placa; se o carregamento terminou mas o código parece não rodar, um toque no EN basta. Se o problema volta sempre na mesma placa, baixar o Upload Speed no menu Ferramentas de 921600 para 115200 costuma ajudar. No macOS, o nome da porta geralmente começa com cu.usbserial ou cu.SLAB_USBtoUART.

Não use Wi-Fi na primeira aula. O ESP32 só se conecta a redes de 2,4 GHz; as redes escolares muitas vezes exigem usuário e senha ou abrem uma página de login no navegador, e o ESP32 não consegue passar por essas páginas. Quando chegar a aula de Wi-Fi, o caminho mais prático é um ponto de acesso no celular do professor configurado na faixa de 2,4 GHz. Teste isso com a sua própria placa na véspera também.

Lista de material: por grupo e para uma turma de 24

Divida 24 alunos em grupos de três e você terá 8 grupos; com um de reserva, você prepara 9 conjuntos. Se preferir duplas, são 12 grupos mais um de reserva, ou seja, 13 conjuntos, e mais computadores na mesma proporção. Nenhuma peça precisa de solda. O motivo de dois LEDs e dois resistores por grupo é simples: um LED encaixado ao contrário ou com a perna quebrada é muito comum na primeira aula, e você não quer um grupo esperando.

ItemPor grupoPara a turma (8 grupos + 1 reserva)Observação
ESP32 DevKit (30 pinos, ESP32-WROOM-32)19Use um único modelo; modelos misturados confundem a ordem dos pinos
Cabo USB de dados (Micro-USB ou USB-C, conforme a placa)1112 cabos de reserva; todos testados e marcados
Protoboard (830 furos)192 por grupo se a placa não couber (18 para a turma)
LED vermelho de 5 mm220Um LED vermelho acende com folga em 3,3 V
Resistor de 220 Ω220Faixas de cores: vermelho-vermelho-marrom
Jumper macho-macho4cerca de 40Use sempre preto para o GND
Computador com Arduino IDE e o pacote ESP3218 + o computador do professorCom etiqueta do número da porta
Celular ou tablet com o BlueGrays aberto1 (opcional)8Para ler o esquema e o código; um projetor também serve
Caixa ou saquinho de peças19Confira tudo de volta no fim
Um ESP32 DevKit de 30 pinos cobre quase toda uma protoboard padrão e deixa só uma fileira de furos livre de um lado. Encaixe a placa de modo que o lado dos pinos D5 e GND fique com furos livres e monte o LED e o resistor desse lado. Nesta placa, D5, GND e 3V3 ficam na mesma fileira, então o circuito da primeira aula cabe de um lado só. Se mesmo assim não houver espaço, coloque duas protoboards lado a lado e encaixe uma fileira da placa em cada uma. Ao tirar a placa, levante as duas pontas por igual para não entortar os pinos.

O roteiro da aula de 40 minutos

O roteiro se apoia em dois projetos grátis do BlueGrays: primeiro o LED integrado do ESP32 piscando (sem circuito, só a placa e o cabo), depois o LED piscando com ESP32 (GPIO5, um resistor de 220 Ω e um LED). Os dois projetos têm a lista de peças, o esquema do circuito, o código, os blocos e o Entenda o código abertos de graça. Distribua três papéis em cada grupo e troque-os a cada etapa: um no teclado, um montando o circuito, um lendo o esquema e o código no celular ou no projetor. Assim ninguém passa 40 minutos só olhando.

MinutoEtapaProfessorAlunos
0–4Abertura e objetivoMostra a placa e diz o único objetivo: “Antes do sinal, cada grupo carrega o próprio código e acende um LED.” Comenta que a placa tem Wi-Fi como o celular deles, mas que hoje ele não vai ser usado.Dividem os papéis, abrem a caixa, contam as peças.
4–9Conhecendo a placaUsa o esboço da lousa para mostrar a porta USB, os botões BOOT e EN e os pinos GND, 3V3 e GPIO5; dá o aviso dos 3,3 V.Encontram esses pontos na própria placa e localizam o LED integrado.
9–17Primeiro carregamento: LED integradoAbre o projeto LED integrado do ESP32 piscando no projetor, mostra uma vez a escolha de placa e porta e repete o aviso do BOOT.Abrem ou copiam o código, selecionam ESP32 Dev Module e a porta e carregam; o LED pisca uma vez por segundo.
17–21Mudar um valorPergunta: “O que acontece se você escrever 200 no lugar de 1000?” e pede um palpite antes.Dão o palpite, mudam os dois valores de delay(), carregam de novo e comparam o resultado com o palpite.
21–31Circuito do LED externoProjeta o esquema do LED piscando com ESP32, aponta a perna longa do LED e a posição do resistor, circula pela sala e confere cada circuito com o USB desconectado.Desconectam o USB, montam GPIO5 → 220 Ω → perna longa do LED, perna curta → GND e carregam depois do OK do professor.
31–35MinitarefaDá aos grupos rápidos uma tarefa extra: fazer o LED integrado e o externo piscarem alternadamente. Com os grupos travados, confere primeiro o cabo e a direção do LED.Configuram os dois pinos como saída e apagam um enquanto o outro está aceso; quem termina passa para a tarefa Experimente você mesmo do Entenda o código.
35–38ArrumaçãoPede que todos desconectem o USB e contem as peças.Desmontam o circuito e contam as peças de volta na caixa.
38–40Perguntas de saídaEscreve as quatro perguntas na lousa ou as faz em voz alta.Escrevem respostas curtas no papel e entregam na saída.
Blocos em inglês do projeto LED integrado do ESP32 piscando: definição BUILTIN_LED_PIN = 2, configuração do pino como saída no setup, escrita de HIGH e LOW no loop e espera de 1000 ms
Os blocos do primeiro carregamento. Mostre esta imagem ao lado do código no projetor e os alunos percebem na hora que o bloco de definição corresponde à linha int, o bloco de configuração ao setup() e o bloco que se repete ao loop().

O código: LED integrado e LED externo

Os dois sketches abaixo usam os mesmos pinos e tempos dos projetos do app e compilam direto com ESP32 Dev Module selecionado no Arduino IDE. O primeiro faz o LED da placa piscar uma vez por segundo. Na maioria das placas ESP32 DevKit, esse LED azul está ligado ao GPIO2. No Arduino Uno, o LED integrado ficava no pino 13; alunos que já usaram um Uno podem digitar 13 por hábito, então mostre a diferença logo cedo.

C++ (Arduino IDE)
1// ESP32 Dahili LED Yakma / ESP32 built-in LED blink
2// Çoğu ESP32 DevKit kartında dahili LED GPIO2'dedir / On most ESP32 DevKit boards the built-in LED is on GPIO2
3int BUILTIN_LED_PIN = 2;   // Kartına göre değişebilir / May differ on your board
4
5void setup() {
6  pinMode(BUILTIN_LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
7}
8
9void loop() {
10  digitalWrite(BUILTIN_LED_PIN, HIGH);   // LED'i yak / Turn the LED on
11  delay(1000);                           // 1 saniye bekle / Wait 1 second
12  digitalWrite(BUILTIN_LED_PIN, LOW);    // LED'i söndür / Turn the LED off
13  delay(1000);                           // 1 saniye bekle / Wait 1 second
14}
15

O circuito do segundo sketch: do GPIO5 para uma ponta do resistor de 220 Ω, da outra ponta do resistor para a perna longa do LED (ânodo) e da perna curta do LED (cátodo) para o GND. O pino do ESP32 fornece 3,3 V; cerca de 2 V caem sobre um LED vermelho, e os 1,3 V restantes sobre 220 Ω dão uns 6 mA. Isso basta para um LED bem visível e não força o pino. Se usar outra cor, confira o resistor com a calculadora de resistor para LED. Na minitarefa, os grupos rápidos juntam os dois sketches: configuram os dois pinos como saída no setup() e, no loop(), escrevem HIGH em um enquanto o outro está em LOW.

C++ (Arduino IDE)
1// ESP32 ile LED Yakma: harici LED / ESP32 external LED blink
2// Bağlantı: GPIO5 -> 220 Ω direnç -> LED uzun bacak (+), kısa bacak (-) -> GND
3// Wiring: GPIO5 -> 220 ohm resistor -> LED long leg (+), short leg (-) -> GND
4const int LED_PIN = 5;   // Harici LED pini (kartta D5) / External LED pin (D5 on the board)
5
6void setup() {
7  pinMode(LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
8}
9
10void loop() {
11  digitalWrite(LED_PIN, HIGH);   // Pin 3,3 V verir, LED yanar / Pin outputs 3.3 V, LED on
12  delay(500);                    // Yarım saniye bekle / Wait half a second
13  digitalWrite(LED_PIN, LOW);    // Pin 0 V verir, LED söner / Pin outputs 0 V, LED off
14  delay(500);                    // Yarım saniye bekle / Wait half a second
15}
16
O LED integrado não fica no GPIO2 em todas as placas. Algumas, como a DevKitC da própria Espressif, têm só um LED vermelho de alimentação e nenhum LED programável; em outras, o LED está ligado a outro pino. Se o LED não piscar no carregamento de teste, confira a pinagem da sua placa; se não houver LED integrado, esse grupo vai direto para a etapa do LED externo. Usar um único modelo em todos os conjuntos da turma evita essas surpresas desde o começo.

5 diferenças entre o ESP32 e o Arduino Uno

Alguns dos seus alunos podem já ter usado um Arduino Uno. O código é escrito na mesma linguagem Arduino, e setup() e loop() estão onde sempre estiveram, mas o hardware é diferente, e a maioria dos erros da primeira aula vem dessas diferenças. Você pode tratar dos cinco pontos abaixo em poucos minutos, enquanto apresenta a placa. Para uma comparação mais detalhada, veja Arduino ou ESP32.

AssuntoArduino UnoESP32 DevKitO que isso significa na aula
Tensão lógica5 V3,3 V; os pinos não toleram 5 VNunca ponha 5 V em um GPIO; confira a tensão de saída de um módulo de 5 V antes de ligá-lo
Números dos pinosD0–D13 e A0–A5Usam-se os números GPIO; o pino marcado D5 na placa é 5 no códigoO número no código é o número GPIO da placa, não a posição contada a partir da borda
Pinos só de entradaNenhum; todos os pinos digitais podem ser saídasGPIO34, 35, 36 (VP) e 39 (VN) são só de entrada e não têm resistores de pull-up internos; GPIO6–11 estão ligados à memória flashUm LED no 34 nunca vai acender; na primeira aula, fique no GPIO2 e no GPIO5
Botões BOOT e ENUm único botão de reset; os carregamentos começam sozinhosBOOT (GPIO0) é para o modo de programação, EN é para reiniciarSegure o BOOT se o “Connecting...” demorar; aperte o EN se o código parecer não rodar
Conexão sem fioNenhumaWi-Fi de 2,4 GHz e Bluetooth (Classic e BLE) integradosNão é usado na primeira aula; é testado nas próximas com o ponto de acesso de um celular, dependendo da rede da escola

Os 8 problemas mais comuns em sala e soluções de um minuto

SintomaCausa provávelSolução de um minuto
O menu Ferramentas > Porta está vazio ou cinzaCabo que só carrega ou driver faltandoTeste um cabo de dados marcado; se a porta continuar sem aparecer, procure o nome do chip no Gerenciador de Dispositivos e teste a placa no computador do professor
“Connecting...” demora e depois aparece “Failed to connect to ESP32”A placa não entrou sozinha no modo de programaçãoCarregue de novo, segure o BOOT quando aparecer “Connecting...” e solte quando começarem as linhas “Writing at”
Erros do avrdude na saídaO Arduino Uno ainda está selecionado como placaSelecione Ferramentas > Placa > esp32 > ESP32 Dev Module e carregue de novo
O carregamento dá certo, mas nada muda no LEDPorta errada selecionada (várias placas conectadas)Desconecte a placa, veja qual porta some do menu Porta, conecte de novo e selecione essa porta; compare com a etiqueta do computador
O LED externo nunca acendeLED ao contrário, ou o resistor e o LED não estão na mesma fileira da protoboardVire o LED: perna longa do lado do resistor, perna curta para o GND; confira se as ligações dividem a mesma fileira
O circuito parece certo, mas o LED continua sem acenderO fio está em outro pino (como D4 ou D34)Leia a marcação do pino em que o fio está e compare com o número do código; evite os pinos 34–39
O código foi carregado, mas o LED integrado não piscaA placa não tem LED programável ou ele está em outro pinoConfira a pinagem da placa; passe direto para a etapa do LED externo
O LED fica sempre aceso ou a placa esquentaLED ligado ao 5V/VIN ou ao 3V3, ou 3V3 em curto com o GNDDesconecte o USB na hora; passe o LED para o GPIO5, encontre o fio em curto e só então conecte de novo
A regra dos três minutos: se um grupo ficar travado no mesmo problema por mais de três minutos, troque a placa e o cabo dele pelo conjunto reserva e examine a peça com defeito depois da aula. Um grupo perder a aula inteira por causa de um cabo ruim custa mais do que achar a causa na hora. Mesmo que a barra de progresso pareça congelada, não deixe apertarem Carregar uma segunda vez; a primeira compilação demora. Para verificações mais profundas de porta e driver, os passos de erro ao carregar código no Arduino valem também para o ESP32.

Perguntas de saída e uma prévia da segunda aula

  1. A qual pino da placa se refere o número 5 do código? Por que a placa pode mostrar “D5” ao lado desse pino?
  2. O que mudou no LED quando você escreveu delay(200) no lugar de delay(1000)? Quantas vezes por segundo o LED pisca agora?
  3. Por que o LED não acendeu quando estava encaixado ao contrário? Qual perna do LED vai do lado do resistor?
  4. Que tensão os pinos do ESP32 fornecem? Por que não devemos ligar um LED ou um módulo direto no pino 5V?

As respostas mostram qual ideia precisa ser retomada na segunda aula; um aluno que responde 2,5 à segunda pergunta entendeu a temporização. Na segunda aula, você acrescenta um botão ao mesmo circuito: no projeto Controle de LED com botão no ESP32 (momentâneo), o LED fica aceso enquanto você segura o botão, e no Controle de LED com botão no ESP32 (alternância), cada toque inverte o estado. Os dois são grátis e têm blocos; os alunos leem uma entrada pela primeira vez e tomam uma decisão com if. Na terceira ou quarta aula, você pode passar para o Wi-Fi; para essa aula, tenha à mão a tabela de códigos de status de ESP32 não conecta ao Wi-Fi. Os projetos de ESP32 com Wi-Fi no BlueGrays são Premium; se quiser que seus alunos avancem para eles, explicamos como funciona dar a cada um um código de um pacote para educadores, em vez de assinaturas separadas, em códigos Premium para a turma.

Como usar o BlueGrays na aula?

  • Encontre o projeto: em Explorar › Projetos, use Filtrar para definir a plataforma como ESP32 e o Preço como grátis. Os projetos de ESP32 adequados às primeiras aulas, como LED, botão, semáforo, sensor de luz e sensor de distância, vêm totalmente liberados.
  • Componentes necessários e Esquema do circuito: a lista de peças já vem com as quantidades. Você pode dar zoom no esquema e mostrá-lo no projetor, ou salvá-lo com Salvar na galeria e imprimir.
  • Código-fonte: Copiar coloca o código na área de transferência. Se um aluno abriu o projeto no celular, Copiar link gera um link para abrir o código no computador, então ninguém precisa digitar à mão.
  • Entenda o código: primeiro o resumo O que este código faz?, depois a explicação Passo a passo, a seção Se precisar de ajuda e a tarefa Experimente você mesmo. É um próximo passo pronto para os grupos que terminam a minitarefa antes.
  • Ver em blocos: todos os projetos grátis de ESP32 têm visualização em blocos. Ligue a chave e o código é substituído pelos blocos do mesmo programa, e a aba vira Entenda os blocos. Os blocos são para leitura; eles não são editados no app nem carregados na placa, que sempre recebe o código de verdade.
  • Vamos montar juntos: um modo guiado que passa por preparar os componentes, montar o circuito, carregar o código e executar e testar. A tela fica ligada, então o grupo consegue seguir os passos com o celular deitado na mesa; no fim, Concluir marca o projeto como feito.

A primeira aula pode parecer só um LED, mas nesses 40 minutos os alunos passam uma vez por compilação, carregamento, números de pinos, o limite de 3,3 V e depuração, e toda aula seguinte de ESP32 se apoia nisso. Tratamos de cada seção da página do projeto em detalhes no guia da página de projeto. Se quiser montar os dois projetos você mesmo uma vez antes da aula, abra o LED integrado do ESP32 piscando no app BlueGrays; o esquema, o código, os blocos e o Entenda o código estão todos lá, e o seu ensaio não vai levar mais de dez minutos.

Perguntas frequentes

O que uma primeira aula de ESP32 deve cobrir?

O objetivo da primeira aula é que cada grupo carregue um código no próprio ESP32 e acenda um LED: primeiro o LED integrado da placa, depois um LED externo com um resistor de 220 Ω em uma protoboard. Wi-Fi e sensores ficam para as próximas aulas. Assim os alunos passam uma vez, sem complicação, por compilação, carregamento e números de pinos.

Qual placa eu seleciono para o ESP32 no Arduino IDE?

Para placas genéricas como o ESP32 DevKit, instale o pacote esp32 da Espressif e escolha ESP32 Dev Module em Ferramentas > Placa > esp32. O pacote Arduino ESP32 Boards é para o Arduino Nano ESP32. Se a placa ficar como Arduino Uno, o carregamento para com um erro do avrdude.

Por que o meu ESP32 não aparece no computador?

Troque o cabo primeiro; muitos cabos USB só carregam e não transmitem dados. Depois leia o chip USB-serial da placa (CP2102, CH340 ou CH9102) e instale o driver correspondente. No Windows, deve aparecer uma porta COM nova em Portas, no Gerenciador de Dispositivos.

Preciso apertar o botão BOOT para carregar no ESP32?

A maioria dos DevKits entra sozinha no modo de programação, então você não precisa do BOOT. Se o “Connecting...” demorar e aparecer “Failed to connect to ESP32”, comece o carregamento de novo, segure o BOOT quando aparecer “Connecting...” e solte quando a gravação começar. Se continuar acontecendo, baixe a velocidade de carregamento para 115200.

Em qual pino fica o LED integrado do ESP32?

Nas placas ESP32 DevKit comuns de 30 pinos, o LED azul integrado está ligado ao GPIO2. Mas depende da placa: a DevKitC da Espressif tem só um LED de alimentação, e em algumas placas o LED fica em outro pino. Se não tiver certeza, confira a pinagem da placa ou use um LED externo em uma protoboard.

Uma escola pode começar pelo ESP32 em vez do Arduino Uno?

Sim; o código é escrito na mesma linguagem Arduino, e a primeira aula com LED é quase idêntica. As diferenças são o nível lógico de 3,3 V, a numeração GPIO, os pinos só de entrada e o botão BOOT, e alguns minutos na primeira aula bastam para tratar deles. A configuração leva um pouco mais de tempo do que com um Uno, mas, em troca, Wi-Fi e Bluetooth ficam prontos para as próximas aulas.

Ver todos os projetos
LED integrado do ESP32 piscando
#106Iniciante

LED integrado do ESP32 piscando

Faça o LED azul integrado do ESP32 DevKit V1 piscar. Nenhum componente externo é necessário! O primeiro projeto para experimentar ao comprar um ESP32. GPIO 2 está conectado ao LED integrado.

4.8(29)
53
LED piscando com ESP32
#103Iniciante

LED piscando com ESP32

Ensina o uso básico de uma saída GPIO no ESP32. Fazemos um LED piscar ligando e desligando um pino digital. É a versão para ESP32 do clássico projeto blink do Arduino UNO: os comandos básicos de blink no ambiente Arduino são os mesmos, mas a disposição dos pinos e os níveis de 3,3 V dos GPIOs do ESP32 diferem dos do Arduino UNO.

4.7(37)
99
Controle de LED com botão no ESP32 (momentâneo)
#104Iniciante

Controle de LED com botão no ESP32 (momentâneo)

O LED acende enquanto o botão está pressionado e apaga ao soltá-lo. Mostra como usar o pino de entrada digital e o resistor pull-up interno do ESP32. O modo INPUT_PULLUP dispensa um resistor externo.

4.6(36)
55
Controle de LED com botão no ESP32 (alternância)
#105Iniciante

Controle de LED com botão no ESP32 (alternância)

Cada vez que o botão é pressionado, o estado do LED muda: se estiver aceso, apaga; se estiver apagado, acende. É o padrão clássico de alternância. Com debounce, eliminamos o ruído mecânico dos contatos do botão para garantir uma única mudança a cada pressionamento.

4.6(39)
57
Semáforo com ESP32
#107Iniciante

Semáforo com ESP32

Simulação de um semáforo real com 3 LEDs: vermelho, amarelo e verde. Os tempos se aproximam da lógica real: vermelho longo, amarelo curto e verde longo. Um exemplo clássico de controle sequencial de GPIOs.

4.4(21)
44
Leitura da intensidade da luz com módulo LDR e ESP32
#113Iniciante

Leitura da intensidade da luz com módulo LDR e ESP32

Acompanhe em tempo real no Monitor Serial o valor bruto do ADC do módulo LDR e a porcentagem relativa de luz calculada a partir de referências de escuridão e claridade. Essa porcentagem não é uma medida em lux. O projeto ensina a lógica de calibração do módulo. É ideal fazê-lo antes do projeto 10, pois ajuda a determinar o valor do limiar.

4.6(36)
55
Medidor ultrassônico de distância HC-SR04 com ESP32
#116Intermediário

Medidor ultrassônico de distância HC-SR04 com ESP32

O sensor ultrassônico HC-SR04 calcula a distância medindo o tempo que a onda sonora emitida leva para atingir um objeto e retornar (tempo de voo). Neste projeto, enviaremos um pulso de 10 microssegundos do ESP32 ao pino TRIG do sensor e leremos a duração do eco no pino ECHO com pulseIn(). Exibiremos a distância calculada em centímetros em um LCD I2C 16x2. Como o HC-SR04 opera a 5V, é preciso usar um divisor de tensão no pino ECHO; caso contrário, o GPIO de 3,3V do ESP32 será danificado.

4.9(28)
45
Temperatura e umidade com ESP32 e DHT22 (com display LCD)
#117Intermediário

Temperatura e umidade com ESP32 e DHT22 (com display LCD)

Este projeto mede a temperatura e a umidade do ambiente com um sensor DHT22 e exibe os dados em tempo real em um LCD I2C 16x2. Os dados são lidos do sensor pelo protocolo de um fio (one-wire) com a biblioteca Adafruit DHT. Este projeto serve de base para estações meteorológicas IoT, automação residencial ou sistemas de monitoramento ambiental em estufas. A comunicação com o DHT22 é feita pelo pino GPIO 4 do ESP32.

4.8(38)
56