ESP32-C6 na Prática: WiFi Manager

Este post faz parte da série ESP32-C6 na Prática

Introdução

Neste artigo, mostraremos como utilizar o WiFi Manager para gerenciar as credenciais de WiFi e configurar variáveis adicionais, utilizando a placa de desenvolvimento ESP32-C6 DevKitC-1.

Nosso projeto terá como objetivo o envio e recebimento de mensagens via MQTT para controlar o estado de um LED, além de incluir uma funcionalidade extra: atualizar dinamicamente as credenciais do broker MQTT utilizando tanto WebServer quanto WiFiManager, sem a necessidade de regravar o firmware.

O artigo com ênfase no MQTT está disponível no portal em ESP32-C6 na Prática: Comunicação MQTT. Sendo assim, nesse projeto vamos explorar as funcionalidades da biblioteca de WiFi Manager.

Para conhecer mais a placa de desenvolvimento consulte nosso artigo Introdução à Placa ESP32-C6-DevKitC-1: Ideal para IoT

O que é o WiFi Manager

O WiFi Manager para ESP32 é uma aplicação que facilita a configuração da rede Wi-Fi diretamente pelo usuário, sem precisar alterar o código e regravar a placa sempre que mudar de rede.

Exemplo de funcionamento:

  1. Tenta conectar usando as credenciais salvas na memória do ESP32.
  2. Se não conseguir, cria um Access Point (ex.: AutoConnectAP).
  3. O usuário se conecta ao AP e é redirecionado para um portal web.
  4. No portal, ele seleciona a rede Wi-Fi e insere a senha.
  5. As credenciais são salvas na memória e o ESP 32 reinicia já conectado.

Para saber mais sobre o WiFi Manager, veja o webinar do  Allan Caldas em https://embarcados.com.br/webinar-implementando-um-webserver-com-wifimanager-no-esp32

Características do WiFi Manager

  • Coloca o ESP em modo Access Point (AP) se não conseguir se conectar à rede salva
  • Não precisa regravar código ao trocar de Wi-Fi.
  • Usuário final configura a rede pelo celular

Materiais Necessários

Para desenvolver nossa aplicação os materiais utilizados foram:

Para configurar o ambiente e instalar o suporte a ESP32-C6 veja o artigo ESP32-C6 na Prática: Seu Primeiro “Hello World”

Circuito

O circuito utilizado para este artigo será a placa ESP32-C6 DevKitC-1 para gerir o Web Server e se conectar ao Broker MQTT como publicador e assinante no tópico, o LED para sinalizar as ações via MQTT e o botão para publicar o estado do LED. 

Como o ESP32-C6 possui resistores internos de pull-up, não utilizaremos um resistor externo para o botão. 

Figura 1: Circuito desenvolvido

Instalação de Bibliotecas

Abra a Arduino IDE e siga os passos abaixo:

  1. Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas.
  2. Busque por WiFiManager by tzapu
  3. Instale a biblioteca mais recente
Figura 2: Instalação da biblioteca

Caracteristicas da Biblioteca WiFiManager

  • Passar parâmetros adicionais para salvar informações, como um token de api
  • Personalizar a parte visual de configuração Web
  • Personalizar rotas e adicionar um código HTML livre
  • Realizar upload de firmware via OTA desde que configurado.
  • Permite callback para salvar informações na memória

Caso queira explorar mais a biblioteca, ela está disponível em https://github.com/tzapu/WiFiManager

Código

No projeto proposto, o ESP23-C6 DevKitC-1 gera um Acess Point, AutoConnectAP e senha “password” para nos conectarmos e configurar a rede Wi-Fi, Broker MQTT e a porta de conexão do Broker.

#include <WiFiManager.h>   // Inclui a biblioteca do WiFiManager 
// Configuração do Broker MQTT
const char* idMqtt = id_mqtt;
char mqtt_server[40] = broker_default;
char mqtt_port[6] = mqtt_tcp_port_default;
// global wm instance
WiFiManager wm;


// Criação dos parâmetros do WiFiManager
WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 40);
WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 6);
wm.addParameter(&custom_mqtt_server);
wm.addParameter(&custom_mqtt_port);
  if (!wm.autoConnect("AutoConnectAP", "password")) {
    Serial.println("Failed to connect");
  } else {
    Serial.println("connected...yeey :)");
  }
  // read updated parameters
  strcpy(mqtt_server, custom_mqtt_server.getValue());
  strcpy(mqtt_port, custom_mqtt_port.getValue());
Figura 3: Portal web de configuração
Figura 4: WEB Portal de configuração 2

Em seguida, copie o endereço IP apresentado no monitor serial (Figura 4) e cole-o no navegador de sua preferência (Figura 5).

Para acompanhar o funcionamento do projeto, abra o monitor serial e verifique as etapas de criação do servidor. Abaixo, você encontrará o endereço IP da placa conectada.

Figura 5: Monitor Serial
Figura 6: Página HTML

Todo o código desenvolvido está disponível para consulta em https://github.com/guilhermefernandesk/ESP32-C6/tree/main/wifiManager. Além de algumas configurações adicionais estarem comentadas. As configurações também podem ser encontradas nos exemplos da biblioteca.

Resultados

Figura 6: Resultados obtidos

Atenção: Caso você receba uma falha na conexão MQTT com o status -2, isso indica que a porta TCP 1883 está bloqueada pelo firewall do seu roteador Wi-Fi. Para resolver esse problema, utilize as credenciais do hotspot do celular ou reconfigure seu roteador para liberar a porta 1883.

Conclusão

Neste artigo, mostramos como utilizar o WiFiManager para alterar credenciais de rede e broker sem adicioná-las no código utilizando a placa ESP32-C6 DevKitC-1. A interface HTML foi integrada ao firmware, permitindo comunicação em tempo real com o hardware.

Para leitores que não estão familiarizados com HTML e JavaScript, pode haver certa dificuldade inicial, mas existem diversas ferramentas e recursos online que podem auxiliar nesse processo em HTML Basic Examples

Sinta-se à vontade para compartilhar seus resultados com a comunidade, seja por artigos, vídeos ou repositórios abertos. Sua experiência pode inspirar e auxiliar muitos outros desenvolvedores.

Referências

ESP32-C6 na Prática

ESP32-C6 na Prática: ESP RainMaker com Arduino IDE ESP32-C6 na Prática: Usando o Telegram para controlar GPIOs
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Internet Das Coisas » ESP32-C6 na Prática: WiFi Manager

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: