O Wi-Fi é uma das funcionalidades que transformaram o ESP32 numa das placas favoritas da comunidade maker. Com ele, você pode conectar sensores à internet, criar web servers, enviar dados para APIs, integrar com Home Assistant, usar MQTT e construir projetos IoT completos.
🎓 ArcadeMakerBR Academy
ESP32 Essentials • Aula 11
Nível: 🟢 Iniciante
Tempo de leitura: 20 a 30 minutos
Projeto sugerido: página web para controlar LED pelo ESP32
O que você vai aprender
- Como funciona o Wi-Fi no ESP32.
- Diferença entre Station Mode e Access Point.
- Como conectar o ESP32 ao roteador.
- Como criar uma rede Wi-Fi própria com o ESP32.
- Como fazer scan de redes Wi-Fi.
- Como usar IP fixo.
- Como criar um WebServer simples.
- Boas práticas de reconexão e segurança.
Índice
- Por que Wi-Fi é tão importante no ESP32?
- Modos Wi-Fi do ESP32
- Station Mode
- Access Point
- Scan de redes
- IP fixo
- WebServer no ESP32
- Cliente HTTP
- Reconexão automática
- FAQ
Por que Wi-Fi é tão importante no ESP32?
Antes do ESP32 se popularizar, muitos projetos com Arduino precisavam de módulos externos para conectar à rede. Isso deixava a montagem mais cara, mais complexa e mais difícil para iniciantes.
Com o ESP32, o Wi-Fi já vem integrado. Isso significa que uma única placa consegue ler sensores, controlar atuadores, processar dados e comunicar com a rede local ou com a internet.
É por isso que o ESP32 aparece tanto em projetos de automação residencial, IoT, monitoramento remoto, estações meteorológicas, controle de LEDs, robótica e dashboards.
Dica do Maker: se o seu projeto precisa enviar dados para outro sistema, controlar algo pelo telemóvel ou integrar com Home Assistant, provavelmente o Wi-Fi será um dos primeiros recursos que você vai usar.
Modos Wi-Fi do ESP32
O ESP32 pode trabalhar com Wi-Fi de formas diferentes. As mais comuns são:
- Station Mode (STA): o ESP32 conecta-se a um roteador existente.
- Access Point (AP): o ESP32 cria a sua própria rede Wi-Fi.
- AP + STA: o ESP32 cria uma rede e ao mesmo tempo conecta-se a outra.
| Modo | Como funciona | Quando usar |
|---|---|---|
| Station | ESP32 entra na rede do roteador. | IoT, MQTT, Home Assistant, APIs e internet. |
| Access Point | ESP32 cria a própria rede. | Configuração inicial, controle local, projetos sem roteador. |
| AP + STA | ESP32 cria uma rede e conecta-se a outra. | Portais de configuração e dispositivos mais avançados. |
Station Mode: conectar ao roteador
No modo Station, o ESP32 funciona como um dispositivo comum da rede, igual a um telemóvel, portátil ou impressora Wi-Fi. Ele conecta ao roteador usando SSID e senha.
Esse é o modo mais usado em projetos IoT, porque permite ao ESP32 comunicar com:
- Home Assistant.
- Node-RED.
- Broker MQTT.
- Servidor web.
- API na internet.
- Banco de dados através de uma API.
Código exemplo: conectar ao Wi-Fi
// Exemplo: conectar ESP32 ao Wi-Fi
// ArcadeMakerBR Academy
#include <WiFi.h>
const char* ssid = "NOME_DA_REDE";
const char* password = "SENHA_DA_REDE";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Conectando ao Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Conectado!");
Serial.print("IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
}
Quando a conexão for bem-sucedida, o ESP32 recebe um endereço IP na rede. Esse IP pode ser usado para aceder a um web server, enviar dados ou integrar com outros sistemas.
Access Point: ESP32 criando uma rede Wi-Fi
No modo Access Point, o ESP32 cria a própria rede Wi-Fi. Outros dispositivos podem conectar diretamente nele, sem precisar de roteador.
Isso é útil para:
- Configuração inicial de dispositivos.
- Projetos portáteis.
- Controle local sem internet.
- Robôs ou equipamentos em campo.
- Painéis de configuração.
Código exemplo: criar rede Wi-Fi
// Exemplo: ESP32 como Access Point
// ArcadeMakerBR Academy
#include <WiFi.h>
const char* ssid = "ESP32_Config";
const char* password = "12345678";
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
Serial.println("Access Point criado!");
Serial.print("IP do ESP32: ");
Serial.println(WiFi.softAPIP());
}
void loop() {
}
Depois de carregar esse código, procure a rede ESP32_Config no telemóvel ou computador.
Dica do Maker: o modo AP é excelente para criar uma página de configuração onde o utilizador informa o Wi-Fi da casa.
Scan de redes Wi-Fi
O ESP32 também consegue procurar redes Wi-Fi próximas. Isso é útil para diagnósticos, seleção de rede, portais de configuração e projetos que precisam mostrar as redes disponíveis.
// Exemplo: scan de redes Wi-Fi
// ArcadeMakerBR Academy
#include <WiFi.h>
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Procurando redes...");
int n = WiFi.scanNetworks();
if (n == 0) {
Serial.println("Nenhuma rede encontrada.");
} else {
for (int i = 0; i < n; ++i) {
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" | RSSI: ");
Serial.println(WiFi.RSSI(i));
delay(10);
}
}
}
void loop() {
}
O que é RSSI?
RSSI é uma medida da força do sinal recebido. Normalmente aparece como valor negativo, como -40 dBm, -65 dBm ou -80 dBm.
- -30 a -50 dBm: sinal forte.
- -60 a -70 dBm: sinal razoável.
- -80 dBm ou pior: sinal fraco.
Usando IP fixo no ESP32
Por padrão, o roteador entrega um IP automaticamente usando DHCP. Isso funciona bem na maioria dos projetos.
Mas em alguns casos, você pode querer que o ESP32 tenha sempre o mesmo IP, principalmente quando usa WebServer local.
// Exemplo: IP fixo no ESP32
#include <WiFi.h>
const char* ssid = "NOME_DA_REDE";
const char* password = "SENHA_DA_REDE";
IPAddress local_IP(192, 168, 1, 80);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
void setup() {
Serial.begin(115200);
if (!WiFi.config(local_IP, gateway, subnet)) {
Serial.println("Falha ao configurar IP fixo.");
}
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
}
Atenção: escolha um IP livre na sua rede para evitar conflito com outros dispositivos.
Criando um WebServer no ESP32
Um dos usos mais populares do Wi-Fi no ESP32 é criar uma página web para controlar o projeto.
Exemplo: abrir o navegador, aceder ao IP do ESP32 e clicar em botões para ligar ou desligar um LED.
// Exemplo simples: WebServer para controlar LED
// ArcadeMakerBR Academy
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "NOME_DA_REDE";
const char* password = "SENHA_DA_REDE";
#define LED_PIN 2
WebServer server(80);
void paginaInicial() {
String html = "<h1>ESP32 WebServer</h1>";
html += "<p><a href='/on'>Ligar LED</a></p>";
html += "<p><a href='/off'>Desligar LED</a></p>";
server.send(200, "text/html", html);
}
void ligarLED() {
digitalWrite(LED_PIN, HIGH);
server.send(200, "text/html", "LED ligado. <a href='/'>Voltar</a>");
}
void desligarLED() {
digitalWrite(LED_PIN, LOW);
server.send(200, "text/html", "LED desligado. <a href='/'>Voltar</a>");
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Acesse: http://");
Serial.println(WiFi.localIP());
server.on("/", paginaInicial);
server.on("/on", ligarLED);
server.on("/off", desligarLED);
server.begin();
}
void loop() {
server.handleClient();
}
Este exemplo é simples, mas já mostra o potencial do ESP32 como servidor local.
ESP32 como cliente HTTP
Além de criar servidor, o ESP32 também pode atuar como cliente HTTP. Isso significa que ele pode enviar ou buscar dados em uma API.
Exemplos:
- Enviar leitura de sensor para um servidor.
- Consultar previsão do tempo.
- Enviar evento para automação.
- Comunicar com backend próprio.
// Exemplo básico de cliente HTTP
// Requer internet e URL válida
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "NOME_DA_REDE";
const char* password = "SENHA_DA_REDE";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
HTTPClient http;
http.begin("http://example.com");
int httpCode = http.GET();
Serial.print("Codigo HTTP: ");
Serial.println(httpCode);
if (httpCode > 0) {
String resposta = http.getString();
Serial.println(resposta);
}
http.end();
}
void loop() {
}
Reconexão automática
Em projetos reais, o Wi-Fi pode cair. O roteador pode reiniciar, o sinal pode ficar fraco ou a rede pode ficar indisponível por alguns minutos.
Por isso, é importante criar lógica de reconexão.
// Reconexão Wi-Fi simples
void verificarWiFi() {
if (WiFi.status() != WL_CONNECTED) {
Serial.println("Wi-Fi desconectado. Reconectando...");
WiFi.reconnect();
unsigned long inicio = millis();
while (WiFi.status() != WL_CONNECTED && millis() - inicio < 10000) {
delay(500);
Serial.print(".");
}
Serial.println();
}
}
Em projetos mais avançados, você pode usar eventos Wi-Fi, timeouts, watchdogs e estratégias para evitar que o ESP32 fique preso tentando conectar para sempre.
Wi-Fi e consumo de energia
Wi-Fi consome energia considerável. Em projetos com bateria, o ideal é conectar, enviar os dados rapidamente e desligar ou entrar em Deep Sleep.
Um fluxo comum é:
- ESP32 acorda.
- Conecta ao Wi-Fi.
- Lê sensores.
- Envia dados via MQTT ou HTTP.
- Entra em Deep Sleep.
Esse padrão aumenta muito a autonomia quando comparado a deixar o Wi-Fi ligado o tempo todo.
Wi-Fi, MQTT e Home Assistant
O Wi-Fi é a ponte que permite ao ESP32 integrar com outros sistemas. Com MQTT, por exemplo, o ESP32 pode publicar leituras de sensores e receber comandos.
Com Home Assistant, o ESP32 pode fazer parte de uma casa inteligente, enviando dados de temperatura, umidade, presença, consumo ou controle de relés.
Com Node-RED, você pode criar fluxos visuais para processar dados, enviar notificações e conectar serviços.
Erros comuns com Wi-Fi no ESP32
1. SSID ou senha errados
Parece simples, mas é um dos erros mais comuns. Verifique maiúsculas, minúsculas e caracteres especiais.
2. Ficar preso eternamente no while
Se o código espera conexão para sempre, o projeto pode travar. Use timeout.
3. Sinal fraco
Se o ESP32 está longe do roteador, a conexão pode ficar instável. Verifique o RSSI.
4. IP fixo em faixa errada
Se usar IP fixo, confirme gateway, subnet e faixa da rede.
5. Usar Wi-Fi em projeto com bateria sem Deep Sleep
Wi-Fi ligado o tempo todo pode descarregar a bateria rapidamente.
Boas práticas
- Use timeout na conexão inicial.
- Mostre o IP no Serial Monitor.
- Prefira sinal Wi-Fi forte para projetos críticos.
- Use reconexão automática.
- Evite colocar senha diretamente em exemplos públicos.
- Em projetos com bateria, combine Wi-Fi com Deep Sleep.
- Use MQTT quando precisar de comunicação leve e constante.
FAQ sobre Wi-Fi no ESP32
O ESP32 suporta Wi-Fi 5 GHz?
Na maioria dos modelos ESP32 clássicos, o Wi-Fi é 2.4 GHz. Se a sua rede for apenas 5 GHz, o ESP32 não irá conectar.
Posso usar ESP32 sem roteador?
Sim. Use o modo Access Point para o ESP32 criar a própria rede.
Posso criar uma página web no ESP32?
Sim. O ESP32 pode rodar um WebServer simples para controle e visualização de dados.
O Wi-Fi funciona junto com ESP-NOW?
Pode funcionar, mas exige cuidado com canal Wi-Fi, modo de operação e arquitetura do projeto.
Wi-Fi consome muita bateria?
Comparado a Deep Sleep, sim. Para bateria, conecte rapidamente, envie dados e volte a dormir.
Resumo final
O Wi-Fi é um dos recursos mais importantes do ESP32. Ele permite criar projetos conectados, servidores web, clientes HTTP, dispositivos IoT, integrações com MQTT, Home Assistant, Node-RED e muito mais.
Para começar, aprenda primeiro o modo Station. Depois teste Access Point, scan de redes e WebServer. Em seguida, avance para HTTP, MQTT, reconexão automática e projetos com Deep Sleep.
Com Wi-Fi bem entendido, o ESP32 deixa de ser apenas uma placa de prototipagem e passa a ser uma plataforma completa para automação e IoT.
📚 Continue aprendendo
- Tudo sobre ESP32
- Tudo sobre ESP-NOW
- Tudo sobre MQTT
- Tudo sobre Deep Sleep no ESP32
- Tudo sobre OTA no ESP32
Kit de publicação
Título SEO: Tudo sobre Wi-Fi no ESP32 – Guia Completo para Iniciantes
Slug: tudo-sobre-wifi-esp32
Meta Description: Aprenda tudo sobre Wi-Fi no ESP32: modo Station, Access Point, scan de redes, IP fixo, WebServer, cliente HTTP e reconexão automática.
Tags: ESP32, Wi-Fi, ESP32 WiFi, Arduino, Arduino IDE, IoT, WebServer ESP32, Access Point, Station Mode, HTTP Client, IP Fixo, WiFiMulti, Maker, Eletrônica, Automação, Microcontroladores
Categoria: ESP32 Academy
ALT da capa: Tudo sobre Wi-Fi no ESP32 - Guia Completo ArcadeMakerBR Academy
