{"id":3244,"date":"2018-12-16T08:20:07","date_gmt":"2018-12-16T13:20:07","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=3244"},"modified":"2022-06-28T10:59:56","modified_gmt":"2022-06-28T15:59:56","slug":"wifi-archivo-ino-para-esp8266-esp32","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/wifi-archivo-ino-para-esp8266-esp32\/","title":{"rendered":"2.2 WiFi - Archivo.ino para ESP8266\/ESP32"},"content":{"rendered":"<p><em><strong>Referencia<\/strong><\/em>: ESP8266WiFi library. <a href=\"https:\/\/esp8266-arduino-spanish.readthedocs.io\/es\/latest\/esp8266wifi\/readme.html\">https:\/\/esp8266-arduino-spanish.readthedocs.io\/es\/latest\/esp8266wifi\/readme.html<\/a><\/p>\n<p>Las instrucciones se presentan paso a paso, en caso que realice por primera vez \u00e9ste proceso, en los pr\u00f3ximos ejemplos bloques y pasos b\u00e1sicos repetidos solo se mencionar\u00e1n y\/o se har\u00e1 referencia a \u00e9ste ejemplo.<\/p>\n<hr \/>\n<h2>1. Bloque de inicio<\/h2>\n<h3>1.1 Librer\u00edas<\/h3>\n<p>Las librerias contienen las instrucciones para los procesos como el de conexi\u00f3n, manejo de datos como direcciones IP,\u00a0MAC,\u00a0 o niveles de se\u00f1al RSSI, valores de estado de conexi\u00f3n, etc.<\/p>\n<p>Las librer\u00edas podr\u00edan variar entre modelos de placas de desarrollo principalmente por tipo de m\u00f3dulo o microcontrolador, sin embargo las instrucciones son las mismas. La siguiente tabla muestra la librer\u00eda usada en cada caso:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Modelo<\/th>\n<th>libreria<\/th>\n<\/tr>\n<tr>\n<td>ESP8266<\/td>\n<td>&lt;<span style=\"color: #d35400\">ESP8266WiFi<\/span><span style=\"color: #434f54\">.<\/span>h<span style=\"color: #434f54\">&gt;<\/span><\/td>\n<\/tr>\n<tr>\n<td>ESP32<\/td>\n<td>&lt;<span style=\"color: #d35400\">WiFi<\/span><span style=\"color: #434f54\">.<\/span>h&gt;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Para el resto de las instrucciones no hay diferencias, las instrucciones son\u00a0 las mismas manteniendo el uso de pines de la placa.<\/p>\n<p>Esta selecci\u00f3n de librerias se puede realizar con inclusi\u00f3n de condigo condicionado por la placa mediante la instrucci\u00f3n <code>#ifdef #elif #endif<\/code>. De esta manera se puede realizar un solo c\u00f3digo general, al compilar en arduino, dependiendo de la placa que se tiene conectada se selecciona la librer\u00eda necesaria.<\/p>\n<pre><span style=\"color: #434f54\">\/\/ detectar placa al compilar<\/span>\r\n<span style=\"color: #5e6d03\"># ifdef<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP8266<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><span style=\"color: #000000\">ESP8266WiFi<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\r\n<span style=\"color: #5e6d03\"># elif<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP32<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\r\n<span style=\"color: #5e6d03\"># endif<\/span>\r\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> <span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\r\n<\/pre>\n<p><strong><em>Referencia<\/em><\/strong>: http:\/\/www.cplusplus.com\/doc\/tutorial\/preprocessor\/<\/p>\n<h3>1.2 Par\u00e1metros y cliente de la red<\/h3>\n<p>Como en toda conexi\u00f3n Wifi se require de: Un identificador de router '<strong>ssid<\/strong>' y Una contrase\u00f1a '<strong>password<\/strong>'. En las instrucciones del ejemplo son valores de la red que se deben actualizar para poder conectarse en cada caso particular.<\/p>\n<pre><span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">ssid<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"miRouter\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">password<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"miRouterClave\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<\/pre>\n<p>Con los par\u00e1metros anteriores, se inicializa el proceso conectarse a la red.<\/p>\n<h3>1.3 Pines a usar - Estado de conexi\u00f3n por parpadeo de LED<\/h3>\n<p>Para una versi\u00f3n simplificada de prueba de estado de conexi\u00f3n,se usan el parpadeo del LED incorporado en la placa de desarrollo, dado por el pin del modelo de placa usado (Revisar la hoja de datos)-<\/p>\n<pre><span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">=<\/span><span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">;<\/span><\/pre>\n<p>En el bloque de inicio tambi\u00e9n se establecen valores para otros par\u00e1metros. Las placas de desarrollo facilitan esta opci\u00f3n al encontrarse conectadas por el cable USB, por lo que se a\u00f1ade la opci\u00f3n de activar mensajes en cada bloque con la bandera <code>serial_msg = true<\/code>.<\/p>\n<p>En el caso de que ya no se requieran, se destartan las instrucciones de mensajes usando el valor bandera <code>serial_msg = false<\/code>. Tambi\u00e9n se usa esta opci\u00f3n con los m\u00f3dulos compactos como el ESP01, que no posible usar mensajes por USB por lo limitado de pines disponibles.<\/p>\n<hr \/>\n<h2>2. Bloque de configuraci\u00f3n - setup()<\/h2>\n<p>El dispositivo se inicializa con el bloque <code>setup()<\/code>, primero indicando el modo uso como salida de pin <code>LED_pin<\/code>.<\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #5e6d03\">setup<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msg<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">115200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/115200,74880<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ LED interno, Enciende en LOW<\/span>\r\n \u00a0<span style=\"color: #d35400\">pinMode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">OUTPUT<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI<\/span>\r\n \u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<p>Luego sigue las instrucciones del procedimiento <code>inicia_wifi()<\/code>, dedicada a establecer la conexi\u00f3n con el router. En teor\u00eda se deber\u00eda ejecutar solo una vez, sin embargo podr\u00eda requerir conexi\u00f3n, por ejemplo ante una falla de energ\u00eda el\u00e9ctrica en el sector.<\/p>\n<hr \/>\n<h2>3. Bucle o lazo de operaci\u00f3n - loop()<\/h2>\n<p>La operaci\u00f3n del dispositivo se realiza siguiendo las instrucciones del bucle 'loop()'<\/p>\n<p>El primer paso es verificar si se ha logrado una conexi\u00f3n, de no ser el caso, se repite el procedimiento<code>inicia_wifi()<\/code>en el que se realizan varios intentos previo a retomar las instrucciones para no dejar sin atender el resto de la operaci\u00f3n del dispositivo, por ejemplo la lectura peri\u00f3dica de sensores.<\/p>\n<p>Luego se tiene el bloque de parpadeo de LED como \u00fanica operaci\u00f3n del dispositivo.<\/p>\n<p>Para la versi\u00f3n de placa con ESP8266, se usa la instrucci\u00f3n <span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> que cede tiempo de procesamiento al microcontrolador para procesar los detalles de la parte inal\u00e1mbrica, pues el ESP8266 se tiene un solo n\u00facleo y los procesos se realizan en tiempo compartido.<\/p>\n<p>En el caso de ESP32 que tiene dos n\u00facleos, un n\u00facleo se dedica a la parte del manejo inal\u00e1mbrico, por lo que no es necesaria la instrucci\u00f3n anterior.<\/p>\n<h2>4. Procedimientos y Funciones<\/h2>\n<p>Los pasos para conexi\u00f3n al Router y reconexi\u00f3n se pueden requerir m\u00e1s de una vez, por lo que se separan en un procedimiento denominado <code>inicia_wifi(){ }<\/code>.<\/p>\n<p>En esta secci\u00f3n se define el modo como <strong>estaci\u00f3n<\/strong>\u00a0para la conexi\u00f3n del dispositivo y se procede a la llamada del proceso inicial de conexi\u00f3n de la librer\u00eda WiFi.<\/p>\n<pre>  <b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">mode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">WIFI_STA<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n  <b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ssid<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">password<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<\/pre>\n<p>Se requiere de un intervalo de tiempo determinado por la variable <strong>espera<\/strong> para obtener el resultado del proceso y establecido en al menos 10.<\/p>\n<p>En \u00e9ste proceso el parpadeo del LED se definide en la tabla para \"NO conectado\" en la pagina anterior como 300 ms encendido\u00a0 y 200 ms apagado.<\/p>\n<p>Cuando se establece la conexi\u00f3n y se dispone de la bandera <code>serial_msg = true<\/code>, se puede mostrar los valores para algunos par\u00e1metros en la red como estado, MAC, IP, RSSI.<\/p>\n<pre><span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" MAC: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">macAddress<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" IP: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">localIP<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" RSSI: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">RSSI<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" Canal: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">channel<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n      <span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>5. Instrucciones en Arduino IDE<\/h3>\n<p>Se compone de dos secciones separadas en pesta\u00f1as: la secci\u00f3n principal y la de procedimiento de <code>inicia_wifi()<\/code>.<\/p>\n<h3>5.1 Secci\u00f3n principal<\/h3>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3238 size-full aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01.png\" alt=\"\" width=\"485\" height=\"128\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01.png 485w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01-300x79.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/a><\/p>\n<pre><span style=\"color: #95a5a6\">\/* WIFI Blink Ejemplo de conexi\u00f3n a WiFi con ESP8266\/ESP32 \u00a0<\/span>\r\n<span style=\"color: #95a5a6\"> * edelros@espol.edu.ec 2019<\/span>\r\n<span style=\"color: #95a5a6\">*\/<\/span>\r\n<span style=\"color: #434f54\">\/\/ detectar placa al compilar<\/span>\r\n<span style=\"color: #5e6d03\"># ifdef<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP8266<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><span style=\"color: #000000\">ESP8266WiFi<\/span><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\r\n<span style=\"color: #5e6d03\"># elif<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP32<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">#include<\/span> <span style=\"color: #434f54\">&lt;<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #000000\">h<\/span><span style=\"color: #434f54\">&gt;<\/span>\r\n<span style=\"color: #5e6d03\"># endif<\/span>\r\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> <span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">ssid<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"miRouter\"<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #00979c\">char<\/span><span style=\"color: #434f54\">*<\/span> <span style=\"color: #000000\">password<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #005c5f\">\"miRouterClave\"<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ LED interno, ESP01-pin=1, ESP07-pin=2<\/span>\r\n<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">LED_pin<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">2<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #434f54\">\/\/ Mensajes por Puerto Serial. ESP01 usar false<\/span>\r\n<span style=\"color: #00979c\">volatile<\/span> <span style=\"color: #00979c\">boolean<\/span> <span style=\"color: #000000\">serial_msg<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #00979c\">true<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #5e6d03\">setup<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msg<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">115200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/115200,74880<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ LED interno, Enciende en LOW<\/span>\r\n \u00a0<span style=\"color: #d35400\">pinMode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">OUTPUT<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI<\/span>\r\n \u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n\r\n<span style=\"color: #00979c\">void<\/span> <span style=\"color: #5e6d03\">loop<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #000000\">{<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/ Conectado, LED Parpadea, enciende en LOW<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">1000<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ un segundo<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#ifdef<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP8266<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#endif<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">1000<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">300<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#ifdef<\/span> <span style=\"color: #000000\">defined<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ESP8266<\/span><span style=\"color: #000000\">)<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400\">yield<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#endif<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ WiFi reconectar si est\u00e1 inactivo<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<span style=\"color: #000000\">}<\/span>\r\n\r\n<\/pre>\n<h3>5.2 Otras pesta\u00f1as o procedimientos<\/h3>\n<p>Proceso en otra pesta\u00f1a: <code>wifi_inicia<\/code> a continuaci\u00f3n de las instrucciones anteriores.<\/p>\n<p><strong><em>Nota<\/em><\/strong>: Se ha usado el nombre de pesta\u00f1a con las palabras intercambiadas para distinguir entre pesta\u00f1a y procedimiento.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3236 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02.png\" alt=\"\" width=\"483\" height=\"127\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02.png 483w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02-300x79.png 300w\" sizes=\"auto, (max-width: 483px) 100vw, 483px\" \/><\/a><\/p>\n<pre><span style=\"color: #00979c\">void<\/span> <span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">espera<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">10<\/span><span style=\"color: #000000\">;<\/span> <span style=\"color: #434f54\">\/\/ &gt;=10 para conectar<\/span>\r\n \u00a0<span style=\"color: #00979c\">int<\/span> <span style=\"color: #000000\">cuenta<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">0<\/span><span style=\"color: #000000\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54\">\/\/ mensajes por serial activado<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msg<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" WIFI Conectando a \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ssid<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n\r\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">mode<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #00979c\">WIFI_STA<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">begin<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">ssid<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #000000\">password<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\r\n \u00a0<span style=\"color: #5e6d03\">while<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">!=<\/span><span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #434f54\">&amp;&amp;<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">cuenta<\/span><span style=\"color: #434f54\">&lt;<\/span><span style=\"color: #000000\">espera<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span> \u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">cuenta<\/span> <span style=\"color: #434f54\">=<\/span> <span style=\"color: #000000\">cuenta<\/span><span style=\"color: #434f54\">+<\/span><span style=\"color: #000000\">1<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ Parpadeo de Monitor enciende en LOW<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">LOW<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">300<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">digitalWrite<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">LED_pin<\/span><span style=\"color: #434f54\">,<\/span> <span style=\"color: #00979c\">HIGH<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #d35400\">delay<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">200<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msg<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\".\"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0\r\n \u00a0<span style=\"color: #434f54\">\/\/activado mensajes por serial<\/span>\r\n \u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">serial_msg<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Fin de \"...\"<\/span>\r\n \u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">==<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" Estado: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" MAC: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">macAddress<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" IP: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">localIP<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">print<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #005c5f\">\" RSSI: \"<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">RSSI<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">if<\/span> <span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">status<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span> <span style=\"color: #434f54\">!=<\/span> <span style=\"color: #000000\">WL_CONNECTED<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">WiFi<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">printDiag<\/span><span style=\"color: #000000\">(<\/span><b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<b><span style=\"color: #d35400\">Serial<\/span><\/b><span style=\"color: #434f54\">.<\/span><span style=\"color: #d35400\">println<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\r\n \u00a0<span style=\"color: #000000\">}<\/span>\r\n<\/pre>\n<h3>6. Compilar y subir las instrucciones<\/h3>\n<p>Una vez terminado el archivo de instrucciones, se graba en un directorio de trabajo, por ejemplo <code>c:\\IoT_Taller<\/code>, con un nombre simple, sin espacios ni tildes, la extensi\u00f3n del archivo.ino se a\u00f1ade de forma autom\u00e1tica.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3540 size-medium alignright\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08-300x248.png\" alt=\"\" width=\"300\" height=\"248\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08-300x248.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08.png 654w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Antes de realizar el proceso de envio del archivo compilado a la placa, verifique que se encuentra seleccionada la placa de desarrollo que est\u00e1 usando: ESP8266 o ESP32 en el men\u00fa de Herramientas\/Placa.<\/p>\n<p>Verifique que se ha seleccionado el '<strong>Puerto<\/strong> COM' donde se encuentra conectada la placa usando el men\u00fa de herramientas, puerto asignado, semejante a lo mostrado en la figura.<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3538 alignright\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia06.png\" alt=\"\" width=\"292\" height=\"182\" \/><\/a>Para pasar las instrucciones a la placa de desarrollo se usa el bot\u00f3n \"subir\", en el proceso primero se verifica que no existan errores o inconsistencias de sintaxis. De estar las instrucciones en orden, se transfieren al dispositivo.<\/p>\n<p>En el caso de la placa <strong>ESP32<\/strong> se requiere que se presione tambi\u00e9n el bot\u00f3n <strong>BOOT<\/strong> de la placa de desarrollo. En la versi\u00f3n ESP8266 este paso no es necesario.<\/p>\n<p>En la parte inferior de la ventana se muestran mensajes del proceso de comunicaci\u00f3n entre el computador y la placa de desarrollo,<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3539\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07.png\" alt=\"\" width=\"1305\" height=\"623\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07.png 1305w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07-300x143.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07-768x367.png 768w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07-1024x489.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>Al terminar se reinicia por si misma la placa de desarrollo y se muestra el resultado de las instrucciones.<\/p>\n<h2>7. Estados de conexi\u00f3n con mensajes a puerto serial<\/h2>\n<p>Durante el desarrollo es favorable disponer de mensajes en el computador que muestren los estados o valores de las variables para una revisi\u00f3n paso a paso de lo que sucede en el dispositivo.<\/p>\n<p>Las placas de desarrollo facilitan esta opci\u00f3n al encontrarse conectadas por el cable USB, por lo que se a\u00f1ade la opci\u00f3n de activar mensajes en cada bloque con la bandera <code>serial_msg = true<\/code><\/p>\n<p>Al inicializar el dispositivo se indica la velocidad de comunicaci\u00f3n entre el dispositivo y el computador por el puerto USB mediante la instrucci\u00f3n:<\/p>\n<pre><b>Serial<\/b>.begin(74880)\r\n<\/pre>\n<p>en adelante lo que se usa es mostrar un mensaje o valor de variable con las instrucciones:<\/p>\n<pre>    <b>Serial<\/b>.print(\" WIFI Conectando a \");\r\n    <b>Serial<\/b>.println(ssid);\r\n<\/pre>\n<p>obteniendo los resultados en la ventana del computador obtenida en el men\u00fa \"Herramientas\/Monitor Serie\"<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3536 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04.png\" alt=\"\" width=\"491\" height=\"199\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04.png 491w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04-300x122.png 300w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><\/a><\/p>\n<h3>3.2 Resultado de mensajes recibidos en \"Monitor Serie\" con Arduino IDE<\/h3>\n<p>Se obtiene unos resultados semejantes a los mostrados en la ventana<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3537 size-medium aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05-300x249.png\" alt=\"\" width=\"300\" height=\"249\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05-300x249.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05.png 679w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<pre>..........\r\nMode: STA\r\nPHY mode: N\r\nChannel: 6\r\nAP id: 0\r\nStatus: 1\r\nAuto connect: 1\r\nSSID (15): miRouter\r\nPassphrase (10): miRouterClave\r\nBSSID set: 0\r\n\r\n WIFI Conectando a miRouter\r\n.........\r\n Estado: 3\r\n MAC: 2C:3A:E8:0A:98:66\r\n IP: 192.168.10.11\r\n RSSI: -74\r\n<\/pre>\n<p>Hasta aqui el proceso de las instrucciones para conexi\u00f3n, detallada paso a paso la estructura de programaci\u00f3n, librerias y par\u00e1metros usados.<\/p>\n<p>Las siguientes secciones amplian la funcionalidad del dispositivo conectandose con los otros componentes del esquema de IOT, a\u00f1adiendo manejar mensajes hacia un broker y la gesti\u00f3n de los estados.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Referencia: ESP8266WiFi library. https:\/\/esp8266-arduino-spanish.readthedocs.io\/es\/latest\/esp8266wifi\/readme.html Las instrucciones se presentan paso a paso, en caso que realice por primera vez \u00e9ste proceso, en los pr\u00f3ximos ejemplos bloques y pasos b\u00e1sicos repetidos solo se mencionar\u00e1n y\/o se har\u00e1 referencia a \u00e9ste ejemplo. 1. Bloque de inicio 1.1 Librer\u00edas Las librerias contienen las instrucciones para los procesos como el &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/wifi-archivo-ino-para-esp8266-esp32\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"2.2 WiFi - Archivo.ino para ESP8266\/ESP32\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1465114],"tags":[],"class_list":["post-3244","post","type-post","status-publish","format-standard","hentry","category-2-iot-wifi-conectando-a-router"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=3244"}],"version-history":[{"count":24,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3244\/revisions"}],"predecessor-version":[{"id":3990,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3244\/revisions\/3990"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=3244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=3244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=3244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}