{"id":51076,"date":"2026-06-30T17:00:10","date_gmt":"2026-06-30T09:00:10","guid":{"rendered":"https:\/\/pcbcool.com\/?p=51076"},"modified":"2026-06-30T17:14:07","modified_gmt":"2026-06-30T09:14:07","slug":"esp32-wifimanager-tutorial","status":"publish","type":"post","link":"https:\/\/pcbcool.com\/pt-br\/technical-guides\/esp32-wifimanager-tutorial\/","title":{"rendered":"Tutorial ESP32 WiFiManager para Configura\u00e7\u00e3o de WiFi"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"51076\" class=\"elementor elementor-51076\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-246cdd62 e-flex e-con-boxed e-con e-parent\" data-id=\"246cdd62\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-603a1569 e-con-full e-flex e-con e-child\" data-id=\"603a1569\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c032a0 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"5c032a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Se voc\u00ea j\u00e1 enviou um projeto com ESP32 contendo credenciais de Wi-Fi codificadas, voc\u00ea j\u00e1 sabe o que acontece a seguir. Funciona perfeitamente em seu banco de testes, conectado \u00e0 sua rede dom\u00e9stica, e ent\u00e3o \u00e9 enviado para um cliente, ou um pr\u00e9dio diferente, ou um pa\u00eds diferente, e subitamente se torna um dispositivo inutiliz\u00e1vel at\u00e9 que algu\u00e9m o reprograme. Esta \u00e9 uma das dores de cabe\u00e7a mais comuns no desenvolvimento de produtos de IoT e tamb\u00e9m uma das mais evit\u00e1veis. \u00c9 exatamente esse o problema para o qual o WiFiManager foi constru\u00eddo.<\/p><p>Ent\u00e3o vamos come\u00e7ar: o que \u00e9, como realmente funciona por baixo dos panos e como voc\u00ea pode coloc\u00e1-lo em funcionamento em seu pr\u00f3prio projeto ESP32, come\u00e7ando com uma r\u00e1pida verifica\u00e7\u00e3o de instala\u00e7\u00e3o e avan\u00e7ando para o tipo de configura\u00e7\u00e3o que voc\u00ea realmente desejaria enviar.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1815ebe wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"1815ebe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Por que credenciais codificadas de forma r\u00edgida simplesmente n\u00e3o funcionam<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c5aee4 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"5c5aee4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Todos n\u00f3s j\u00e1 escrevemos esta linha em algum momento:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed1372d elementor-widget elementor-widget-code-highlight\" data-id=\"ed1372d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-cpp line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-cpp\">\n\t\t\t\t\tWiFi.begin(&quot;MyHomeNetwork&quot;, &quot;password123&quot;);\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e8e92e color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"1e8e92e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>E para experi\u00eancias em bancada, n\u00e3o h\u00e1 nada de errado com isso. Mas no momento em que seu projeto precisar sair da bancada, essa abordagem come\u00e7a a causar problemas reais:<\/p><ul><li>N\u00e3o h\u00e1 flexibilidade para quem o utiliza. Quem implanta o dispositivo precisa saber o SSID e a senha exatos antes mesmo de fazer o flash, caso contr\u00e1rio, ser\u00e1 necess\u00e1rio acesso f\u00edsico posteriormente apenas para alterar uma configura\u00e7\u00e3o.<\/li><li>\u00c9 um risco de seguran\u00e7a. As credenciais embutidas diretamente no firmware est\u00e3o l\u00e1 em texto simples, prontas para qualquer um que desmonte o bin\u00e1rio.<\/li><li>N\u00e3o escala. Tem dez unidades indo para dez sites diferentes? Isso s\u00e3o dez builds de firmware diferentes, ou uma quantidade enorme de reconfigura\u00e7\u00e3o manual.<\/li><\/ul><p>O que realmente queremos \u00e9 que o dispositivo solicite ao usu\u00e1rio final os detalhes do Wi-Fi, os salve e se reconecte automaticamente toda vez que for iniciado, sem que tenhamos que mexer no c\u00f3digo novamente. Essa \u00e9 a lacuna que o WiFiManager preenche, e ele faz isso muito bem.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f356964 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"f356964\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">O que \u00e9 WiFiManager<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bfaa1ba color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"bfaa1ba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>WiFiManager \u00e9 uma biblioteca de c\u00f3digo aberto, originalmente escrita por tzapu e agora mantida por tablatronix, que oferece ao seu projeto ESP32 (ou ESP8266) uma maneira auto-contida e baseada na web para configurar o Wi-Fi. Em vez de codificar credenciais, o dispositivo inicia no modo Access Point, transmite sua pr\u00f3pria rede Wi-Fi e exibe uma p\u00e1gina web simples onde o usu\u00e1rio pode selecionar sua rede em uma lista escaneada e digitar a senha.<\/p><p>Uma vez que o usu\u00e1rio clica em salvar, o WiFiManager grava as credenciais na mem\u00f3ria flash e tenta se conectar. A partir da\u00ed, toda vez que o dispositivo inicializa, ele tenta primeiro as credenciais salvas e s\u00f3 retorna ao modo de configura\u00e7\u00e3o se a conex\u00e3o falhar. Todo esse padr\u00e3o \u00e9 chamado de portal cativo, e voc\u00ea quase certamente j\u00e1 se deparou com ele antes: \u00e9 o mesmo truque que exibe uma p\u00e1gina de login assim que voc\u00ea se conecta ao WiFi de um hotel ou aeroporto.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa4fdf8 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"aa4fdf8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Como o ESP32 WiFiManager Funciona<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e255cf wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"1e255cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">A Funda\u00e7\u00e3o: Modos WiFi do ESP32<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-279172c color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"279172c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>O r\u00e1dio de 2,4 GHz do ESP32 pode operar em tr\u00eas modos diferentes:<\/p><ul><li><em>Modo Esta\u00e7\u00e3o (STA):<\/em> o ESP32 age como um cliente WiFi comum, conectando-se ao seu roteador da mesma forma que seu laptop ou telefone fariam.<\/li><li><em>Modo Ponto de Acesso (AP):<\/em> O ESP32 cria sua pr\u00f3pria rede, permitindo que outros dispositivos se conectem diretamente a ele.<\/li><li><em>Modo Duplo (AP+STA):<\/em> e \u00e9 aqui que reside a intelig\u00eancia \u2014 o ESP32 pode transmitir sua pr\u00f3pria rede ao mesmo tempo em que escaneia ou se conecta a outro roteador.<\/li><\/ul><p>Quando o dispositivo inicia em um local novo, sem credenciais salvas, o WiFiManager o coloca no modo AP e come\u00e7a a transmitir um SSID \u2014 algo como ESP32-Setup. Isso d\u00e1 ao seu telefone um acesso: uma ponte direta para o hardware antes que ele tenha sequer tocado na internet.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8b7bcab elementor-widget elementor-widget-image\" data-id=\"8b7bcab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"187\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-400x187.jpg\" class=\"wd-lazy-fade attachment-medium size-medium wp-image-51081\" alt=\"Um Access Point (AP) ESP32 para Servidor Web\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-400x187.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-1300x607.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-768x359.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-1536x718.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-18x8.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-600x280.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server-150x70.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/an-ESP32-Access-PointAP-for-Web-Server.jpg 1770w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7605974 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"7605974\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">A Intercepta\u00e7\u00e3o: Redirecionamento DNS<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45cf4f8 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"45cf4f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ok, ent\u00e3o seu telefone ingressou na rede do ESP32. Como fazemos para acessarmos a p\u00e1gina de configura\u00e7\u00e3o sem que algu\u00e9m precise digitar um endere\u00e7o IP manualmente? N\u00f3s sequestramos o DNS.<\/p><p>Normalmente, quando voc\u00ea digita uma URL em seu navegador, um servidor DNS a traduz para um endere\u00e7o IP nos bastidores. Enquanto est\u00e1 no modo de configura\u00e7\u00e3o, o ESP32 executa seu pr\u00f3prio pequeno servidor DNS \u2014 exceto que, em vez de responder corretamente, ele responde a todas as consultas com seu pr\u00f3prio endere\u00e7o, geralmente 192.168.4.1. N\u00e3o importa se seu telefone est\u00e1 perguntando por google.com ou qualquer outra coisa; a resposta \u00e9 sempre \u201ceu\u201d.\u201d<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4ffaa9 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"c4ffaa9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">A Armadilha: Portais Cativos<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2c70f62 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"2c70f62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Aquele truque de DNS \u00e9 exatamente o que faz a m\u00e1gica do portal cativo acontecer. E voc\u00ea j\u00e1 viu isso antes, provavelmente sem perceber: ao conectar-se ao Wi-Fi de um aeroporto ou hotel.<\/p><p>Celulares e laptops modernos verificam automaticamente, no momento em que se conectam a uma nova rede, se essa rede requer um login. Dispositivos Apple, por exemplo, enviam um ping discretamente para um endere\u00e7o espec\u00edfico em segundo plano para descobrir. Como nosso ESP32 intercepta todas as requisi\u00e7\u00f5es DNS, ele tamb\u00e9m captura essa verifica\u00e7\u00e3o em segundo plano. Em vez da resposta esperada, ele devolve nossa p\u00e1gina de configura\u00e7\u00e3o HTML personalizada. O sistema operacional do telefone v\u00ea isso e abre uma janela do navegador de imediato. Ningu\u00e9m precisa procurar um endere\u00e7o IP; ele simplesmente aparece.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5eeacac wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"5eeacac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Salvar para mais tarde: Armazenamento N\u00e3o Vol\u00e1til (NVS)<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-84781cf color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"84781cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Ap\u00f3s algu\u00e9m digitar os detalhes de seu Wi-Fi e clicar em \u201cSalvar\u201d, o ESP32 precisa de uma maneira de se lembrar disso, mesmo ap\u00f3s o corte de energia.<\/p><p>Placas mais antigas dependiam de EEPROM para isso, mas o ESP32 utiliza algo mais novo chamado NVS, ou Non-Volatile Storage (Armazenamento N\u00e3o Vol\u00e1til). Pense nisso como um simples armazenamento chave-valor, alocado em sua pr\u00f3pria parti\u00e7\u00e3o dedicada da mem\u00f3ria flash.<\/p><p>O SSID e a senha s\u00e3o gravados como valores de string sob chaves espec\u00edficas. Na pr\u00f3xima vez que o dispositivo inicializar, o firmware verifica primeiramente o NVS e, se encontrar algo v\u00e1lido, ele ignora todo o processo de Access Point e se conecta silenciosamente em modo Station. Sem portal, sem complica\u00e7\u00f5es, apenas uma inicializa\u00e7\u00e3o normal.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd420fe wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"dd420fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-medium text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h3 class=\"woodmart-title-container title wd-fontsize-xl\">Restri\u00e7\u00f5es Profissionais: Considera\u00e7\u00f5es sobre Mem\u00f3ria<\/h3> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f58ed5 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"1f58ed5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Aqui est\u00e1 uma compara\u00e7\u00e3o \u00fatil: \u00e9 um pouco como aplicar regras de Design para Fabrica\u00e7\u00e3o a um layout de PCB para economizar espa\u00e7o na placa. Voc\u00ea tem que gerenciar a mem\u00f3ria do seu firmware da mesma forma cuidadosa.<\/p><p>Executar um Ponto de Acesso (Access Point), um servidor web e um servidor DNS simultaneamente consome uma quantidade consider\u00e1vel da RAM do ESP32. Deixar esses servi\u00e7os ativos ap\u00f3s a conex\u00e3o j\u00e1 ter sido estabelecida priva a sua aplica\u00e7\u00e3o real da mem\u00f3ria que ela poderia necessitar.<\/p><p>O melhor a se fazer para qualquer coisa que v\u00e1 para produ\u00e7\u00e3o \u00e9 desativar esses servi\u00e7os de configura\u00e7\u00e3o no momento em que voc\u00ea obtiver uma conex\u00e3o bem-sucedida. Pare os servidores web e DNS, libere seus recursos assim que autoConnect() retornar, e voc\u00ea ter\u00e1 essa mem\u00f3ria de volta para o que realmente importa: amostrar sensores, executar infer\u00eancias, gerenciar energia, o que quer que seu projeto precise fazer.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d0b0bbd wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"d0b0bbd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Como Instalar o WiFiManager no ESP32<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f108f4 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"0f108f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Se voc\u00ea estiver utilizando o Arduino IDE ou o PlatformIO, a instala\u00e7\u00e3o \u00e9 descomplicada.<\/p><p>Arduino IDE: abra o Gerenciador de Bibliotecas (Sketch &gt; Incluir Biblioteca &gt; Gerenciar Bibliotecas), pesquise por \u201cWiFiManager by tzapu\u201d e instale a vers\u00e3o mais recente, atualmente 2.0.17.<\/p><ol><li>Clique no gerenciador de bibliotecas<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e8694e elementor-widget elementor-widget-image\" data-id=\"9e8694e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1816\" height=\"1051\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-51085\" alt=\"Clicando em Gerenciador de Bibliotecas no IDE do Arduino\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide.jpg 1816w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-400x231.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-1300x752.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-768x444.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-1536x889.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-18x10.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-600x347.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Clicking-library-manager-in-Arduino-ide-150x87.jpg 150w\" sizes=\"auto, (max-width: 1816px) 100vw, 1816px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43aac5e color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"43aac5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ol start=\"2\"><li>Digite WiFiManager e instale WiFiManager por tzapu<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fa9a46 elementor-widget elementor-widget-image\" data-id=\"5fa9a46\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1825\" height=\"1051\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-51086\" alt=\"Instalando o Gerenciador de Wi-Fi\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager.jpg 1825w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-400x230.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-1300x749.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-768x442.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-1536x885.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-18x10.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-600x346.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Installing-WiFi-Manager-150x86.jpg 150w\" sizes=\"auto, (max-width: 1825px) 100vw, 1825px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8d8f7f color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"a8d8f7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Antes de come\u00e7ar a configurar par\u00e2metros personalizados e persist\u00eancia de NVS, vale a pena confirmar se o m\u00ednimo necess\u00e1rio funciona primeiro. A biblioteca inclui um exemplo que faz exatamente isso, procure em Arquivo &gt; Exemplos &gt; WiFiManager &gt; Basic<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6cd265a elementor-widget elementor-widget-image\" data-id=\"6cd265a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1830\" height=\"1080\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-51087\" alt=\"Tentando c\u00f3digo b\u00e1sico\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code.jpg 1830w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-400x236.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-1300x767.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-768x453.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-1536x906.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-18x12.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-600x354.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Trying-basic-code-150x89.jpg 150w\" sizes=\"auto, (max-width: 1830px) 100vw, 1830px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ed5921 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"1ed5921\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Programe isso e, assumindo que n\u00e3o haja rede salva, seu telefone dever\u00e1 imediatamente oferecer a op\u00e7\u00e3o de se conectar a \u201cESP32-Setup\u201d, e a p\u00e1gina de configura\u00e7\u00e3o dever\u00e1 aparecer. Assim que voc\u00ea confirmar que isso est\u00e1 funcionando, estar\u00e1 pronto para construir a vers\u00e3o completa.<\/p><p>Uma informa\u00e7\u00e3o que vale a pena saber: existem algumas ramifica\u00e7\u00f5es (forks) do WiFiManager circulando no ecossistema, algumas com corre\u00e7\u00f5es adicionais espec\u00edficas para ESP32 j\u00e1 inclu\u00eddas. Portanto, se voc\u00ea encontrar problemas de compatibilidade em um core ESP32 mais recente, vale a pena verificar exatamente qual ramifica\u00e7\u00e3o voc\u00ea realmente baixou.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d49e4bb wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"d49e4bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Configura\u00e7\u00e3o de um ESP32 WiFiManager em Ambiente de Produ\u00e7\u00e3o<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c60726 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"6c60726\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Uma chamada autoConnect() simples \u00e9 excelente para provar o conceito, mas uma implanta\u00e7\u00e3o real geralmente requer um pouco mais: campos personalizados, como um endere\u00e7o de servidor MQTT, uma maneira de apagar credenciais salvas sem regravar o firmware (re-flashing) e um tempo limite razo\u00e1vel para que o dispositivo n\u00e3o permane\u00e7a no modo de configura\u00e7\u00e3o indefinidamente, esgotando a bateria.<\/p><p>Aqui est\u00e1 um esbo\u00e7o completo que lida com todos os tr\u00eas, constru\u00eddo em torno de tr\u00eas pe\u00e7as que trabalham juntas.<\/p><ul><li>Gerenciamento de mem\u00f3ria. Em vez de espalhar leituras e escritas de flash por toda a fun\u00e7\u00e3o `setup()`, as escondemos em fun\u00e7\u00f5es auxiliares `loadConfig()` e `saveConfig()`. Dessa forma, \u00e9 imediatamente \u00f3bvio, num relance, exatamente quais partes do c\u00f3digo est\u00e3o acessando o armazenamento persistente:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a86d5e elementor-widget elementor-widget-image\" data-id=\"3a86d5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1300\" height=\"757\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-1300x757.jpg\" class=\"wd-lazy-fade attachment-large size-large wp-image-51094\" alt=\"Gerenciamento de mem\u00f3ria\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-1300x757.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-400x233.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-768x447.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-1536x894.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-18x10.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-600x349.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code-150x87.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/Memory-management-code.jpg 1806w\" sizes=\"auto, (max-width: 1300px) 100vw, 1300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dc2e84b color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"dc2e84b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul><li>O \"escape hatch\" (descarga de emerg\u00eancia). Antes de tocarmos em qualquer funcionalidade de Wi-Fi, verificamos primeiro um bot\u00e3o de reset f\u00edsico. Isso \u00e9 mais importante do que parece: caso a pilha de Wi-Fi fique travada em algum ponto futuro, um usu\u00e1rio sem outro recurso necessita de um caminho garantido para sair. Verificar substitui\u00e7\u00f5es de hardware antes de qualquer outra coisa significa que esse caminho nunca poder\u00e1 ser bloqueado pelo que vier depois dele:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc22e07 elementor-widget elementor-widget-image\" data-id=\"fc22e07\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1300\" height=\"443\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-1300x443.jpg\" class=\"wd-lazy-fade attachment-large size-large wp-image-51095\" alt=\"C\u00f3digo da escotilha de emerg\u00eancia\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-1300x443.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-400x136.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-768x262.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-1536x524.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-18x6.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-600x205.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code-150x51.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/escape-hatch-code.jpg 1800w\" sizes=\"auto, (max-width: 1300px) 100vw, 1300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-566ac57 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"566ac57\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<ul><li>O fluxo de configura\u00e7\u00e3o. O fluxo em si \u00e9 agrad\u00e1vel e linear: carregar o que foi salvo, pass\u00e1-lo para o portal como os valores padr\u00e3o, tentar conectar e esta parte \u00e9 importante apenas reescrever para a mem\u00f3ria flash se o usu\u00e1rio realmente alterou algo. N\u00e3o faz sentido gastar um ciclo de grava\u00e7\u00e3o na mem\u00f3ria flash apenas para salvar novamente o que j\u00e1 estava l\u00e1:<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b969a2d elementor-widget elementor-widget-image\" data-id=\"b969a2d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1300\" height=\"753\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-1300x753.jpg\" class=\"wd-lazy-fade attachment-large size-large wp-image-51096\" alt=\"Fluxo de configura\u00e7\u00e3o 1 C\u00f3digo\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-1300x753.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-400x232.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-768x445.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-1536x889.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-18x10.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-600x347.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code-150x87.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-1-Code.jpg 1815w\" sizes=\"auto, (max-width: 1300px) 100vw, 1300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99dc2fb elementor-widget elementor-widget-image\" data-id=\"99dc2fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1300\" height=\"762\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-1300x762.jpg\" class=\"wd-lazy-fade attachment-large size-large wp-image-51097\" alt=\"Fluxo de Configura\u00e7\u00e3o 2 C\u00f3digo\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-1300x762.jpg 1300w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-400x235.jpg 400w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-768x450.jpg 768w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-1536x901.jpg 1536w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-18x12.jpg 18w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-600x352.jpg 600w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code-150x88.jpg 150w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/06\/setup-flow-2-Code.jpg 1796w\" sizes=\"auto, (max-width: 1300px) 100vw, 1300px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64e3adf color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"64e3adf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Reunindo tudo, voc\u00ea tem um fluxo de provisionamento completo e aut\u00f4nomo: ele verifica reinicializa\u00e7\u00f5es manuais, carrega o que j\u00e1 est\u00e1 salvo, permite que o usu\u00e1rio visualize e substitua isso por meio de um portal cativo, conecta-se e apenas persiste o que realmente mudou. Sem servi\u00e7o em nuvem, sem aplicativo complementar e nada fora do pr\u00f3prio dispositivo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-186dc58 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"186dc58\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Problemas Comuns do WiFiManager para ESP32<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-10a65b6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"10a65b6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Algumas coisas frequentemente confundem as pessoas com o WiFiManager, de forma que valem a pena ser destacadas antes que voc\u00ea mesmo as encontre:<\/p><ul><li>O portal cativo nem sempre aparece automaticamente. Algumas vers\u00f5es do Android e telefones gerenciados corporativamente atrasam ou desativam essa detec\u00e7\u00e3o. Sempre imprima o endere\u00e7o IP do portal (192.168.4.1 por padr\u00e3o) para o console serial, para que algu\u00e9m possa acess\u00e1-lo manualmente se o pop-up nunca aparecer.<\/li><li>autoConnect() bloqueia por padr\u00e3o. Enquanto o dispositivo est\u00e1 no modo AP, o restante do seu c\u00f3digo setup() n\u00e3o ser\u00e1 executado. Se voc\u00ea precisa que outras coisas aconte\u00e7am durante o provisionamento, considere o modo n\u00e3o bloqueante do WiFiManager em vez disso.<\/li><li>O NVS pode ser corrompido ap\u00f3s uma atualiza\u00e7\u00e3o do core. A atualiza\u00e7\u00e3o do core do ESP32 para Arduino ocasionalmente altera o layout da parti\u00e7\u00e3o do NVS, fazendo com que as credenciais antigas sejam lidas como dados inv\u00e1lidos. Um apagamento limpo do NVS ou uma chamada defensiva de resetSettings() em caso de falha de conex\u00e3o \u00e9 mais seguro do que assumir que os dados antigos ainda s\u00e3o v\u00e1lidos.<\/li><li>Proteja sua AP com senha. Por padr\u00e3o, essa rede de configura\u00e7\u00e3o est\u00e1 totalmente aberta. Qualquer pessoa pr\u00f3xima pode se conectar a ela e visualizar ou alterar as configura\u00e7\u00f5es do seu WiFi. Passe uma senha como segundo argumento para autoConnect() e essa porta se fechar\u00e1.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e54692 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"2e54692\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">O WiFiManager \u00e9 adequado para o seu projeto ESP32?<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7406d41 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"7406d41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Para a maioria dos projetos de consumo e produtos comerciais de pequeno porte, o WiFiManager atinge um ponto ideal: sem depend\u00eancias externas, um fluxo de configura\u00e7\u00e3o que as pessoas j\u00e1 entendem de redes WiFi de hot\u00e9is e aeroportos, e praticamente nenhum c\u00f3digo para implement\u00e1-lo.<\/p><p>Dito isto, n\u00e3o \u00e9 adequado para tudo. Para implanta\u00e7\u00f5es industriais \"headless\" \u2013 pense em um dispositivo parafusado em uma parede sem tela e sem acesso f\u00edsico f\u00e1cil \u2013 voc\u00ea provavelmente se beneficiar\u00e1 mais de uma rede de fallback codificada e um caminho de provisionamento remoto via BLE ou API de back-end, em vez de depender de algu\u00e9m se aproximar e conectar seu telefone ao AP do dispositivo. E se voc\u00ea j\u00e1 est\u00e1 utilizando o ESP-IDF em vez do Arduino, vale a pena comparar isso com o provisionamento nativo de Wi-Fi da pr\u00f3pria Espressif, que adiciona provisionamento baseado em BLE ao lado da abordagem usual de SoftAP\/portal cativo e tende a se encaixar de forma mais natural em uma base de c\u00f3digo IDF existente.<\/p><p>Mas para tudo o que est\u00e1 entre os projetos de cria\u00e7\u00e3o, as pequenas startups de hardware, o problema de \u201cesta coisa precisa funcionar nas casas de dez clientes diferentes sem dez compila\u00e7\u00f5es de firmware diferentes\u2019, o WiFiManager ainda \u00e9 uma das maneiras mais simples e testadas em batalha para resolver o provisionamento de Wi-Fi no ESP32.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4762e36 wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"4762e36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Considera\u00e7\u00f5es Finais<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19391ec color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"19391ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Este \u00e9 o fim deste tutorial do ESP32 WiFiManager. Assim que tiver a configura\u00e7\u00e3o b\u00e1sica funcionando, as credenciais de Wi-Fi codificadas n\u00e3o dever\u00e3o mais fazer parte do seu fluxo de trabalho de implanta\u00e7\u00e3o do ESP32.<\/p>\n<p>Se voc\u00ea encontrar problemas ao construir um produto IoT baseado em ESP32, voc\u00ea sempre poder\u00e1 discutir seu projeto com <a href=\"https:\/\/pcbcool.com\/pt-br\/\">PCBCool<\/a>. Tamb\u00e9m lan\u00e7amos recentemente um <a href=\"https:\/\/pcbcool.com\/pt-br\/quote\/\">Sistema de cota\u00e7\u00e3o online<\/a>, tornando mais f\u00e1cil para empresas e fabricantes obterem or\u00e7amentos para projetos de PCB e PCBA. Se tiver um projeto relacionado, sinta-se \u00e0 vontade para experiment\u00e1-lo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-574f1fd6 e-flex e-con-boxed e-con e-parent\" data-id=\"574f1fd6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c60c6b5 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"5c60c6b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-primary wd-title-style-underlined wd-title-size-large text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h2 class=\"woodmart-title-container title wd-fontsize-xxl\">Perguntas Frequentes<\/h2> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-138a87ec e-con-full elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"138a87ec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7feee959 e-con-full e-flex e-con e-child\" data-id=\"7feee959\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-22e96f85 elementor-widget elementor-widget-wd_accordion\" data-id=\"22e96f85\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"wd-accordion wd-style-shadow wd-titles-left wd-opener-pos-left wd-opener-style-arrow\" data-state=\"all_closed\">\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"0\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\tPor que a contagem de camadas tem um impacto t\u00e3o grande no custo da PCB?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>A raz\u00e3o principal \u00e9 que cada camada adicionada torna o processo de fabrica\u00e7\u00e3o mais dif\u00edcil de controlar. Mais camadas significam mais chances de defeitos nas camadas internas, problemas de alinhamento, falhas de lamina\u00e7\u00e3o e refugo.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2b32d82c e-con-full e-flex e-con e-child\" data-id=\"2b32d82c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a272c7d elementor-widget elementor-widget-wd_accordion\" data-id=\"a272c7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"wd-accordion wd-style-shadow wd-titles-left wd-opener-pos-left wd-opener-style-arrow\" data-state=\"all_closed\">\n\t\t\t\t\t\t\t\n\t\t\t\t<div class=\"wd-accordion-item\">\n\t\t\t\t\t<div class=\"wd-accordion-title wd-role-btn\" data-accordion-index=\"0\" tabindex=\"0\">\n\t\t\t\t\t\t<div class=\"wd-accordion-title-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\tQ8: Por que os projetos de BGA exigem controle mais rigoroso na fabrica\u00e7\u00e3o de PCBs?\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<span class=\"wd-accordion-opener\"><\/span>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"wd-accordion-content wd-entry-content\" data-accordion-index=\"0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<p>As ilhas BGA s\u00e3o pequenas e densamente espa\u00e7adas, de modo que pequenos erros de fabrica\u00e7\u00e3o podem facilmente se tornar problemas de montagem.<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46d73f7c elementor-widget elementor-widget-shortcode\" data-id=\"46d73f7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t<link rel=\"stylesheet\" id=\"elementor-post-38934-css\" href=\"https:\/\/pcbcool.com\/wp-content\/uploads\/elementor\/css\/post-38934.css?ver=1783499573\" type=\"text\/css\" media=\"all\">\n\t\t\t\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"38934\" class=\"elementor elementor-38934\" data-elementor-post-type=\"cms_block\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-33bcad2 e-flex e-con-boxed e-con e-parent\" data-id=\"33bcad2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c2f6cd0 e-con-full e-flex e-con e-child\" data-id=\"c2f6cd0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-819b8cd e-con-full e-flex e-con e-child\" data-id=\"819b8cd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-abdf582 elementor-widget elementor-widget-image\" data-id=\"abdf582\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"250\" src=\"https:\/\/pcbcool.com\/wp-content\/themes\/woodmart\/images\/lazy.svg\" data-src=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/Sam-K.jpg\" class=\"wd-lazy-fade attachment-full size-full wp-image-38937\" alt=\"Sam K\" srcset=\"\" data-srcset=\"https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/Sam-K.jpg 250w, https:\/\/pcbcool.com\/wp-content\/uploads\/2026\/01\/Sam-K-150x150.jpg 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2cd26df e-con-full e-flex e-con e-child\" data-id=\"2cd26df\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-836541e wd-width-100 elementor-widget elementor-widget-wd_title\" data-id=\"836541e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<div class=\"woodmart-title-container title wd-fontsize-l\">Sam K | Engenheiro de Sistemas Embarcados<\/div> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7fc678a e-con-full e-flex e-con e-child\" data-id=\"7fc678a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0e97d99 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"0e97d99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Sam K atua em sistemas eletr\u00f4nicos embarcados, com foco em projeto de hardware, desenvolvimento de PCB, programa\u00e7\u00e3o de firmware e integra\u00e7\u00e3o de sistemas. Ele tamb\u00e9m apoia a otimiza\u00e7\u00e3o de desempenho e auxilia na transforma\u00e7\u00e3o de ideias de produtos eletr\u00f4nicos em solu\u00e7\u00f5es confi\u00e1veis e funcionais no mundo real.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-092f191 elementor-widget elementor-widget-html\" data-id=\"092f191\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"custom-btn-wrapper\">\r\n  <a href=\"https:\/\/pcbcool.com\/pt-br\/author\/sam-k\/\" class=\"custom-btn\">Leia Mais Artigos de Sam K \u2192<\/a>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>O ESP32 WiFiManager \u00e9 uma biblioteca que ajuda dispositivos ESP32 a configurar o Wi-Fi sem credenciais codificadas. Este tutorial explica como configur\u00e1-lo passo a passo.<\/p>","protected":false},"author":11,"featured_media":51106,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"Tutorial ESP32 WiFiManager: Configura\u00e7\u00e3o de WiFi sem Codifica\u00e7\u00e3o Fixa | PCBCool","description":"O ESP32 WiFiManager \u00e9 uma biblioteca que ajuda dispositivos ESP32 a configurar o Wi-Fi sem credenciais codificadas. Este tutorial explica como configur\u00e1-lo passo a passo."},"footnotes":""},"categories":[113],"tags":[120],"post_folder":[],"class_list":["post-51076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-guides","tag-esp32"],"_links":{"self":[{"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/posts\/51076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/comments?post=51076"}],"version-history":[{"count":5,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/posts\/51076\/revisions"}],"predecessor-version":[{"id":51105,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/posts\/51076\/revisions\/51105"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/media\/51106"}],"wp:attachment":[{"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/media?parent=51076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/categories?post=51076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/tags?post=51076"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/pcbcool.com\/pt-br\/wp-json\/wp\/v2\/post_folder?post=51076"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}