Já conhece a WiFiManager, uma
biblioteca que serve como um gerenciador de conexões wireless? Pois, com ela
temos uma maior facilidade para configurar tanto um Ponto de Acesso quanto uma
Estação. Eu tenho recebido diversas sugestões para falar sobre o assunto, então,
hoje vou te apresentar uma biblioteca desta e suas funções. Ainda vou fazer uma
demonstração de uso tanto com o ESP32 quanto o ESP8266.
PINOUT
Aqui eu deixo para vocês o
PINOUT dos dois dispositivos que vamos utilizar:
![]() |
NodeMCU ESP-12E |
![]() |
NodeMCU ESP-WROOM-32 |
WiFiManager
A WiFiManager, portanto, nada
mais é que uma biblioteca escrita em cima do WiFi.h para facilitar o gerenciamento
de conexões wireless. Lembrando que, com ela, temos uma maior facilidade para
configurar tanto um Ponto de Acesso quanto uma Estação. Para o modo Estação,
configuramos através de um portal no navegador.
Algumas características:
·
Depende da conectividade automática
·
Inicialização do portal de configuração não
automática
·
Opera seletivamente no modo duplo
Como Funciona
O ESP iniciará um portal de
configuração WiFi quando ligado e salvará os dados de configuração em memória
não volátil. Posteriormente, o portal de configuração só será iniciado
novamente se um botão for pressionado no módulo ESP.
Abaixo você confere o fluxo de
configuração e o passo a passo:
1. Utilizando
qualquer dispositivo habilitado para WiFi com um navegador conecte-se ao
ponto de acesso recém-criado e digite o endereço 192.168.4.1.
2. Na
tela você terá duas opções para se conectar a uma rede existente:
·
Configure WiFi
·
Configure WiFi (No Scan)
3. Escolha
uma das redes e coloque a senha (se precisar). Então, salve e aguarde o ESP
reiniciar.
4. Ao
finalizar o boot, o ESP tentará se conectar na rede salva. Caso não consiga,
irá habilitar um Ponto de Acesso.
Bibliotecas
Descompacte os arquivos e cole
na pasta de bibliotecas da IDE do arduino.
C:/Program Files
(x86)/Arduino/libraries
Observação:
A biblioteca WiFiManager-ESP32 já traz as configurações que funcionam com o ESP8266, por isso utilizaremos apenas ela, ao invés de duas libs “WiFiManager” (uma para cada tipo de chip).
Como veremos mais adiante,
ESP8266WiFi e ESP8266WebServer são bibliotecas que não precisaremos realizar o
download, pois elas já vêm quando instalamos o ESP8266 na IDE do arduino.
Funções
A seguir temos algumas funções
que o WiFiManager nos oferece.
1. autoConnect
A função autoConnect é
responsável por criar um Access Point. Podemos usá-la de três maneiras.
·
autoConnect(“nome da rede”, “senha”); - cria uma
rede com o nome e a senha definidos.
·
autoConnect(“nome da rede”); - cria uma rede
aberta com o nome definido.
·
autoConnect(); - cria uma rede aberta e com nome
gerado automaticamente com o nome sendo ‘ESP’ + chipID.
2. startConfigPortal
A função startConfigPortal é
responsável por criar um Access Point sem tentar conectar antes a uma rede
salva anteriormente.
·
startConfigPortal(“nome da rede”, “senha”); - cria uma rede com o nome e a senha
definidos.
·
startConfigPortal(); - cria uma rede aberta e
com nome gerado automaticamente com o nome sendo ‘ESP’ + chipID.
3. getConfigPortalSSID
Retorna o SSID do portal (Access Point)
4. getSSID
Retorna o SSID da rede a qual está conectado.
Retorna o SSID da rede a qual está conectado.
5. getPassword
Retorna a senha da rede a qual está conectado.
6. setDebugOutput
A função
setDebugOutput é responsável por imprimir mensagens de debug no serial monitor.
Essas mensagens já são definidas na biblioteca. Conforme passa pelas funções,
os dados vão sendo impressos.
Por padrão
essa função vem setada como TRUE. Caso queira desabilitar as mensagens, basta
setar a função como FALSE.
7. setMinimumSignalQuality
A função
setMinimumSignalQuality é responsável por filtrar as redes baseadas na
qualidade do sinal. Por padrão, o WiFiManager não mostrará redes com sinal
abaixo de 8%.
8. setRemoveDuplicateAPs
A função
setRemoveDuplicateAPs é responsável por remover as duplicatas de redes.
Por padrão
vem setado como TRUE.
9. setAPStaticIPConfig
A função
setAPStaticIPConfig é responsável por setar as configurações de endereço
estáticas quando no modo access point.
(IP,
GATEWAY, SUBNET)
10. setSTAStaticIPConfig
A função
setSTAStaticIPConfig é responsável por setar as configurações de endereço
estáticas quando no modo estação.
(IP,
GATEWAY, SUBNET)
Deve-se adicionar o comando
antes de autoConnect !!!
11. setAPCallback
A função
setAPCallback é responsável por informar que o modo AP foi iniciado.
O parâmetro
é uma função que se deve criar para indicá-la como sendo um callback;
12. setSaveConfigCallback
A função
setSaveConfigCallback é responsável por informar que uma nova configuração foi
salva e a conexão foi realizada com sucesso.
O parâmetro
é uma função que se deve criar para indicá-la como sendo um callback.
Deve-se adicionar o comando
antes de autoConnect!!!
Montagem
Exemplo
No nosso exemplo vamos criar
um Access Point com o ESP (o código servirá tanto para o ESP8266 como para o
ESP32). Após a criação do AP, vamos acessar o portal através do IP 192.168.4.1
(que é o padrão para acessá-lo). Então, vamos buscar as redes disponíveis,
selecionar uma delas e salvar. A partir daí, o ESP irá reiniciar e tentará se
conectar a ela, trabalhando, então, como uma estação e, não mais, como um
Access Point.
Após entrar em modo estação,
apenas através do botão que você poderá fazer o ESP voltar ao modo Access
Point.
Código
Bibliotecas
Primeiramente vamos definir as
bibliotecas que utilizaremos.
Repare que temos comandos #if
defined, #else e #endif. Eles são condicionais para incluir bibliotecas
necessárias referentes ao chip. Essa parte é extremamente importante para poder
rodar o mesmo código tanto no ESP8266 quanto no ESP32.
#if defined(ESP8266) #include <ESP8266WiFi.h> //ESP8266 Core WiFi Library #else #include <WiFi.h> //ESP32 Core WiFi Library #endif #if defined(ESP8266) #include <ESP8266WebServer.h> //Local WebServer used to serve the configuration portal #else #include <WebServer.h> //Local WebServer used to serve the configuration portal ( https://github.com/zhouhan0126/WebServer-esp32 ) #endif #include <DNSServer.h> //Local DNS Server used for redirecting all requests to the configuration portal ( https://github.com/zhouhan0126/DNSServer---esp32 ) #include <WiFiManager.h> // WiFi Configuration Magic ( https://github.com/zhouhan0126/WIFIMANAGER-ESP32 ) >> https://github.com/tzapu/WiFiManager (ORIGINAL)
Setup
No setup estamos configurando
nosso WiFiManager da maneira mais simples. Vamos apenas definir os callbacks e
criar a rede.
const int PIN_AP = 2; void setup() { Serial.begin(9600); pinMode(PIN_AP, INPUT); //declaração do objeto wifiManager WiFiManager wifiManager; //utilizando esse comando, as configurações são apagadas da memória //caso tiver salvo alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings(); //callback para quando entra em modo de configuração AP wifiManager.setAPCallback(configModeCallback); //callback para quando se conecta em uma rede, ou seja, quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback(saveConfigCallback); //cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect("ESP_AP", "12345678"); }
Loop
No loop, faremos a leitura do
pino do botão para saber se ele foi pressionado e, então, vamos chamar o método
para habilitar novamente o modo AP.
void loop() { if ( digitalRead(PIN_AP) == HIGH ) { WiFiManager wifiManager; if(!wifiManager.startConfigPortal("ESP_AP", "12345678") ) { Serial.println("Falha ao conectar"); delay(2000); ESP.restart(); } } }
Ao pressionar o botão, o ESP
sairá do modo Estação e abrirá seu Access Point e o portal.
Lembre-se que não utilizamos o
comando resetSettings(). As configurações ainda permanecem salvas para a
próxima vez que o ESP inicializar.
Callbacks
//callback que indica que o ESP entrou no modo AP void configModeCallback (WiFiManager *myWiFiManager) { // Serial.println("Entered config mode"); Serial.println("Entrou no modo de configuração"); Serial.println(WiFi.softAPIP()); //imprime o IP do AP Serial.println(myWiFiManager->getConfigPortalSSID()); //imprime o SSID criado da rede }
//callback que indica que salvamos uma nova rede para se conectar (modo estação) void saveConfigCallback () { Serial.println("Configuração salva"); }
As funções de callback, as
quais são associadas a eventos, servem para você ter o momento exato de uma
operação, no nosso caso, a entrada no modo AP e no modo Estação. Podemos, então,
implementar alguma rotina desejada, como recuperar o SSID da rede conectada,
por exemplo.
Faça o download dos arquivos:
98 Comentários
Muito bom e esclarecedor
ResponderExcluirGeteway lora por 15 dólares
ResponderExcluirÉ real https://youtu.be/ZV_ZY-0Q1lo
bom dia fernando
ResponderExcluirsou iniciante com arduino e já coloquei aqui o codigo e deu certo abriu a pagina tudo certo
agora minha duvida e simples mas eu nao entendo! como coloco por exemplo um codigo seu mesmo aquele ddns em cima deste já que quando coloco um o outro apaga
Olá. O WiFiManager serve apenas para você se conectar mais facilmente à um Ponto de Acesso. A respeito do DDNS ele terá que ser configurado em seu roteador. Abraço!
Excluirquem souber e puder ajudar eu agradeço
ResponderExcluirQual é melhor? Esp32 ou Esp8266?
ResponderExcluirOlá. Os dois são muito bons, você precisa avaliar de acordo com sua aplicação desejada. O ESP32 tem melhor processamento que o ESP8266. Abraço!
ExcluirOlá Fernando muito bacana o seu post. Estou tentando conectar na nuvem utilizando este wifimanager, de inicio dá tudo certo, porem com o tempo (tipo 12h) o esp disconecta e para de enviar dados a nuvem, além disso ele não gera novamente o servidor para tentar novamente a conexão, ou seja, ele para de mandar dados. Tem alguma ideia do que poderia ser, obrigado
ResponderExcluircomo envio dados para a nuvem, na vdd preciso enviar dados da leitura da D8 para um link http interno
ResponderExcluirtipo http://192.168.0.1/recebe_dados.php
só o valor da leitura.
como fazer?
Eu uso o client() pra fazer um GET no servidor. Dê uma olhada nesse exemplo: https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/WiFiClient/WiFiClient.ino
ExcluirEspero que ajude! Abraço!
Olá Fernando,
ResponderExcluirSeria possível criar um loop, para verificar a existência de conexão com a internet?
Se sim, como seria isso?
Boa tarde! Você conseguiu fazer algo para validar se ele está conectado a alguma rede?
ExcluirBoa noite amigo vc pode me enviar uma ide pra colocar no meu esp 8266 nodemcu pra acionar 10 relés via wi-fi do meu celular sem precisar de internet
ResponderExcluirSe puder enviar pro meu WhatsApp (22)997380309 eu agradeço
ResponderExcluirFernando não há um jeito de usar um nome em vez do ip?
ResponderExcluirpor exemplo "portalAP" em vez 192.168.4.1
Olá Fernando!
ResponderExcluirEstou tentando rodar meu próprio código "hello world" ativando um LED via navegador na IDE Arduino, porém estou me deparando com um problema. A conexão com a rede local ocorre normalmente, e o monitor serial mostra a URL (endereço IP) que eu deveria utilizar para acessar o servidor. Entretanto, quando jogo o endereço no navegador e tento acessar, aparece um erro dizendo que não foi possível encontrar a página. Já desativei o firewall, testei em vários navegadores diferentes, redes diferentes, portas diferentes (mudei da porta 80 para a 443) e nada funciona! O que pode estar acontecendo?
P.S.: Estou utilizando um ESP32 e SO Windows 10
o meu nao compilou /Users/josimar/Documents/Arduino/libraries/WiFiManager/WiFiManager.h:24:30: fatal error: user_interface.h: No such file or directory
ResponderExcluirtambem tive o mesmo problema
ExcluirVá na biblioteca WiFiManager.h troque a palavra HTTP_HEAD por HTTP_HEADER, no meu funcionou.
ExcluirOlá Prof. Fernando.
ResponderExcluirFuncionou perfeitamente.
A biblioteca já cá a tinha, não sabia era como usá-la.
Muito Obrigado.
Um grande abraço de Portugal.
Por mais que eu tente ele nao cria a conexão com o nome configurado, sempre aparece Wifi-repeater.
ResponderExcluirTambém tive vários problemas de conflito entre as bibliotecas por usarem nome de arquivos iguais e quando eu removo qualquer um deles ou troco o nome a aplicação não funciona.
Fiz e reg=fiz a instalacao muitas vezes, MAS......
ResponderExcluirMultiple libraries were found for "WiFi.h"
WifiManager32:14:159: error: WiFiManager.h: No such file or directory
Used: C:\Users\vidal\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\WiFi
compilation terminated.
Not used: C:\Arduino\libraries\WiFi
exit status 1
WiFiManager.h: No such file or directory
Estou com o mesmo problema
ExcluirBoa noite Fernando, acho fantasticas suas aulas e venho seguindo alguns tutoriais, comecei a brincar com o esp32 a pouco tempo e estou tentando carregar o autoconect do wifimanager aparecem informaçoes de duplas bibliotecas e no final da um erro de compilação, estou há meses tentando instalar e desisntalar ide, bibliotecas etc mas da sempre o mesmo erro, o blink ele carrega. O Senhor ou alguem que segue a página pode me ajudar? abraços, obrigado
ResponderExcluirOla estou com o mes o problema utilizando o ino do site e as bibliotecas indicadas no artigo.
ExcluirAlguma sugestão ?
Estou com o mesmo problema
ExcluirHola Fernando,
ResponderExcluirjust a question,
why in the INO program downloadable from your page, in Void Loop is called WiFiManager wifiManager and after there is the function IF to check the input.
and in the video, like in the documentation in this pages, in the loop the first command there is the if function to check the push button and, if is TRUE is called the WiFiManager wifiManager?
what is the difference
thanks
Cara estou com o problema de múltiplas biblioteca a semanas e ninguém consegue me da um norte.
ResponderExcluirta osso kkk.
Qualquer exemplo que uso as biblioteca citadas acima dao esse erro.
Outras biblioteca e exemplos funcionam normal
Murilo, ja faz tempo que essa sua duvida esta aqui. Mas andei procurando muito sobre e consegui resolver. Caso alguem procure acho valido responder.
ExcluirResolvi da seguinte maneira:
Quando se aparece o erro de multiplas bibliotecas geralmente no erro aparece o endereço da biblioteca que esta sendo usada e o endereço da biblioteca nao usada.
Copie o endereço da biblioteca não usada, ache esse endereço no seu pc e exclua a biblioteca que esta dando conflito!
qualquer duvidas
alexandre.souza@engenharia.ufjf.br
Abraços
To na com esse problema tambem "Murilo Gimenez" ja refiz todo o processo de instalação e nada da certo
ResponderExcluirBom dia Fernando,
ResponderExcluirSegui a risca seu tutorial para a configuração do Access Point utilizando ESP32, porém, não saio desse erro.
Foram encontradas múltiplas bibliotecas para "WebServer.h"
In file included from C:\Users\kaina\Desktop\sketch_nov17a\sketch_nov17a.ino:10:0:
Usado: C:\Users\kaina\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\WebServer
C:\Users\kaina\Documents\Arduino\libraries\WiFiManager/WiFiManager.h:16:25: fatal error: ESP8266WiFi.h: No such file or directory
Não usado: C:\Program Files (x86)\Arduino\libraries\WebServer-ESP32
compilation terminated.
Foram encontradas múltiplas bibliotecas para "WiFi.h"
Usado: C:\Users\kaina\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\WiFi
Não usado: C:\Program Files (x86)\Arduino\libraries\WiFi
Foram encontradas múltiplas bibliotecas para "DNSServer.h"
Usado: C:\Users\kaina\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\DNSServer
Não usado: C:\Program Files (x86)\Arduino\libraries\DNSServer-ESP32
exit status 1
Erro compilando para a placa ESP32 Dev Module
Se puder ajudar eu agradeço.
Forte abraço, e parabéns pelos tutoriais.
Kainã, também estou com esse problema. Você conseguiu algo para resolver?
ExcluirObrigado.
Também estou com esse problema, alguém resolveu?
ExcluirEu tive um problema parecido, deletei todas as bibliotecas e reinstalei e resolveu tudo
ExcluirTive problemas 1000 tentando usar a Esp8266WiFi.h Cansei depois de 2 meses reinstalando tudo... Estou tentando experimentar o VScode, mas ainda estou engatinhando. Nele tenho conflitos entre bibliotecas e o PlatformIO. CANSA!
ExcluirSigam esse video, resolveu meu problema com isso, porem estou com problema em acessar o WiFi Manager ainda
ExcluirEsqueci do link kkkk https://www.youtube.com/watch?v=O2b1yAW_bHk&t=186s
ExcluirTambem tive o mesmo problema, resolvi apagando todas as bibliotecas com o mesmo nome na pasta do ESP8266 e do arduíno. Deixei apenas as que baixei no tutorial
ExcluirEu tive um problema parecido, deletei todas as bibliotecas e reinstalei e resolveu tudo
ResponderExcluirOlá Fernando, Acompanho direto seu Blog e o Youtube tb. Migrei do ARDUINO pro ESP32 baseado em tudo que vi nos seus posts. Configurei a IDE ARDUINO pro ESP pelas 2 maneiras, mas de todas as formas tenho tido muitos problemas com LIBRARYS aparentemente incompletas. Ha 2 meses brigo pra fazer funcionar a ESP8266WiFi.h, mas caio de erro em erro na compilação, pois acusa faltar arquivos chamados internamente pela propria library que aparentam nao estar lá. Cheguei a formatar meu note para ver se o problema nao era meu PC. Baixei a biblioteca no GitHub, e cheguei a complementar colocando manualmente 6 arquivos... mas as pendencias internas desta biblioteca nunca acabavam. Vc tem ela COMPLETA ZIPADA pra mim? onde consigo um arquivo confiável?
ResponderExcluirAbraços!
Olá Fernando, Acompanho direto seu Blog e o Youtube tb. Migrei do ARDUINO pro ESP32 baseado em tudo que vi nos seus posts. Configurei a IDE ARDUINO pro ESP pelas 2 maneiras, mas de todas as formas tenho tido muitos problemas com LIBRARYS aparentemente incompletas. Ha 2 meses brigo pra fazer funcionar a ESP8266WiFi.h, mas caio de erro em erro na compilação, pois acusa faltar arquivos chamados internamente pela propria library que aparentam nao estar lá. Cheguei a formatar meu note para ver se o problema nao era meu PC. Baixei a biblioteca no GitHub, e cheguei a complementar colocando manualmente 6 arquivos... mas as pendencias internas desta biblioteca nunca acabavam. Vc tem ela COMPLETA ZIPADA pra mim? onde consigo um arquivo confiável?
ResponderExcluirAbraços!
alguem sabe o que fazer !!!
ResponderExcluirForam encontradas múltiplas bibliotecas para "WiFi.h" Usado: C:\Users\Marcos\AppData
Uma dica que dou a quem está tendo problemas com as bibliotecas e arquivos, é instalar a placa do ESP8266, e depois baixar as bibliotecas necessárias, algumas delas tem o link no próprio arquivo .ino.
ResponderExcluirEntendi que as informações de redes salvas ficam na memória Flash o que faz com que mesmo que recompilemos e gravemos o fonte, o dispositivo vai continuar se conectando automaticamente a rede com maior sinal. Como faço para remover as redes salvas?
ResponderExcluirNão entendi duas coisa:
ResponderExcluirO que significa em "opera seletivamente em modo duplo"?
O que significa "inicialização do portal de configuração não automática"?
Não funcionou! Muita gente está com o mesmo problema. Vou pesquisar em outro site.
ResponderExcluirBoa Noite Fernando, você já utilizou o WIFIManager em redes que precisam de usuário e senha? Busquei na documentação porém não encontrei. Se puder auxiliar agradeço.
ResponderExcluirBoa Noite Fernando, você já utilizou o WIFIManager em redes que precisam de usuário e senha? Busquei na documentação porém não encontrei. Se puder auxiliar agradeço.
ResponderExcluirBom dia, muito bacaba o seu post, ajudou muita gente. Gostaria de saber quais os endereços de memória flash são ocupados por essa biblioteca pois pretendo gravar informações na flash certamente vou sobrepor a da biblioteca se não souber o mapeamento. Obrigado
ResponderExcluircaptive portal, alem do ssid tem username e password alguém já conseguiu fazer conexão passando esse parametro a mais, username ?
ResponderExcluirBoa noite, estou com problemas para compilar o esquema na minha IDE, "erro compilando a placa nodemcu-32s"
ResponderExcluirOlá, este tutorial foi muito útil, mas eu preciso selecionar DHCP ou IP estático para conectar wi-fi. Agradeço qualquer ajuda ou sugestão sobre como fazer isso.
ResponderExcluirMe desculpe, meu português é ruim, eu usei a tradução do google.
Obrigado antecipadamente.
Olá, eu recomendo usar WPS muito mais prático, veja exemplo: https://arduinodoviny.blogspot.com/2019/06/esp8266-conectado-wi-fi-com-wpsqss.html
ExcluirBoa sorte!
Obrigado por responder. Sua sugestão é boa, mas eu nem sempre tenho acesso ao roteador, então dependendo de cada caso eu preciso selecionar dhcp ou ip estático.
ExcluirEu encontrei isto:https://www.instructables.com/id/ESP32-Captive-Portal-to-Configure-Static-and-DHCP-/
mas não funciona, não encontra redes disponíveis para conectar e não é possível configurar o ssid e o passw.
Vou continuar olhando e agradeço qualquer ideia.
FernandoK e colegas do site... esta tendo um problema com wifimanager esp32 um problema com um erro de header na hora de compilar: HTTP_HEAD e a solução era mais simples do que parecia. Acabei de editar os arquivos WiFiManager.h e WifiManager.cpp substituindo (HTTP_HEAD) por (HTTP_HEADER) e não houve mais problemas de compilação (méritos para um site gringo que achei a dica).
ResponderExcluirhttp_HEAD redeclaration error ao compilar!
ResponderExcluirSolução:
Caso alguém esteja tendo problemas para compilar este código em função de erros relacionados a redeclaração do http_HEAD assim como eu tive vou deixar aqui a solução:
Abra a biblioteca WifiManager.h e substitua todos os http_HEAD por http_HEADER.
Abra o arquivo WifiManager.cpp e substitua todos os http_HEAD por http_HEADER.
Utilize bloco de notas para abrir esses dois arquivos e use o atalho control+f para buscar por http_HEAD e substitua todos que encontrar.
Depois basta salvar os arquivos e compilar novamente o código.
Mateus muito obrigado, ajudou muito!
ExcluirMuito Obrigado, Mateus! Ajudou demais.
ExcluirOlá
ResponderExcluirEu estou testando o código, mas ele não se conecta ao ESP AP, eu não entendo o porquê. No monitor serial, você vê este resultado:
*WM: Configuring access point...
*WM: ESP_AP
*WM: 12345678
*WM: AP IP address:
*WM: 192.168.4.1
*WM: HTTP server started
dhcps: send_nak>>udp_sendto result 0
Alguém poderia me ajudar?
Obrigada
Copiei a resposta do cara
ExcluirFiz isso e resolveu
|
\/
http_HEAD redeclaration error ao compilar!
Solução:
Caso alguém esteja tendo problemas para compilar este código em função de erros relacionados a redeclaração do http_HEAD assim como eu tive vou deixar aqui a solução:
Abra a biblioteca WifiManager.h e substitua todos os http_HEAD por http_HEADER.
Abra o arquivo WifiManager.cpp e substitua todos os http_HEAD por http_HEADER.
Utilize bloco de notas para abrir esses dois arquivos e use o atalho control+f para buscar por http_HEAD e substitua todos que encontrar.
Depois basta salvar os arquivos e compilar novamente o código.
Boa noite, tudo certo? Excelente tutorial! Já ajudou a abrir minha mente rss
ResponderExcluirAgora eu preciso fazer o seguinte, quando iniciar o ESP32, inicie como AP para que possa ser alterado o SSID e senha, quando eu salvar a SSID e senha, ele reinicia, verificar se foi possível conectar, caso ele não conecte, ele volte para o modo AP, se a conexão foi bem sucedida, ele inicia a rotina programada nele, no meu caso, preciso monitorar um equipamento que possui duas saídas 12v, caso haja estes 12v, ele muda o estado do pino para HIGH, se não possuir, ele mudará para LOW. Minha ideia seria fazer automaticamente ele entrar em modo AP quando não conseguir conectar, sem precisar pressionar o botão conforme ensinado aqui.
agora como eu faco pra poder ligar uma lampada a distancia pela internet com mais essa facilidade da wifi manager
ResponderExcluircomo coloco ota mais wifi manager e depois o codigo pra ligar uma lampada remoto?
ResponderExcluirBoa Noite Fernando. Primeiro parabéns por seu trabalho, sempre indico aos meus alunos aqui do SENAI Guarulhos.
ResponderExcluirQueria sua ajuda, por favor, pois preciso cominunicar um esp32 DEVKITV1 (DOIT) A UM CELULAR USANDO UM ROTEADOR WIFI, mas sem internet, so usando o wifi, é possível, vc tem algum exemplo.
Muito obrigado
Bom dia Fernando, antes de mais os meus parabéns pelas excelentes aulas e conteúdo muito bom.
ResponderExcluirGostaria de saber se há alguma maneira fácil de fazer o ESP reconectar caso perca a ligação com o AP. Obrigado.
Estou com este erro. Já desinstalei instalei e não resolve: Me salva.
ResponderExcluirtesteesp32:15:25: error: WiFiManager.h: No such file or directory
compilation terminated.
Foram encontradas múltiplas bibliotecas para "WiFi.h"
Usado: C:\Users\carll\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.3\libraries\WiFi
Não usado: C:\Program
Foram encontradas múltiplas bibliotecas para "WebServer.h"
Usado: C:\Users\carll\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.3\libraries\WebServer
Foram encontradas múltiplas bibliotecas para "DNSServer.h"
Usado: C:\Users\carll\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.3\libraries\DNSServer
exit status 1
WiFiManager.h: No such file or directory
Hola como lo explicaban mas arriba, debes entrar y modificar los siguientes archivos: WiFiManager.h, WiFiManager.cpp y también en la carpeta extras el template, => HTTP_HEAD x =>HTTP_HEADER.
ExcluirResolvi esse problema excluindo as antigas bibliotecas, deixando apenas as que baixei nesse post
ExcluirEstou implementando o WiFiManager no Esp01 ele carrega o programa tudo, acesso a rede do esp01 pelo IP 162.168.4.1 marco a minha rede digito a senha e ao salvar eu verifico no monitor serial que não foi para o passo final que seria a mensagem Serial.println("Configuração salva"); e sim volta no inicio informando o IP do esp01 com a mensagem Serial.println("resetar"). Já tentei de tudo que possa testar pode me ajudar se esse codigo funciona para o ESP01.
ResponderExcluirPARABÉNS PELO BELO EXEMPLO..só que não consegue SALVAR a minha rede com a senha e não vai passo final..qual o problema???
ResponderExcluirPARABÉNS PELO BELO EXEMPLO..só que não consegue SALVAR a minha rede com a senha e não vai passo final..qual o problema??? estou usando mcu esp 8266 v3...
ResponderExcluirBoa tarde Fernando, pode me ajudar, estou tendo este erro ao compilar no ESP32
ResponderExcluirWiFimanager:85:11: error: 'wifiManager' was not declared in this scope
if(!wifiManager.startConfigPortal("88888", "888888") ){
^
exit status 1
variable or field 'configModeCallback' declared void
Olá Fernando, a libi do wifi manager tem algum comando para zerar a flash do ESP8266, digo limpar as redes salvas ? Desde já obrigado pela atenção.
ResponderExcluirBoa Tarde Fernando, como posso configurar a minha ESP32 para que eu a acesse mesmo que eu esteja conectado a uma rede diferente da ESP32?
ResponderExcluirBoa tarde Fernando.
ResponderExcluirGrato pela explicação e pelo fonte.
Carreguei o programa em ESP8266 e ESP32. O ESP32 não mostrou as redes (getSSID) e o 8266 sim.
Você poderia dar orientação do que fazer?
Grato
Boa tarde Fernando, é possível mudar a aparência do WiFi-Manager digo o HTML da pagina de AP desde já obrigado pela atenção.
ResponderExcluirOlá, como faço para usar a ssid e a senha do wifi conectado para utilizar por exemplo em outra aplicação no mesmo programa?
ResponderExcluirQueridos, estou com problemas com o WifiManager utilizado nesse exemplo em associação com o outro exemplo também dado pelo Fernado, que foi o WatchDog. O Esp32 tem reiniciado a cada 3 segundos (que foi o tempo definido do timmer.)
ResponderExcluirPreciso chamar a função timerWrite(timer, 0); Mas não sei onde aplicar. Desculpe a pergunta, pode ser muito simples mas é o meu primeiro programa utilizado o ESP e um dos primeiros da minha vida com a liguagem C++
Obrigado. O link do programa está abaixo.
http://www.educalise.com.br/CaptacaoAguaTeste.ino
Consegui resolver esse problema depois de muita luta. Seguem considerações:
Excluir1º Modifiquei a porta do potenciometro #define POTENCIOMETRO 34 colocando nessa porta funciona, não me pergunte o porque, esse o pinout do meu ESP. Se alguem puder me dizer o motivo agradeço. https://circuits4you.com/wp-content/uploads/2018/12/ESP32-Pinout.jpg
2º Coloquei os Timmers (WatchDog e o outro) Depois das rotinas de configuração do wifi. Então o watchdog não fica armado, consequentemente não fica reiniciando.
Espero que isso ajude outros iniciantes como eu a resolver esses problemas.
Vlw
Outra pergunta, tem como fazer o programa não ficar parado enquanto não se configura o WiFi? Porque o programa não entra no loop enquanto o setup do wifi não for concluído. Essa é também uma das razões do porque o timerWrite(timer, 0); não funciona e reinicia.
ResponderExcluirGalera alguém já fez algum edit nessa pagina Web do wifimanager?
ResponderExcluirExemplo: adicionar um botão para enviar dados pro ESP ou chamar outra pagina, enfim controlar o ESP por ela, sem ser somente os comandos de config no Wifi?
Eu consigo fazer a funcionalidade do botão com m botão no meu app?
ResponderExcluirBaixei as bibliotecas indicadas
ResponderExcluirWifiManager-ESP32”, “DNSServer-ESP32” e “WebServer-ESP32”.
e erros direto sem resolução
Desinstalei as 3 bibliotecas
Baixei pelo gerenciador de bibliotecas WiFiManager.h
as outras duas já tinha versões incluídas na instalação da placa ESP32.
Retire todas as bibliotecas aqui recomendadas de: C:\Users\grupo\Documents\Arduino\libraries
ExcluirBaixe a biblioteca wifimanager do link:
https://www.arduino.cc/reference/en/libraries/wifimanager/
Obs.: adicione através da Library Manager no Arduino IDE e instale-o a partir daí.
Obrigado Fernando!
ResponderExcluirFuncionou perfeitamente.
Eu estava tendo problemas mas era um erro bobo meu.
Eu tinha um projetinho já com rede definida o código que estava funcionado bem. mas eu queria essa facilidade de troca. Então, apenas acrescentei o seu código conforme você orientou. Aqui em casa sempre funcionou, mas quando eu ia para outra casa, não conseguia a conexão. Depois de muito quebrar a cabeça descobri que quando o ESP reiniciava, ele pegava a senha que ainda estava no código através do comando WiFi.begin(ssid, pass);
Bastou eu comentar esta linha para funcionar.
Olá Fernando bom dia bom dia estou tentando usar esse seu código wi-fi Manager,mais está doandoFernando essa falha,Erro compilando para a placa NodeMCU 1.0 (ESP-12E Module) você pode me uma dica com esse Erro.
ResponderExcluirBoa tarde Fernando!
ResponderExcluirObrigado pelo post! Como iniciante, não estou conseguindo matar o problema que aparece nestas 3 linhas de código:
wifiManager.setAPCallback(configModeCallback);
wifiManager.setSaveConfigCallback(saveConfigCallback);
wifiManager.autoConnect("UVMETER", "12345678");
O erro que aparece é:
expected unqualified-id before '.' token
Alguma sugestão?
Muito obrigado!
No caso, como inserir fauxmo ou permitir controle da alexa? Obrigado.
ResponderExcluirCaro Fernando , estou precisando de ajuda. Estou usando o seu exemplo. Ele abre o portal , escolho a rede WIFI , , ele reinicia e volta para o modo AP .
ResponderExcluir***** não está fazendo isto.
3. Escolha uma das redes e coloque a senha (se precisar). Então, salve e aguarde o ESP reiniciar.
4. Ao finalizar o boot, o ESP tentará se conectar na rede salva. Caso não consiga, irá habilitar um Ponto de Acesso.
Pergunta : porque depois disto , ele não salva e vai para modo estação ?
- Está voltando para modo AP ?
//pino do botão
const int PIN_AP = 2; significa o que ?
void setup() {
Serial.begin(115000);
pinMode(PIN_AP, INPUT);
//declaração do objeto wifiManager
WiFiManager wifiManager;
=======
void loop() {
WiFiManager wifiManager;
//se o botão foi pressionado
if ( digitalRead(PIN_AP) == HIGH ) {
Serial.println("resetar"); //tenta abrir o portal
if(!wifiManager.startConfigPortal("ESP_HORSE_AP", "12345678") ){
Serial.println("Falha ao conectar");
delay(2000);
ESP.restart();
delay(1000);
}
Serial.println("Conectou ESP_HORSE_AP !!!");
}
}
Depois o dispositivo , parece que não lê quando aciono o botão RESET
if ( digitalRead(PIN_AP) == HIGH ) HIGH quer dizer botão RESET ativado mesmo ???
E por que fica dando esta mensagem no final da compilação ?
ResponderExcluirTenho que apertar o botão reset nesta hora ?
Leaving...
Hard resetting via RTS pin...
Olá Fernando, tudo bem?
ResponderExcluirPoderia me ajudar com esta mensagem de erro:
=================================================================
error: ‘class WiFiClass’ has no member named ‘softAPIP’
Serial.println(WiFi.softAPIP()); //imprime o IP do AP
=================================================================
Já verifiquei a placa usada na compilação (no caso, estou usando “ESP32 Dev Module”)
Já reinstalei as bibliotecas
Já tentei usar as bibliotecas declaradas com ” ” colocá-las na mesma pasta do arquivo .ino
Nada funcionou!! Você saberia me dizer o que pode estar errado?? E como posso corrigir??
Fico no aguardo.
Abraço
Fernando, em qual versão do pacote ESP32 esse programa foi compilado?
ResponderExcluirTentei na 1.0.6, 1.0.5, 1.0.4 e 1.0.3 e em nenhuma dessas versões o código foi compilado.
(Estou usando as mesmas bibliotecas disponibilizadas no site)
Fernando, ótimo conteúdo, como sempre!!
ResponderExcluirVocê tem algum exemplo de como adicionar mais informações para o usuário preencher além do SSID e Senha?
Gostaria de que o usuário entrasse com mais informações como um código para ser passado como parâmetro para uma API.
Obrigado,
Alexandre Marin
Bom dia Fernando. Acompanho seu excelente trabalho desde o surgimento do ESP32. Estou tentando utilizar o código desse artigo, porém, quando o celular pede para fazer "login na rede" o acces point desconecta e não vai adiante, ou seja, não chega a scanear os roteadores acessiveis. coloquei algumas mensagens para ver onde o código está "passando" e verifiquei que ele nunca entra no "void loop()". Agradeço muito se me apresentar uma luz neste tunel... muito obrigado. (Também sou Fernando!)
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirOlá Fernando, gostaria de uma ajuda sua, gostaria de implementar, uma função em um botão, que ao ser pressionado por 10 segundos execute a função wm.resetsetings().
ResponderExcluirPode me auxiliar...
Como faço para imprimir no navegador o IP que o ESP8266 assume após fazer a configuração pelo portal?
ResponderExcluirFernando, gran contenido, muchas gracias..! todo funciona bien.
ResponderExcluirnecesito como hago para obtener el SSID y la contraseña, luego que ya wifimanager alla conectado, ya que necesito usar esos datos para el blynk y llenar este comando: Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
muchas gracias de antemano, saludos des Venezuela.