ESP32 - Controla LED via Web
Neste tutorial, vamos aprender a controlar um LED por uma interface web, usando um navegador em um PC ou celular, com o ESP32. Em detalhe, o ESP32 será programado para funcionar como um servidor web. Vamos supor que o endereço IP do ESP32 seja 192.168.0.2. Veja os detalhes de como funciona:
- Quando você digita 192.168.0.2 no navegador, o navegador envia uma requisição ao ESP32, e o ESP32 responde com uma página web que contém o botão de liga/desliga para controlar o LED.
- Da mesma forma, quando você clica no botão "Turn ON" na página web ou digita 192.168.0.2/led1/on no navegador, o ESP32 liga o LED e responde com a página web de controle.
- Do mesmo modo, quando você clica no botão "Turn OFF" na página web ou digita 192.168.0.2/led1/off no navegador, o ESP32 desliga o LED e responde com a página web de controle.

Vamos aprender com dois códigos de exemplo:
- O conteúdo HTML está embutido no código do ESP32
- O conteúdo HTML está separado do código do ESP32 e colocado em um arquivo .h
O tutorial oferece os fundamentos que você pode personalizar de forma fácil e inovadora para conseguir o seguinte:
- Controlar vários LEDs pela web
- Redesenhar a interface de usuário (UI) web
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.
Sobre o LED e o ESP32
Se você não conhece o LED e o ESP32 (pinagem, como funciona, como programar ...), aprenda sobre eles nos tutoriais a seguir:
- Tutorial ESP32 - LED
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32 - O conteúdo HTML está embutido no código do ESP32
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para ESP32 no Arduino IDE.
- Faça a ligação como na imagem acima.
- Conecte a placa ESP32 ao seu PC por um cabo micro USB
- Abra o Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda do Arduino IDE.
- Pesquise por “DIYables ESP32 WebServer” e encontre a biblioteca Web Server criada pela DIYables.
- Clique no botão Install para instalar a biblioteca Web Server.

- Copie o código acima e abra no Arduino IDE
- Altere as informações de WiFi (SSID e senha) no código para as suas
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP32
- Abra o Serial Monitor
- Veja o resultado no Serial Monitor.
- Você verá um endereço IP, por exemplo: 192.168.0.2. Esse é o endereço IP do Servidor Web do ESP32
- Abra um navegador e digite um dos três formatos abaixo na barra de endereços:
- Lembre-se de que o endereço IP pode ser diferente. Confira o valor atual no Serial Monitor.
- Você também verá a saída abaixo no Serial Monitor
- Verifique o estado do LED
- Você verá a página web da placa ESP32 no navegador, como abaixo

- Agora você já consegue ligar/desligar o LED pela interface web
Código ESP32 - O conteúdo HTML está separado do código do ESP32
Como uma página web gráfica contém uma grande quantidade de conteúdo HTML, embuti-la no código do ESP32 como antes fica inconveniente. Para resolver isso, precisamos separar o código do ESP32 e o código HTML em arquivos diferentes:
- O código do ESP32 será colocado em um arquivo .ino.
- O código HTML (incluindo HTML, CSS e Javascript) será colocado em um arquivo .h.
Passos Rápidos
- Abra o Arduino IDE e crie um novo sketch. Dê um nome a ele, por exemplo, newbiely.com.ino
- Copie o código abaixo e abra no Arduino IDE
- Altere as informações de WiFi (SSID e senha) no código para as suas
- Crie o arquivo index.h no Arduino IDE da seguinte forma:
- Clique no botão logo abaixo do ícone do Serial Monitor e escolha New Tab, ou use as teclas Ctrl+Shift+N.
- Dê ao arquivo o nome index.h e clique no botão OK
- Copie o código abaixo e cole no index.h.
- Agora você tem o código em dois arquivos: newbiely.com.ino e index.h
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP32
- Acesse a página web da placa ESP32 pelo navegador no seu PC ou celular como antes. Você a verá parecida com a do código anterior, como abaixo:
- Se você modificar o conteúdo HTML no index.h e não mexer em nada no arquivo newbiely.com.ino, ao compilar e fazer o upload do código para o ESP32, o Arduino IDE não vai atualizar o conteúdo HTML.
- Para fazer o Arduino IDE atualizar o conteúdo HTML nesse caso, faça uma alteração no arquivo newbiely.com.ino (por exemplo, adicione uma linha vazia ou um comentário....)
- Controlar vários LEDs pela web
- Redesenhar a interface de usuário (UI) web



※ Nota:
Você pode personalizar o código acima de forma fácil e inovadora para conseguir o seguinte: