Cursos e Conteúdos · Guia para Iniciantes

Guia Completo de ESP32: da Instalação ao Servidor Web

Um passo a passo completo desde o download da IDE do Arduino até criar um servidor web com o ESP32, passando por buzzer, potenciômetro, sensor de distância, Bluetooth e Wi-Fi. Pensado para quem está começando na eletrônica e na programação de sistemas embarcados.

Capa do guia ESP32 Básico: Seu Guia de Eletrônica e Programação

Este guia foi elaborado para iniciantes e entusiastas de eletrônica e programação de sistemas embarcados. Ao longo dele, você vai aprender a criar projetos práticos utilizando o microcontrolador ESP32 e seus componentes, partindo do zero.

Conheça o ESP32

Mapa de pinos do módulo, com GPIOs, entradas analógicas e pinos de alimentação.

Mapa de pinos do ESP32, com GPIOs, entradas analógicas e pinos de alimentação

Fonte do diagrama: espressif.com

Configuração do ambiente

Siga os passos abaixo para instalar e configurar tudo o que é necessário antes de programar o ESP32.

Passo 1: instale a IDE do Arduino

Baixe a IDE do Arduino no site oficial arduino.cc e instale no seu computador, de acordo com o seu sistema operacional.

Página de downloads da IDE do Arduino

Passo 2: configure o ESP32 na IDE

Em Preferências, adicione a URL do gerenciador de placas adicionais: pacote_esp32_index.json

Adicionando a URL do ESP32 nas preferências da IDE do Arduino

Em seguida, abra o Gerenciador de Placas, procure por "esp32" e instale o pacote da Espressif Systems.

Instalando o pacote de placas ESP32 pelo Gerenciador de Placas

Por fim, em Ferramentas, placas, ESP32, escolha o modelo que está utilizando.

Selecionando o modelo da placa ESP32 no menu Ferramentas

Verifique a porta COM

A porta COM é como uma ponte que liga o computador ao ESP32. Quando você conecta o ESP32 via cabo USB, o computador cria essa porta (COM3, COM9, etc.) para se comunicar com a placa. É por essa ponte que o código sai do computador e entra no ESP32.

Verificando a porta COM na IDE do Arduino

Estrutura de programação do ESP32

Existem diversas formas de programar o ESP32 por IDEs diferentes. Neste guia, usamos a IDE do Arduino. O código estrutural de todo Sketch (programa do Arduino, ESP32 neste caso) é exatamente igual ao do Arduino.

A primeira função, void setup(), é executada uma única vez ao iniciar ou resetar o ESP32, e serve para configurar o microcontrolador: definição de pinos, bibliotecas de sensores e atuadores. Nas linhas antes do void setup(), definimos as importações das bibliotecas, as variáveis globais e as constantes que serão utilizadas no Sketch.

Estrutura de programação do ESP32 com a IDE do Arduino: void setup e void loop

Passo 3: teste inicial

Carregue o exemplo Blink para verificar se tudo está funcionando corretamente, em Arquivo, Exemplos, 01.Basics, Blink.

Abrindo o exemplo Blink na IDE do Arduino

No código do exemplo, substitua "LED_BUILTIN" pelo número 2 em todos os campos, para que o código fique como no exemplo abaixo e faça o LED da placa piscar.

Código Blink ajustado, substituindo LED_BUILTIN pelo número 2

Com o código pronto, clique em enviar usando o programador.

Enviando o código para o ESP32 usando o programador

Aguarde o código ser carregado. Ao final, o LED da placa deve começar a piscar.

Aguardando o código ser carregado no ESP32, com a saída do upload

LED na protoboard

Depois do teste com o LED embutido na placa, monte o mesmo circuito com um LED externo.

Você pode colocar um LED no pino 2 do ESP32 junto com um resistor de 220 ohms. O resistor funciona como uma proteção para o LED, limitando a corrente para ele não queimar. Ligue o lado positivo do LED (o terminal maior) no pino 2, o lado negativo no resistor, e o outro lado do resistor no GND.

Se você já carregou o código básico que faz o LED da placa piscar, esse LED externo vai começar a piscar automaticamente assim que estiver conectado, sem precisar mudar nada no código.

Circuito com LED e resistor de 220 ohms na protoboard, conectado ao ESP32

Projetos práticos com o ESP32

Com o ambiente configurado, é hora de colocar a mão na massa em alguns circuitos simples.

LED com resistor, buzzer e botão

Este projeto com ESP32 é um circuito simples e funcional que une LED, resistor de 220 ohms, botão e buzzer, perfeito para quem está começando na eletrônica ou na programação embarcada. O ESP32 é alimentado via porta USB: a linha vermelha da protoboard está conectada ao 3.3V do ESP32, e a linha preta está conectada ao GND. Quando o botão é pressionado, o LED acende e o buzzer emite um som. Neste exemplo não utilizamos código de programação.

Circuito com LED, resistor, buzzer e botão conectados ao ESP32

Buzzer

Ligue o pino positivo (maior) a uma saída PWM do ESP32 (por exemplo, GPIO27) e o negativo ao GND. O código básico abaixo faz o ESP32 reproduzir uma nota musical através do buzzer.

Ligação do buzzer ao ESP32 e código básico para reproduzir um som

Ajustando o brilho de um LED com o potenciômetro

