{"id":4673,"date":"2019-03-29T19:49:11","date_gmt":"2019-03-29T18:49:11","guid":{"rendered":"https:\/\/www.diarioelectronicohoy.com\/blog\/?p=4673"},"modified":"2019-04-19T11:11:44","modified_gmt":"2019-04-19T09:11:44","slug":"introduccion-a-la-libreria-wifimanager","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager","title":{"rendered":"Introducci\u00f3n a la librer\u00eda WIFIMANAGER."},"content":{"rendered":"<h5 style=\"text-align: center;\">PARA LA FAMILIA ESP.<\/h5>\n<h2>INTRODUCCI\u00d3N.<\/h2>\n<p style=\"text-align: justify;\">En el mundo del IoT que utiliza los populares ESP8266 disponen de WiFi y debe saber que, para conectar una placa como ESP8266 o NodeMCU a una red WiFi, tenemos que empezar por configurar en el programa o c\u00f3digo, un cierto nivel de seguridad los par\u00e1metros de red\u00a0<strong>SSID<\/strong>\u00a0y el\u00a0<strong>Password<\/strong>\u00a0de la red a la que conectarnos. En otros palabras, en el\u00a0<strong>setup()<\/strong>, configuramos el ESP8266 como cliente WiFi en modo estaci\u00f3n (STA), iniciando la conexi\u00f3n a la que le pasamos el nombre de nuestra red y la contrase\u00f1a, veamos.<\/p>\n<pre class=\"\"> \t#include  \/\/ librer\u00eda.\r\n \tconst char* SSID = \"yourssid\"; \/\/ ssid de la red\r\n \tconst char* PASSWORD = \"yourpassword\"; \/\/ clave de la red\r\n \t\r\n \tWiFi.mode(WIFI_STA); \/\/ Modo cliente WiFi\r\n \tWiFi.begin(\"Nombre_WiFi\", \"Contrase\u00f1a\"); \/\/ por ejemplo.\r\n \t...\r\n \t\/\/ sigue el programa.<\/pre>\n<p style=\"text-align: justify;\">Verificamos y cargamos el programa en el ESP, y si todo es correcto el proyecto queda en funcionamiento. Este proceso a la larga presenta un inconveniente \u00bfqu\u00e9 sucede si uno de estos dos par\u00e1metros cambia? o sea, si nos vamos a otro lugar con otra red WiFi. En cualquiera de estos casos nos saltar\u00e1 un error que nos impide la normal conexi\u00f3n.<\/p>\n<p style=\"text-align: justify;\">Entonces, tenemos que modificar y cargar de nuevo el programa, cada vez que cambiamos de red WiFi a la que se ha de conectar, repetiremos la operaci\u00f3n, no es que sea un problema insalvable. Aunque ser\u00eda m\u00e1s pr\u00e1ctico no tener que cambiar el programa y volverlo a cargar.<\/p>\n<p style=\"text-align: justify;\">Tambi\u00e9n yo he realizado algunas pruebas conectando el ESP8266 a una red local utilizando credenciales codificadas con m\u00e9todos que almacenan el SSID y el Password de una red, pero no es muy conveniente ni pr\u00e1ctico para los proyectos acabados. Ser\u00eda mejor poder elegir la red a usar en tiempo de ejecuci\u00f3n. Eso es exactamente lo que nos aporta la librer\u00eda\u00a0<a href=\"https:\/\/github.com\/tzapu\/WiFiManager\" target=\" \" rel=\"noopener noreferrer\">WifiManager<\/a>\u00a0y otras similares que por el momento no veremos aqu\u00ed.<\/p>\n<p style=\"text-align: justify;\"><em><strong>Alguien dijo:<\/strong><\/em>\u00a0Por lo general, uno debe programar la l\u00f3gica de su sistema, implementar la comunicaci\u00f3n, implementar el control y crear la infraestructura para ejecutar todo esto. Aunque hay sistemas que resuelven algunos de estos problemas, ya sea de c\u00f3digo abierto o comercial, son complejos de programar.<\/p>\n<p style=\"text-align: justify;\">En todas las compa\u00f1\u00edas que ofertan estas posibilidades, usted siempre tiene que registrarse, para lo cual tiene que ingresar datos relevantes sobre usted. Hay una opci\u00f3n que no necesita depender de estas empresas, con crear un AP (Punto de Acceso) y as\u00ed poder conectarse a la red.<\/p>\n<p>Esta es una raz\u00f3n m\u00e1s que interesante para utilizar la librer\u00eda WifiManager.<\/p>\n<h3>LIBRER\u00cdA WIFIMANAGER.<\/h3>\n<p style=\"text-align: justify;\">Efectivamente, ese mismo problema lo hab\u00eda padecido entre otros, un tal\u00a0<strong>Tzapu<\/strong>, al que se le ocurri\u00f3 crear una librer\u00eda que sirve precisamente para resolver el problema, se trata de una librer\u00eda que nos permite dotar a los dispositivos del IoT de algo m\u00e1s de libertad, las pruebas de Tzapu ya eran registradas en 2015.<\/p>\n<p style=\"text-align: justify;\">La librer\u00eda\u00a0<a href=\"https:\/\/github.com\/tzapu\/WiFiManager\" target=\" \" rel=\"noopener noreferrer\">WiFiManager<\/a>\u00a0es una librer\u00eda de c\u00f3digo abierto que permite configurar los par\u00e1metros de una red WiFi desde un m\u00f3vil en un ESP8266, de forma r\u00e1pida sin cargar un nuevo c\u00f3digo y adem\u00e1s tiene otras funcionalidades. Esta librer\u00eda, no necesitamos descargarla ya viene integrada en el Gestor de bibliotecas de Arduino.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/gestor_librerias\" target=\"_blank\" rel=\"attachment noopener wp-att-4684 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4684\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/gestor_librerias-300x169.jpg\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/gestor_librerias-300x169.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/gestor_librerias-768x433.jpg 768w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/gestor_librerias-50x28.jpg 50w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/gestor_librerias.jpg 786w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 1 Gestor de librer\u00edas WiFiManager.<\/p>\n<p style=\"text-align: justify;\">Como de costumbre, analicemos un caso. Cuando nos llevamos el proyecto basado en el ESP8266 a otro sitio donde hay otra red WiFi, como se ha dicho, tenemos que editar el c\u00f3digo y modificar el SSID y el Password de la nueva red WiFi. En esta ocasi\u00f3n considero que usted tiene conocimientos suficientes de los entornos Arduino y ESP8266. Si lo cree necesario puede leer el contenido de\u00a0<a href=\"https:\/\/arduino-esp8266.readthedocs.io\/en\/2.5.0\/\" target=\" \" rel=\"noopener noreferrer\">la documentaci\u00f3n de ESP8266 Arduino Core<\/a>, para salir de dudas.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/pinout-nodemcu-esp12\" target=\"_blank\" rel=\"attachment noopener wp-att-4685 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4685\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/pinout-nodemcu-esp12-300x240.jpg\" alt=\"\" width=\"300\" height=\"240\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/pinout-nodemcu-esp12-300x240.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/pinout-nodemcu-esp12-50x40.jpg 50w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/pinout-nodemcu-esp12.jpg 728w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 2 Pinout del nodeMCU-ESP12<\/p>\n<p>Librer\u00edas que se debe incluir en el boceto:<\/p>\n<pre id=\"crayon-5c9e68ab688f2097046557-7\" class=\"crayon-line \">#include  &lt; ESP8266WiFi.h &gt;  \/\/ Biblioteca b\u00e1sica de ESP8266 WiFi \r\n#include  &lt; DNSServer.h &gt;  \/\/ Servidor DNS local usado para redirigir todas \r\n\t\t\t    \/\/ las solicitudes al portal de configuraci\u00f3n \r\n#include  &lt; ESP8266WebServer.h &gt;  \/\/ Servidor web local usado para \r\n                               \/\/ servir el portal de configuraci\u00f3n. \r\n\t  \/\/ https:\/\/github.com\/tzapu\/WiFiManager WiFi Configuration Magic\r\n#include  &lt; WiFiManager.h &gt;<\/pre>\n<h3>EL C\u00d3DIGO<\/h3>\n<p>La autor\u00eda del c\u00f3digo pertenece a Fernando Koyanagi, al que saludo y agradezco su trabajo desde esta p\u00e1gina.<\/p>\n<pre class=\"\">\/\/ config_wifimanager.ino\r\n\/\/\r\n \r\n#if defined(ESP8266)\r\n#include &lt; ESP8266WiFi.h &gt; \/\/ESP8266WiFi.h .- ESP8266 Core WiFi Library\r\n#else\r\n#include &lt; WiFi.h &gt;  \/\/WiFi.h .- ESP32 Core WiFi Library\r\n#endif\r\n \r\n#if defined(ESP8266)\r\n \r\n#include &lt; ESP8266WebServer.h &gt; \/\/ESP8266WebServer.h .- Servidor web local utilizado para servir el portal de configuraci\u00f3n\r\n \r\n#else\r\n \r\n#include &lt; WebServer.h &gt; \/\/WebServer.h .- Servidor DNS local utilizado para redireccionar todas las solicitudes al portal de configuraci\u00f3n (https:\/\/github.com\/zhouhan0126\/DNSServer---esp32)\r\n#endif\r\n \r\n#include &lt; DNSServer.h &gt;\/\/DNSServer.h .- Local WebServer usado para servir el portal de configuraci\u00f3n (https:\/\/github.com\/zhouhan0126\/DNSServer---esp32)\r\n#include &lt; WiFiManager.h &gt; \/\/WiFiManager.h .- WiFi Configuration Magic (https:\/\/github.com\/zhouhan0126\/DNSServer---esp32) &gt;&gt; https:\/\/github.com\/zhouhan0126\/DNSServer---esp32 (ORIGINAL)\r\n \r\nconst int PIN_AP = 2; \/\/ pulsador para volver al modo AP\r\n \r\nvoid configModeCallback (WiFiManager *myWiFiManager) {\r\n Serial.println(\"Modo de configuraci\u00f3n ingresado\");\r\n Serial.println(WiFi.softAPIP());\r\n \r\n Serial.println(myWiFiManager-&gt;getConfigPortalSSID());\r\n}\r\n \r\n\/\/flag for saving data\r\nbool shouldSaveConfig = false;\r\n \r\n\/\/ En https:\/\/github.com\/tzapu\/WiFiManager\r\n\/\/callback notifying us of the need to save config\r\n \r\nvoid saveConfigCallback () {\r\n Serial.println(\"Deber\u00eda guardar la configuraci\u00f3n\");\r\n shouldSaveConfig = true;\r\n}\r\n \r\nvoid setup() {\r\n Serial.begin(9600);\r\n pinMode(PIN_AP, INPUT);\r\n \/\/declaraci\u00f3n de objeto wifiManager\r\n WiFiManager wifiManager;\r\n \r\n \/\/ utilizando ese comando, como las configuraciones se apagar\u00e1n en la memoria\r\n \/\/ en caso de que la redacci\u00f3n se conecte autom\u00e1ticamente, ella \u00e9 apagada.\r\n \/\/ wifiManager.resetSettings();\r\n \r\n \/\/devoluci\u00f3n de llamada para cuando entra en el modo de configuraci\u00f3n AP\r\n wifiManager.setAPCallback(configModeCallback);\r\n \/\/devoluci\u00f3n de llamada cuando se conecta a una red, es decir, cuando pasa a trabajar en modo EST\r\n wifiManager.setSaveConfigCallback(saveConfigCallback);\r\n \r\n \/\/crea una red de nombre ESP_AP con pass 12345678\r\n wifiManager.autoConnect(\"ESP_AP\", \"12345678\");\r\n}\r\n \r\nvoid loop() {\r\n \r\n WiFiManager wifiManager;\r\n \/\/si el bot\u00f3n se ha presionado\r\n if ( digitalRead(PIN_AP) == HIGH ) {\r\n  Serial.println(\"reajustar\"); \/\/resetear intenta abrir el portal\r\n  if(!wifiManager.startConfigPortal(\"ESP_AP\", \"12345678\") ){\r\n   Serial.println(\"No se pudo conectar\");\r\n   delay(2000);\r\n   ESP.restart();\r\n   delay(1000);\r\n  }\r\n  Serial.println(\"conectado ESP_AP!!!\");\r\n }\r\n}<\/pre>\n<p>Abra el monitor serial y debe obtener un resultado similar al mostrado en la figura.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/monitor_autoconnect\" target=\"_blank\" rel=\"attachment noopener wp-att-4686 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4686\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/monitor_autoconnect-300x243.jpg\" alt=\"\" width=\"300\" height=\"243\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/monitor_autoconnect-300x243.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/monitor_autoconnect-50x41.jpg 50w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/monitor_autoconnect.jpg 644w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 3 Monitor AutoConnect<\/p>\n<p style=\"text-align: justify;\">Cuando se realiza una conexi\u00f3n exitosa, el ESP8266 recuerda las credenciales e intenta conectarse a la misma red la pr\u00f3xima vez. Si no puede conectarse, usa el modo AP para mostrar la p\u00e1gina de conexi\u00f3n nuevamente.<\/p>\n<p style=\"text-align: justify;\">WifiManager usa el modo de punto de acceso y el modo de estaci\u00f3n juntos. Utiliza el modo AP para la p\u00e1gina de conexi\u00f3n que est\u00e1 disponible bajo la red propia del ESP8266 y en una direcci\u00f3n IP conocida (192.168.4.1) y luego usa el modo STA para conectarse a la red local.<\/p>\n<p style=\"text-align: justify;\">Cuando est\u00e1 conectado a Internet y cuando est\u00e1 conectado a la red del dispositivo ESP, cualquier solicitud a cualquier nombre de dominio se redirige a este nombre de dominio en el dispositivo. La direcci\u00f3n IP 192.168.1.4 tambi\u00e9n funciona pero no existe en Internet.<\/p>\n<p style=\"text-align: justify;\"><u><strong>La librer\u00eda WiFiManager<\/strong><\/u>\u00a0permite que el ESP8266 se conecte a la red local WiFi preconfigurada. En el caso de que no pueda realizar la conexi\u00f3n guardada previamente, pasa al modo de punto de acceso (<strong>AP<\/strong>), activa un portal cautivo, un servidor\u00a0<strong>DNS<\/strong>\u00a0y un servidor web (<strong>IP predeterminado 192.168.4.1<\/strong>). Entonces, desde cualquier dispositivo con WiFi, se conecta a ese punto de acceso. La siguiente es una vista desde un m\u00f3vil.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/portal_cautivo\" target=\"_blank\" rel=\"attachment noopener wp-att-4687 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4687\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/portal_cautivo.jpg\" alt=\"\" width=\"187\" height=\"332\" \/><\/a>Fig. 4 Portal cautivo.<\/p>\n<p style=\"text-align: justify;\">As\u00ed, mediante el portal cautivo y el servidor DNS, se obtendr\u00e1 un tipo de ventana emergente como la mostrada, que nos permite elegir y configurar una red. Pulse sobre el bot\u00f3n Configure WiFi , se mostrar\u00e1n las redes a su alcance, elija una e ingrese la contrase\u00f1a de la red elegida y haga clic en guardar, sin necesidad de editar una sola l\u00ednea de c\u00f3digo. Si tiene \u00e9xito, le devuelve el control a su aplicaci\u00f3n, si no, vuelva a conectarse a AP y reconfigure.<\/p>\n<table width=\"50%\" align=\"center\">\n<tbody>\n<tr>\n<td><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/listado_redes\" target=\"_blank\" rel=\"attachment noopener wp-att-4688 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-4688 aligncenter\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-169x300.jpg\" alt=\"\" width=\"169\" height=\"300\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-169x300.jpg 169w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-768x1365.jpg 768w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-576x1024.jpg 576w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-28x50.jpg 28w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes-820x1458.jpg 820w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/listado_redes.jpg 1080w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/a><\/td>\n<td><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4689\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-169x300.jpg\" alt=\"\" width=\"169\" height=\"300\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-169x300.jpg 169w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-768x1365.jpg 768w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-576x1024.jpg 576w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-28x50.jpg 28w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes-820x1458.jpg 820w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/detalle_listado_redes.jpg 1080w\" sizes=\"auto, (max-width: 169px) 100vw, 169px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center;\">Fig. 5 Listado de redes.<\/p>\n<p style=\"text-align: justify;\">Para volver a conectarse, tiene la opci\u00f3n de conectar un pulsador con una resistencia como se muestra en la figura 3, al pulsar vuelve a iniciarse en modo AP. Esta es una de las utilidades de esta librer\u00eda, si prevemos que nuestro proyecto puede utilizar diferentes redes WiFi.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/introduccion-a-la-libreria-wifimanager\/conectar_ap\" target=\"_blank\" rel=\"attachment noopener wp-att-4682 noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-4682\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/conectar_ap-300x176.jpg\" alt=\"\" width=\"300\" height=\"176\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/conectar_ap-300x176.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/conectar_ap-768x451.jpg 768w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/conectar_ap-50x29.jpg 50w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2019\/03\/conectar_ap.jpg 815w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 6 Reconectar a AP.<\/p>\n<p style=\"text-align: justify;\"><strong>Recapitulando<\/strong>: Con nuestro ESP8266 WiFi usando la librer\u00eda\u00a0<a href=\"https:\/\/github.com\/tzapu\/WiFiManager\" target=\" \" rel=\"noopener noreferrer\">WiFiManager<\/a>, se crea un punto de acceso (AP), despu\u00e9s mediante el portal cautivo y el servidor DNS, a trav\u00e9s del IP predeterminado 192.168.4.1 nos mostrar\u00e1 una ventana emergente\u00a0<strong>AutoConnectAP<\/strong>, as\u00ed, obtenemos las redes locales accesibles, seleccionamos una y una vez configurada la guardamos, para en otra ocasi\u00f3n poder conectarnos a ella.<\/p>\n<p style=\"text-align: justify;\">A continuaci\u00f3n el ESP8266 se reiniciar\u00e1 e intentar\u00e1 conectarse a la red, funcionando en modo <strong>STA<\/strong>\u00a0como estaci\u00f3n y ya no como\u00a0<strong>AP\u00a0<\/strong>punto de acceso. Para volver iniciar en modo\u00a0<strong>AP<\/strong>\u00a0s\u00f3lo, a trav\u00e9s del bot\u00f3n de la figura anterior.<\/p>\n<p style=\"text-align: justify;\">El ESP se inicia e intenta conectarse a un Punto de acceso guardado previamente, si esto no tiene \u00e9xito (o si no se guard\u00f3 ninguna red anterior), el ESP pasa al modo de Punto de acceso y hace funcionar un DNS y un Servidor web (ip predeterminado 192.168.4.1). Ahora, utilizando cualquier dispositivo (computadora, tel\u00e9fono, tableta) habilitado para WiFi con un navegador, con\u00e9ctese al punto de acceso reci\u00e9n creado. Mediante el portal cautivo y al servidor DNS, obtendr\u00e1 una ventana emergente u obtendr\u00e1 cualquier dominio al que intente acceder redirigido al portal de configuraci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">Observese que los ESP8266 y su familia no disponen de un hardware de seguridad que encripte la comunicaci\u00f3n, sin embargo la librer\u00eda WIFI incluye funciones de encriptaci\u00f3n por software, por lo tanto podemos acceder de forma similar a los sitios\u00a0<strong>HTTPS<\/strong>, con el inconveniente de ocupar sobre 20kB de memoria, lo que debe tenerse en cuenta.<\/p>\n<h3>FILTRO DE REDES.<\/h3>\n<p style=\"text-align: justify;\">Puede filtrar redes seg\u00fan la calidad de la se\u00f1al y mostrar\/ocultar redes duplicadas. Para filtrar redes de baja calidad de se\u00f1al, puede indicar a WiFiManager que no muestre redes por debajo de un % de calidad arbitrario;<\/p>\n<pre class=\"\">wifiManager.setMinimumSignalQuality (10);<\/pre>\n<p>Con lo que no mostrar\u00e1 redes con un 10% de calidad de se\u00f1al.<\/p>\n<p style=\"text-align: justify;\">Adem\u00e1s, puede eliminar o mostrar redes duplicadas (la opci\u00f3n predeterminada es eliminar). Utilice esta funci\u00f3n para mostrar (u ocultar) todas las redes.<\/p>\n<pre class=\"\">wifiManager.setRemoveDuplicateAPs(false);<\/pre>\n<p style=\"text-align: justify;\">Cuando se realiza una conexi\u00f3n exitosa, el ESP8266 recuerda las credenciales e intenta conectarse a la misma red la pr\u00f3xima vez. Si no puede conectarse, usa el modo AP para mostrar la p\u00e1gina de conexi\u00f3n nuevamente.<\/p>\n<p style=\"text-align: justify;\">WifiManager usa el modo de punto de acceso y el modo de estaci\u00f3n juntos. Utiliza el modo AP para la p\u00e1gina de conexi\u00f3n que est\u00e1 disponible bajo la red propia del ESP8266 y en una direcci\u00f3n IP conocida (192.168.4.1) y luego usa el modo STA para conectarse a la red local.<\/p>\n<h3>SOLUCI\u00d3N DE ALGUNOS PROBLEMAS.<\/h3>\n<p style=\"text-align: justify;\">Ante errores de compilaci\u00f3n, la mayor\u00eda de las veces, es posible que deba instalar una versi\u00f3n m\u00e1s reciente o anterior del n\u00facleo ESP8266 para Arduino, en mi experiencia desinstal\u00e9 la versi\u00f3n 2.5.0 beta y volv\u00ed a instalar la versi\u00f3n 2.4.1 y pude compilar sin problemas.<\/p>\n<p style=\"text-align: justify;\">Si se conecta al punto de acceso de configuraci\u00f3n creado pero el portal de configuraci\u00f3n no se muestra, simplemente abra un navegador y escriba la IP del portal web, de forma predeterminada 192.168.4.1.<\/p>\n<p style=\"text-align: justify;\">Personalmente he utilizado el siguiente c\u00f3digo y se que funciona bien. Pruebe usted si consigue poner en servicio esta librer\u00eda. Copie y guarde este c\u00f3digo con un nombre, compile y suba a su ESP y compruebe su funcionalidad.<\/p>\n<p>Si su boceto no se compila y devuelve un error similar a este:<\/p>\n<pre class=\"\">FindFirstFile C:\\Users\\XXXX\\AppData\\Local\\Temp\\arduino_build_358945: El sistema no puede encontrar el archivo especificado. \r\nError compilando para la tarjeta NodeMCU 1.0 (ESP-12E Module).<\/pre>\n<p style=\"text-align: justify;\">Lo m\u00e1s probable es que est\u00e9 utilizando Firmware Beta 2.5.0 para el ESP8266. Esta actualizaci\u00f3n rompe la compatibilidad con ArduinoHttpClient(que es utilizada por Adafruit IO, actualmente no es compatible con este firmware beta).<\/p>\n<p style=\"text-align: justify;\">Para que funcione, bajaremos el firmware del ESP8266 a una versi\u00f3n estable, vaya a:\u00a0<strong>Herramientas\/ Tarjetas\/ Administrador de tarjetas<\/strong>\u00a0y seleccione la versi\u00f3n 2.4.2 de ESP8266 by ESP8266 Community, esto es as\u00ed, en estos momentos.<\/p>\n<p>Esto es todo, por este simple tutorial.<\/p>\n<h5>REFERENCIAS.<\/h5>\n<ul>\n<li>http:\/\/pdacontroles.com\/introduccion-libreria-wifimanager\/<\/li>\n<li>https:\/\/www.youtube.com\/watch?v=8_R7nzvuVZI<\/li>\n<li>https:\/\/texolab.net\/2018\/10\/24\/wifi-manager-para-esp8266\/<\/li>\n<li>https:\/\/programarfacil.com\/esp8266\/wifimanager-configura-wifi-esp8266\/<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>PARA LA FAMILIA ESP. INTRODUCCI\u00d3N. En el mundo del IoT que utiliza los populares ESP8266 disponen de WiFi y debe saber que, para conectar una placa como ESP8266 o NodeMCU a una red WiFi, tenemos que empezar por configurar en el programa o c\u00f3digo, un cierto nivel de seguridad los par\u00e1metros de red\u00a0SSID\u00a0y el\u00a0Password\u00a0de la [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":4697,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[289,336,15],"tags":[337,338],"class_list":["post-4673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp8266","category-introduccion-a-la-libreria-wifimanager","category-microcontroladores","tag-nodemcu-esp-12","tag-wifimanager-esp8266"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/4673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/comments?post=4673"}],"version-history":[{"count":21,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/4673\/revisions"}],"predecessor-version":[{"id":4735,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/4673\/revisions\/4735"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/4697"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=4673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=4673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=4673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}