Quase todos os dispositivos que usamos hoje – desde smartphones, tablets, wearables e até mesmo muitos de nossos eletrodomésticos – conectam-se à Internet por meio de uma rede WiFi doméstica (ou de escritório). O acesso à Internet para dispositivos inteligentes é normalmente gerenciado por meio de uma interface web ou aplicativo móvel.
Da mesma forma, quando estivermos fora de casa, acessaremos o WiFi em nossos dispositivos móveis conectando-nos a uma rede específica e inserindo a senha. No entanto, gerenciar o acesso à Internet pode ser mais desafiador com dispositivos de Internet das coisas (IoT) construídos por conta própria. Isso ocorre porque essas credenciais geralmente são codificadas em dispositivos IoT.
Mas e se uma porta MicroPython tão simples como o ESP32 pudesse servir como um gerenciador WiFi universal? Isso permitiria que todos os dispositivos conectados à IoT (incluindo nossos smartphones, laptops e wearables) se conectassem a redes WiFi aleatórias – sem inserir senhas todas as vezes.
Um gerenciador WiFi configurado no ESP32 irá procurar as redes disponíveis e armazenar as credenciais para uso atual e futuro, economizando tempo e energia.
Componentes necessários
- Placa ESP32 ou ESP8266 x1
Pré-requisitos
Você deve ter carregado o firmware MicroPython para ESP32/ESP8266 e instalado o uPyCraft IDE ou Thonny IDE em seu computador. Clique aqui para saber como instalar o uPyCraft IDE e fazer upload do firmware MicroPython para ESP32/ESP8266.
Conexões de circuito
Não há conexões necessárias. É necessário apenas instalar e configurar o ESP32/ESP8266 para funcionar como gerenciador de WiFi.
A biblioteca MicroPython
Para este projeto, usaremos a biblioteca gerenciadora de WiFi construída por Tayfunulu. Está disponível no Github através deste link. O código fonte da biblioteca está abaixo.
Para fazer upload da biblioteca do gerenciador WiFi para ESP32/ESP8266, conecte a placa ESP ao seu computador através de um cabo Micro-USB. Abra o uPyCraft IDE e navegue até Arquivo-> Novo. Copie o código-fonte da biblioteca do gerenciador de WiFi para o novo arquivo e clique no botão salvar.
Nomeie o novo arquivo como 'WiFiManager.py' e salve-o clicando em OK.
Clique no botão ‘Baixar e Executar’ para carregar a biblioteca para a placa ESP.
O script MicroPython
A biblioteca do gerenciador WiFi deve ser implementada no código principal do aplicativo no firmware MicroPython. Para fazer isso, crie um novo arquivo navegando até Arquivo->Novo e salve-o como 'main.py.'
Copie o código abaixo para main.py. Em seguida, carregue-o na placa ESP clicando no botão ‘Baixar e Executar’.
Hcomo o gerenciador de WiFi funciona
Quando a placa ESP é inicializada pela primeira vez após o upload do código, ela é definida como um ponto de acesso WiFi. Este ponto é visto como o ‘WiFiManager’, que pode ser conectado a um computador ou celular.
A senha para se conectar ao WiFiManager é ‘tayfunulu’. A senha e o SSID do ESP WiFiManager podem ser alterados modificando o WiFiManager.py.
Após conectar-se ao WiFiManager, abra seu painel acessando o endereço IP 192.168.4.1. As conexões WiFi disponíveis serão exibidas na página da web. Selecione uma conexão WiFi e insira sua chave de rede para configurar a conexão com a placa ESP. Depois que as credenciais corretas forem inseridas, a conexão WiFi poderá ser acessada por qualquer dispositivo conectando-se ao WiFiManager.
O código
O código principal do aplicativo importa a biblioteca WiFiManager. As conexões WiFi disponíveis são verificadas chamando o método WiFiManager.get_connection . Se não houver rede WiFi disponível, a mensagem “Não foi possível inicializar a conexão de rede” será impressa no console. Caso contrário, as conexões WiFi estarão acessíveis em 192.168.4.1.
Quando a placa ESP inicializa pela primeira vez como ponto de acesso, ela deixa um soquete aberto – o que pode travar a placa ESP. Para evitar isso, a conexão do soquete é gerenciada por uma rotina de tratamento de exceções 'try-except'.
O código principal do aplicativo hospeda então a página da web para conexão com uma conexão WiFi disponível, bem como uma página da web que controla o LED na placa ESP.
Testando o gerenciador WiFi
Após carregar o código principal do aplicativo, reinicie a placa ESP pressionando o botão RESET. O ESP WiFiManager será ativado e uma mensagem será impressa no console MicroPython.
Em seguida, abra as configurações de WiFi no seu computador ou smartphone e conecte-se à rede WiFiManager.
Depois de se conectar à rede WiFiManager, abra o URL 192.168.4.1 em um navegador da web. Você verá as conexões de rede WiFi disponíveis. Selecione um e digite sua senha. Em seguida, salve as credenciais no WiFiManager clicando no botão enviar.
A placa ESP agora está conectada à rede WiFi. Quaisquer outros dispositivos que você tenha também podem acessar diretamente todas as redes WiFi disponíveis conectando-se ao WiFiManager sem inserir uma senha ou codificar as credenciais no código do aplicativo.
Conclusão
O gerenciador de WiFi integrado neste projeto economiza tempo, tornando o WiFi facilmente acessível a todos os seus dispositivos inteligentes, incluindo laptops e smartphones. Assim, você não precisará mais inserir nome de usuário e senha em cada um; nem você precisará codificar as credenciais WiFi em cada dispositivo. Um gerenciador WiFi configurado no ESP32 procura as redes disponíveis e armazena as credenciais para uso atual e futuro.