Gerenciamento Avançado de Múltiplas Redes Wi-Fi no ESP32

Neste tutorial, vamos explorar como o ESP32 pode gerenciar mais de uma rede Wi-Fi, permitindo que seu dispositivo se conecte automaticamente à rede disponível de melhor qualidade ou utilizar várias configurações de rede sem precisar reprogramar o microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança.. Tudo isso será feito de forma simples e acessível para quem tem pouco conhecimento de informática e nenhum conhecimento de eletrônica.

Por que Gerenciar Múltiplas Redes Wi-Fi?🔗

Em muitos projetos, especialmente em ambientes onde há mais de um ponto de acesso (como em empresas, universidades ou até mesmo em residências com vários roteadores), é útil que o ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! possa:

Dessa forma, o dispositivo não fica dependente de apenas um roteador e pode manter a conectividade de forma mais robusta.

Conceitos Básicos de Conexão Wi-Fi no ESP32🔗

Para entendermos melhor, vale lembrar alguns pontos:

1. SSIDConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando 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. (Service Set Identifier): É o nome da redeConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando 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. Wi-Fi.

2. Senha Wi-FiConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando 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.: Muitas redes exigem uma chave de segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. (WPA, WPA2 etc.).

3. Modo de Operação: O ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! atua geralmente como estação (STA), ou seja, conecta-se a um roteador.

4. AlcanceComparação Rápida: Alcance, consumo de energia, custos e complexidade de cada tecnologiaComparação Rápida: Alcance, consumo de energia, custos e complexidade de cada tecnologiaGuia completo sobre conectividade ESP32: análise das 10 principais tecnologias sem fio em termos de alcance, consumo, e custo. Leia e descubra! do Sinal: O ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! precisa estar a uma distância adequada do roteador para manter uma conexão estável.

Quando falamos de múltiplas redes, basicamente teremos uma lista (ou várias combinações) de SSIDs e senhasConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando 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. de acesso que o ESP32 tentará ao iniciar, ou quando houver perda de conexão.

Estratégias para Gerenciar Várias Redes🔗

Existem algumas abordagens para gerenciar múltiplas redes no ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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!. Duas das mais comuns são:

1. Lista de Credenciais Pré-definida (Hardcoded)

2. Armazenamento em MemóriaArquitetura do ESP32: Entendendo Seus Componentes InternosArquitetura do ESP32: Entendendo Seus Componentes InternosDescubra como otimizar o desempenho dos seus projetos IoT com nosso guia detalhado sobre a arquitetura interna e gerenciamento de recursos do ESP32. (EEPROM ou NVS)

Ambas as formas funcionam. A primeira é mais simples (tudo no código), mas exige regravar o firmware📞 Interfone IP com Vídeo Chamada📞 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. se quiser adicionar ou remover redes. Já a segunda exige um pouco mais de programação, mas traz muita flexibilidade.

Passo a Passo: Lista de Credenciais no Código🔗

Abaixo, apresentamos um exemplo simples em que definimos duas redes Wi-FiConfigurando IP Estático e Dinâmico no ESP32 via 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. no código. O ESP32 tentará se conectar à primeira. Caso falhe, tentará a segunda.

#include <WiFi.h>
// Lista de SSIDs e senhas
const char* ssidList[]     = {"RedePrincipal", "RedeSecundaria"};
const char* passwordList[] = {"SenhaPrincipal", "SenhaSecundaria"};
// Quantidade de redes configuradas
const int totalNetworks = 2;
void setup() {
  Serial.begin(115200);
  // Tenta conectar em cada rede da lista
  for (int i = 0; i < totalNetworks; i++) {
    Serial.print("Tentando conectar a: ");
    Serial.println(ssidList[i]);
    WiFi.begin(ssidList[i], passwordList[i]);
    // Aguarda até 5 segundos para conectar
    unsigned long startAttemptTime = millis();
    while (WiFi.status() != WL_CONNECTED &&
           millis() - startAttemptTime < 5000) {
      delay(100);
    }
    // Verifica se conectou
    if (WiFi.status() == WL_CONNECTED) {
      Serial.print("Conectado com sucesso em: ");
      Serial.println(ssidList[i]);
      break;
    } else {
      Serial.println("Falhou. Tentando a proxima rede...");
    }
  }
  // Caso nenhuma conexão seja estabelecida
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Nao foi possivel conectar a nenhuma das redes.");
  }
}
void loop() {
  // Aqui seu programa principal ficará rodando enquanto o Wi-Fi está conectado
  if (WiFi.status() == WL_CONNECTED) {
    // Exemplo: exibir o IP
    Serial.print("IP atual: ");
    Serial.println(WiFi.localIP());
  }
  delay(2000);
}

