Automação ESP32: Controle Web e Monitoramento dos GPIOs
Captive Portal ESP32: Guia Prático para Configuração Wi-Fi
Configurar dispositivos embarcados para se conectarem a redes Wi-FiConfigurando IP Estático e Dinâmico no ESP32 via Wi-FiEste tutorial detalha como configurar IP estático e dinâmico no ESP32 via Wi-Fi, garantindo comunicação estável e integração perfeita em projetos IoT. pode ser um desafio, especialmente para usuários com pouco conhecimento técnico. Uma solução elegante para esse problema é a implementação de um captive portal no ESP32, que permite configurar as credenciais de Wi-Fi através de uma interface web intuitiva. Neste artigo, vamos explorar em detalhes como criar e implementar um captive portal no ESP32 para facilitar a configuração da conexão Wi-Fi
Configurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..
O Que é um Captive Portal?🔗
Um captive portal é uma página web que é automaticamente apresentada aos usuários ao se conectarem a uma rede Wi-Fi específica. É comumente usado em ambientes como hotéis, aeroportos e cafeterias para gerenciar o acesso à internetProtocolos Nativos: Wi-Fi (2.4 GHz), Bluetooth Classic e BLEDescubra como utilizar os protocolos Wi-Fi, Bluetooth Classic e BLE no ESP32, com exemplos práticos e dicas para projetos IoT inovadores.. No contexto do ESP32, um captive portal permite que os usuários configurem facilmente as credenciais de Wi-Fi do dispositivo sem a necessidade de programação ou acesso físico ao hardware.
Por Que Implementar um Captive Portal no ESP32?🔗
Implementar um captive portal no ESP32O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! oferece vários benefícios:
- Facilidade de Configuração
Instalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.: Usuários podem configurar
Instalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. o dispositivo sem necessidade de ferramentas especiais ou conhecimentos de programação.
- Flexibilidade: Permite alterar as redes Wi-Fi
Configurando IP Estático e Dinâmico no ESP32 via Wi-FiEste tutorial detalha como configurar IP estático e dinâmico no ESP32 via Wi-Fi, garantindo comunicação estável e integração perfeita em projetos IoT. às quais o dispositivo se conecta sem reprogramação.
- Experiência do Usuário: Proporciona uma interface amigável, melhorando a usabilidade do dispositivo.
Pré-requisitos🔗
Antes de começarmos, certifique-se de ter os seguintes componentes📜 Quadro Digital com Tela E-Ink de 32 PolegadasDescubra como combinar eficiência energética, tecnologia E-Ink e ESP32 para criar quadros digitais, dashboards interativos e arte generativa com soluções IoT.:
- ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!: Qualquer placa de desenvolvimento compatível com o ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!.
- Cabo USB: Para programar o ESP32
O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! a partir do computador.
- Arduino IDE
Instalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT.: Ambiente de desenvolvimento integrado
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. configurado para o ESP32.
- Bibliotecas
Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. Necessárias: Vamos utilizar a biblioteca WiFiManager.
Configurando o Ambiente de Desenvolvimento🔗
Instalando o Suporte ao ESP32 na Arduino IDE
Se ainda não o fez, adicione o suporte ao ESP32 na Arduino IDEInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT.:
2. Vá em Arquivo > Preferências.
3. No campo URLs Adicionais para Gerenciadores de PlacasInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns., adicione:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
4. Clique em OK.
5. Vá em Ferramentas > Placa > Gerenciador de PlacasInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns..
6. Pesquise por esp32O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e instale a versão mais recente.
Instalando a Biblioteca WiFiManager
A biblioteca WiFiManager simplifica a implementação de um captive portal. Para instalá-la:
1. Vá em Ferramentas > Gerenciar BibliotecasHospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP..
2. Pesquise por WiFiManager.
3. Instale a biblioteca WiFiManager by tzapu.
Implementando o Captive Portal🔗
Vamos criar um programa básico que configura o captive portal utilizando a biblioteca WiFiManager.
Incluindo as Bibliotecas Necessárias
Nos primeiros linhas do código, inclua as bibliotecasHospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP.:
#include <WiFi.h>
#include <WiFiManager.h>
Configurando o Programa
Inicialmente, vamos configurarInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. o serial e declarar o WiFiManager:
void setup()
{
Serial.begin(115200);
// Criando uma instância do WiFiManager
WiFiManager wifiManager;
// Inicia o captive portal
wifiManager.autoConnect("ESP32_Config_Portal");
Serial.println("Conectado à rede Wi-Fi!");
}
void loop()
{
// Seu código principal aqui
}
Explicação do Código
- Serial
Enviando Dados do ESP32 para o ArduinoDescubra como enviar dados do ESP32 para o Arduino com comunicação serial simples e robusta, garantindo integração e monitoramento em tempo real..begin(115200);: Inicializa a comunicação serial para depuração
Exibindo Dados no Monitor Serial com ESP32Aprenda a configurar e exibir dados no Monitor Serial com ESP32, utilizando exemplos práticos e técnicas de depuração para otimizar seus projetos IoT..
- WiFiManager wifiManager;: Cria um objeto WiFiManager.
- wifiManager.autoConnect("ESP32_Config_Portal");: Tenta se conectar à rede Wi-Fi
Exemplos de Código e BibliotecasDescubra exemplos práticos e bibliotecas essenciais para utilizar o ESP32 em projetos de IoT, automação, Wi-Fi, OTA, MQTT e BLE. salva; caso não consiga, inicia um ponto de acesso com o SSID "ESP32_Config_Portal".
Funcionamento do Captive Portal
Quando o ESP32 não consegue se conectar a uma rede Wi-Fi conhecida, ele cria um ponto de acesso Wi-Fi chamado "ESP32_Config_Portal". Ao conectar-se a esse ponto de acesso, qualquer tentativa de acessar um site redireciona o usuário a uma página web hospedada no ESP32, permitindo inserir as credenciais da rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. desejada.
Personalizando o Captive Portal🔗
Para aprimorar a experiência, podemos personalizar o captive portal.
Adicionando Parâmetros Personalizados
Podemos solicitar informações adicionais, como o nome do usuário ou configuraçõesInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. específicas.
WiFiManagerParameter custom_field("key", "Descrição", "valor padrão", tamanho);
void setup()
{
// ... código anterior ...
// Adicionando o parâmetro personalizado
wifiManager.addParameter(&custom_field);
// ... restante do código ...
}
Exemplo: Solicitando um Token de Acesso
WiFiManagerParameter custom_token("token", "Token de Acesso", "", 32);
void setup()
{
// ... código anterior ...
wifiManager.addParameter(&custom_token);
// ... restante do código ...
}
Após a conexão, podemos recuperar o valor inserido:
String token = custom_token.getValue();
Serial.println("Token de Acesso: " + token);
Salvando as Configurações
Para que os parâmetros personalizados persistam após reinicializações, precisamos salvá-los em memória não volátilGerenciando Múltiplas Redes Wi-Fi com o ESP32Aprenda a configurar o ESP32 para gerenciar diversas redes Wi-Fi automaticamente, garantindo conexão robusta e estável com práticas simples e seguras..
Usando o SPIFFS para Armazenar Dados
Inclua as bibliotecasHospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. necessárias:
#include <FS.h>
#include <SPIFFS.h>
Inicialize o SPIFFSUtilizando SPIFFS para Armazenamento de Arquivos WebAprenda a usar SPIFFS para armazenar arquivos web no ESP32, otimizando o desempenho e facilitando a criação de interfaces IoT com segurança e eficiência. no
setup()
:
void setup()
{
// ... código anterior ...
// Inicializa o SPIFFS
if(!SPIFFS.begin(true))
{
Serial.println("Erro ao montar o SPIFFS");
}
// ... restante do código ...
}
Salvando e Carregando Configurações
Crie funções para salvar e carregar as configuraçõesInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.:
void saveConfig()
{
// Abre o arquivo para escrita
File configFile = SPIFFS.open("/config.json", "w");
if(!configFile)
{
Serial.println("Falha ao abrir o arquivo de configuração para escrita");
return;
}
// Cria um objeto JSON
DynamicJsonDocument doc(1024);
doc["token"] = custom_token.getValue();
// Grava os dados no arquivo
serializeJson(doc, configFile);
configFile.close();
}
void loadConfig()
{
if(SPIFFS.exists("/config.json"))
{
// Abre o arquivo para leitura
File configFile = SPIFFS.open("/config.json", "r");
if(configFile)
{
size_t size = configFile.size();
std::unique_ptr<char[]> buf(new char[size]);
configFile.readBytes(buf.get(), size);
DynamicJsonDocument doc(1024);
if(deserializeJson(doc, buf.get()) == DeserializationError::Ok)
{
String token = doc["token"];
Serial.println("Token carregado: " + token);
// Use o token conforme necessário
}
else
{
Serial.println("Erro ao analisar o arquivo de configuração");
}
configFile.close();
}
}
}
Chame loadConfig()
no início do setup()
e saveConfig()
após a conexão.
Modificando o Comportamento do Captive Portal
Podemos ajustar como o captive portal funciona, definindo callbacks e tempos limite.
Definindo um Callback de Configuração
void configModeCallback(WiFiManager *myWiFiManager)
{
Serial.println("Entrou no modo de configuração");
Serial.println("Conecte-se ao AP: " + String(myWiFiManager->getConfigPortalSSID()));
}
void setup()
{
// ... código anterior ...
wifiManager.setAPCallback(configModeCallback);
// ... restante do código ...
}
Configurando um Tempo Limite
wifiManager.setTimeout(180); // Tempo limite em segundos
if(!wifiManager.autoConnect("ESP32_Config_Portal"))
{
Serial.println("Tempo limite excedido. Reiniciando...");
ESP.restart();
}
Segurança no Captive Portal🔗
Para evitar acessos não autorizados, podemos adicionar uma senhaConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. ao ponto de acesso:
wifiManager.autoConnect("ESP32_Config_Portal", "senha_segura");
Alternativamente, podemos implementar autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. na página web.
Testando o Captive Portal🔗
1. Inicialização: Carregue o código no ESP32 e abra o monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..
2. Sem Credenciais Salvas: Se o ESP32 não tiver credenciais Wi-FiTestando e Solucionando Problemas no Sistema de Alarme com ESP32Confira nosso guia prático de testes e diagnósticos para sistemas de alarme com ESP32, solucionando falhas e otimizando seu projeto com dicas essenciais. salvas, ele iniciará o captive portal.
3. Conecte-se ao APProtocolos Nativos: Wi-Fi (2.4 GHz), Bluetooth Classic e BLEDescubra como utilizar os protocolos Wi-Fi, Bluetooth Classic e BLE no ESP32, com exemplos práticos e dicas para projetos IoT inovadores.: No seu dispositivo (computador ou smartphone), conecte-se à rede Wi-Fi
Conectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. "ESP32_Config_Portal".
4. Acessando o Portal: O navegador deve abrir automaticamente a página de configuraçãoInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.. Se não abrir, acesse qualquer endereço (por exemplo,
http
).Protocolos Nativos: Wi-Fi (2.4 GHz), Bluetooth Classic e BLEDescubra como utilizar os protocolos Wi-Fi, Bluetooth Classic e BLE no ESP32, com exemplos práticos e dicas para projetos IoT inovadores.://192.168.4.1
5. Configurando a Rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade.: Selecione sua rede Wi-Fi
Conectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. e insira a senha.
6. Parâmetros Personalizados: Insira quaisquer parâmetros adicionais solicitados.
7. Conexão Estabelecida: O ESP32 tentará se conectar à rede Wi-FiExemplos de Código e BibliotecasDescubra exemplos práticos e bibliotecas essenciais para utilizar o ESP32 em projetos de IoT, automação, Wi-Fi, OTA, MQTT e BLE. fornecida. Verifique o monitor serial para confirmações.
Possíveis Problemas e Soluções🔗
- Portal Não Abre Automaticamente: Alguns dispositivos não redirecionam automaticamente. Acesse manualmente
http
no navegador.Protocolos Nativos: Wi-Fi (2.4 GHz), Bluetooth Classic e BLEDescubra como utilizar os protocolos Wi-Fi, Bluetooth Classic e BLE no ESP32, com exemplos práticos e dicas para projetos IoT inovadores.://192.168.4.1
- Falha na Conexão Wi-Fi
Configurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização.: Verifique se as credenciais estão corretas e se o sinal Wi-Fi
Conectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. é forte o suficiente.
- Configurações
Instalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. Não Persistem: Certifique-se de que o SPIFFS
Utilizando SPIFFS para Armazenamento de Arquivos WebAprenda a usar SPIFFS para armazenar arquivos web no ESP32, otimizando o desempenho e facilitando a criação de interfaces IoT com segurança e eficiência. está funcionando corretamente e que as funções de salvamento e carregamento estão sendo chamadas.
Aplicações Práticas🔗
Implementar um captive portal no ESP32O que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! é especialmente útil em projetos onde:
- Dispositivos São Implantados em Vários Locais: Facilita a configuração
Instalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. por diferentes usuários finais.
- Necessidade de Atualizações Frequentes de Rede: Permite mudar facilmente as redes Wi-Fi
Configurando IP Estático e Dinâmico no ESP32 via Wi-FiEste tutorial detalha como configurar IP estático e dinâmico no ESP32 via Wi-Fi, garantindo comunicação estável e integração perfeita em projetos IoT. sem reprogramar o dispositivo.
- Interação com Usuários Finais: Pode coletar informações ou preferências diretamente do usuário.
Considerações Finais🔗
A implementação de um captive portal é uma maneira eficaz de tornar dispositivos baseados no ESP32 mais acessíveis e fáceis de configurarInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.. Com a ajuda da biblioteca WiFiManager, esse processo se torna relativamente simples, mesmo para aqueles com pouco conhecimento em programação ou eletrônica.
Próximos Passos🔗
Com o captive portal funcionando, você pode expandir seu projeto:
- Adicionar Mais Parâmetros: Coletar outras configurações
Instalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. úteis do usuário.
- Melhorar a Interface do Usuário: Customizar a página web
Integração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. com HTML e CSS para torná-la mais atraente.
- Implementar Segurança Avançada
📞 Interfone IP com Vídeo ChamadaDescubra como integrar interfone IP com vídeo chamada utilizando ESP32 para segurança residencial e corporativa, com streaming e criptografia avançada.: Usar HTTPS ou autenticação
Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. mais robusta para proteger o acesso ao portal.
- Integrar com Serviços da Nuvem: Enviar dados para plataformas como MQTT
Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação., AWS IoT ou Google Cloud.
A automação e a IoT oferecem um vasto campo de possibilidades. Ao facilitar a configuraçãoInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. e a usabilidade dos dispositivos através de técnicas como o captive portal, estamos um passo mais próximos de integrar ainda mais a tecnologia ao nosso cotidiano. Continue explorando, aprendendo e inovando!
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Arduino IDE Official Website: arduino.cc
- Documentação do ESP32 Arduino Core: docs.espressif.com/projects/arduino-esp32
- Repositório do ESP32 Arduino Core: github.com/espressif/arduino-esp32