Ligações do potenciômetro: pino 1 no 3.3V, pino 2 no GPIO34, pino 3 no GND. Ligações do LED: anodo no GPIO14 (com suporte a PWM), cátodo em um resistor de 220 ohms até o GND. Com esse código você vai ajustar o brilho do LED através do potenciômetro.

Ligações e código para ajustar o brilho de um LED com potenciômetro

Sensor de distância

Este projeto usa um sensor ultrassônico HC-SR04 para medir distâncias e alertar quando um objeto está próximo (menos de 20 cm) com um LED e um buzzer. Quando o objeto estiver a uma distância menor que 20 cm, o LED acende e toca o buzzer. Abra o Monitor Serial para visualizar a leitura da distância.

Ligações e código do sensor de distância ultrassônico HC-SR04 com ESP32

Conectividade: Bluetooth e Wi-Fi

O grande diferencial do ESP32 é a conectividade sem fio embutida. Veja como usar Bluetooth e Wi-Fi na prática.

Controle de LED via Bluetooth com ESP32

Neste exemplo você aprenderá a controlar um LED conectado ao ESP32 usando comunicação Bluetooth com comandos enviados do seu celular. Utilizamos a biblioteca BluetoothSerial para receber os dados e acionar o pino do LED conforme o comando recebido.

Introdução ao controle de LED via Bluetooth com ESP32

Recursos abordados: uso da biblioteca BluetoothSerial, comunicação entre ESP32 e smartphone via Bluetooth clássico, e controle de hardware com comandos simples ("1" para ligar, "0" para desligar).

Recursos e passos principais do controle via Bluetooth Código completo do controle de LED via Bluetooth com ESP32

No celular, instale o app Serial Bluetooth Terminal, ative o Bluetooth e conecte-se ao dispositivo "ESP32_BT".

Instalando o app Serial Bluetooth Terminal e conectando ao ESP32_BT

Digite 1 para ligar o LED e 0 para desligar.

Testando o controle do LED pelo app Serial Bluetooth Terminal

Como escanear redes Wi-Fi com o ESP32

Esse código permite que o ESP32 procure por redes Wi-Fi disponíveis ao redor, mostrando o nome de cada rede (SSID), a força do sinal (RSSI), o canal e o tipo de segurança. O ESP32 é configurado no modo "somente cliente" (station) e, a cada 5 segundos, faz uma varredura das redes próximas, mostrando as informações no Monitor Serial da IDE do Arduino.

Introdução ao scanner de redes Wi-Fi com ESP32

Na IDE do Arduino, vá em Exemplos, ESP32, WiFi, e procure por WiFiScan.

Abrindo o exemplo WiFiScan na IDE do Arduino

Envie o código para o ESP32 e abra o Monitor Serial em 115200 baud para ver a lista de redes sendo atualizada a cada 5 segundos.

Resultado do scanner de redes Wi-Fi no Monitor Serial

Servidor Web com o ESP32

O passo final deste guia: transformar o ESP32 em um servidor web capaz de controlar um LED pela rede.

Servidor Web com Wi-Fi (AP Mode)

Neste exemplo, o ESP32 cria sua própria rede Wi-Fi (modo Access Point) e hospeda uma página web. Quando você se conecta a essa rede com o celular ou computador, pode acessar um site simples e controlar um LED com um clique. O ESP32 cria uma rede Wi-Fi chamada ESP32_AP, com a senha 12345678, e configura um servidor web na porta 80.

Introdução ao servidor web com ESP32 em modo Access Point

Quando um dispositivo se conecta e acessa o endereço IP do ESP32 (geralmente 192.168.4.1), ele vê uma página com dois links: Ligar LED (ativa o pino 2) e Desligar LED (desativa o pino 2). Tudo isso acontece sem precisar de internet, pois é o próprio ESP32 que cria a rede.

Como funciona o servidor web em modo Access Point Código completo do servidor web com ESP32 em modo Access Point Página web simples de controle do LED, acessada em 192.168.4.1

Exemplo melhorado: servidor web com botões estilizados

Objetivo: criar um servidor web local que controle um LED via Wi-Fi, com um design mais atrativo usando CSS e botões estilizados. Antes, vimos um exemplo simples com dois links de texto. Agora, evoluímos esse projeto com um visual muito mais moderno e amigável, usando HTML e CSS direto no código do ESP32.

Introdução ao exemplo melhorado do servidor web com botões estilizados

O ESP32 entra no modo Access Point e gera a rede ESP32_AP, inicia um servidor web interno na porta 80 e mostra o IP no Monitor Serial (geralmente 192.168.4.1). Ao abrir esse endereço no navegador, você vê uma página com dois botões grandes e coloridos: verde para ligar o LED e vermelho para desligar, com efeitos visuais em CSS ao passar o mouse.

Como funciona o servidor web estilizado com botões Código completo do servidor web estilizado com HTML e CSS

Carregue o código no ESP32, conecte-se ao Wi-Fi ESP32_AP (senha 12345678), acesse o IP do ESP32 em um navegador e clique nos botões para controlar o LED.

Instruções finais para usar o servidor web estilizado Resultado final: página web estilizada com botões para ligar e desligar o LED
Com este guia, você tem em mãos a porta de entrada para criar diversos projetos de eletrônica e IoT. Abraços, Tio Rafa

Pronto para o próximo passo com ESP32?

Apoio técnico: Equipe Mamute Eletrônica. O Kit Primeiros Passos ESP32, com videoaula do Tio Rafa, está disponível na Mamute Eletrônica.