Explicação do Código

1. Lista de Redes: Definimos dois arraysDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis!, um com SSIDs e outro com senhas, ambos com o mesmo tamanho.

2. Loop de Tentativas: Para cada rede, o ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! é iniciado no modo estação e tenta se conectar.

3. Timeout: Se a conexão não for estabelecida em 5 segundos, o ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! parte para a próxima rede.

4. Verificação Final: Ao fim do loop, se nenhuma rede estiver conectada, o programa irá indicar falha.

Armazenando Credenciais de Forma Dinâmica (NVS)🔗

O ESP32 possui uma memória não volátil (NVS – Non-Volatile Storage), que funciona como um “pequeno disco” dentro do microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança.. Essa memória pode ser usada para:

O fluxo geral é:

1. Fazer uma interface (por exemplo, um web serverIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência.) para o usuário inserir SSID e senha.

2. Salvar os valores no NVS.

3. Ao reiniciar, o ESP32O que é o ESP32: Introdução e Conceitos BásicosO 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! lê essas credenciais salvas e tenta se conectar.

Essa abordagem é muito útil quando o projeto precisa de flexibilidade ou quando será instalado em locais onde o acesso ao códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis!-fonte não é algo simples.

Alternando Entre Redes Automaticamente🔗

Além de apenas tentar “uma rede de cada vez” no setup(), é possível monitorar constantemente a qualidade do sinal e a disponibilidade de outras redes. Você pode:

1. Escanear Redes Periodicamente

2. SincronizaçãoDual-Core do ESP32: Como Funciona e BenefíciosDual-Core do ESP32: Como Funciona e BenefíciosDescubra como a arquitetura dual-core do ESP32 otimiza a performance em IoT e automação, distribuindo tarefas e gerenciando recursos com eficiência. e Reconexão

  • Verificar se a rede atual caiu.
  • Se perder a conexão, tentar de forma automática a próxima rede na lista.

Esse tipo de lógica é útil em ambientes corporativos ou residências de grande porte, onde o sinal pode variar ou existir mais de um roteador com o mesmo SSIDConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando 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..

Boas Práticas e Cuidados🔗

Tabela de Exemplo: Possíveis Status de Conexão e Ações🔗

Status (WiFi.status())DescriçãoAção Sugerida
WL_IDLE_STATUSESP32 não está tentando conectarIniciar rotina de conexão
WL_NO_SSID_AVAILNenhuma rede encontrada ou SSID incorretoConferir SSID ou tentar próxima rede
WL_CONNECT_FAILEDFalha ao conectar (senha incorreta, etc.)Pedir nova senha ou tentar próxima rede
WL_DISCONNECTEDPerdeu a conexão com a redeReconectar automaticamente, escanear outras redes
WL_CONNECTEDConexão estabelecida com sucessoExecutar as rotinas principais de envio/recebimento

Conclusão🔗

Gerenciar múltiplas redes Wi-FiConfigurando IP Estático e Dinâmico no ESP32 via 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. com o ESP32 traz uma camada adicional de confiabilidadeDual-Core do ESP32: Como Funciona e BenefíciosDual-Core do ESP32: Como Funciona e BenefíciosDescubra como a arquitetura dual-core do ESP32 otimiza a performance em IoT e automação, distribuindo tarefas e gerenciando recursos com eficiência. ao seu projeto de IoT, permitindo que o dispositivo permaneça online🔋 Sistema UPS para Rede 220V🔋 Sistema UPS para Rede 220VAprenda a construir um UPS 220V com ESP32, integrando inversor senoidal, relés SSR, e monitoramento IoT para segurança e eficiência energética. em diferentes ambientes ou mesmo diante de oscilações em um roteador específico. As abordagens vão desde listas estáticas de credenciais até sistemas de configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando 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. dinâmica via NVS, escolha aquela que melhor atenda às necessidades do seu projeto.

Com esse conhecimento, você poderá criar aplicações em que o ESP32 se torna muito mais versátil, robusto e independente, tornando-se uma solução ideal para projetos de automação residencialIntrodução à Automação Residencial com ESP32Introdução à Automação Residencial com ESP32Descubra como o ESP32 transforma sua casa em um lar inteligente com dicas práticas de configuração, programação e automação residencial., monitoramento remoto e outras aplicações onde a conectividade é parte fundamental.

Esperamos que este tutorial sirva de base para você dar os próximos passos na implementação de um sistema que suporte múltiplas redes Wi-Fi, sempre considerando as boas práticasExibindo Dados no Monitor Serial com ESP32Exibindo 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. e dicas de segurança para manter seus dados e sistema protegidos.

Boa sorte em seus projetos!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados