{"id":3244,"date":"2018-12-14T08:20:07","date_gmt":"2018-12-14T13:20:07","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/girni\/?p=3244"},"modified":"2026-07-23T11:37:16","modified_gmt":"2026-07-23T16:37:16","slug":"iot-wifi-archivo-ino","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/iot-wifi-archivo-ino\/","title":{"rendered":"2. IoT WiFi - Archivo.ino"},"content":{"rendered":"\n<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\n\n\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\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Bloque de inicio<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Librer\u00edas<\/h3>\n\n\n\n<p>Las librer\u00edas 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\n\n\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\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Modelo<\/th><th>libreria<\/th><\/tr><tr><td>ESP8266<\/td><td>&lt;<span style=\"color: #d35400\">ESP8266WiFi<\/span><span style=\"color: #434f54\">.<\/span>h<span style=\"color: #434f54\">&gt;<\/span><\/td><\/tr><tr><td>ESP32<\/td><td>&lt;<span style=\"color: #d35400\">WiFi<\/span><span style=\"color: #434f54\">.<\/span>h&gt;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Para el resto de las instrucciones no hay diferencias, las instrucciones son&nbsp; las mismas manteniendo el uso de pines de la placa.<\/p>\n\n\n\n<p>Esta selecci\u00f3n de librer\u00edas 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\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #434f54\">\/\/ detectar placa al compilar<\/span>\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>\n &nbsp;<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>\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>\n &nbsp;<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>\n<span style=\"color: #5e6d03\"># endif<\/span>\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> <span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\n<\/code><\/pre>\n\n\n\n<p><strong><em>Referencia<\/em><\/strong>: http:\/\/www.cplusplus.com\/doc\/tutorial\/preprocessor\/<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Par\u00e1metros y cliente de la red<\/h3>\n\n\n\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\n\n\n<pre class=\"wp-block-code\"><code><span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\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>\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><\/code><\/pre>\n\n\n\n<p>Con los par\u00e1metros anteriores, se inicializa el proceso conectarse a la red.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.3 Pines a usar - Estado de conexi\u00f3n por parpadeo de LED<\/h3>\n\n\n\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\n\n\n<pre class=\"wp-block-code\"><code><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><\/code><\/pre>\n\n\n\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\n\n\n<p>En el caso de que ya no se requieran, se descartan 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\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Bloque de configuraci\u00f3n - setup()<\/h2>\n\n\n\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\n\n\n<pre class=\"wp-block-code\"><code><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>\n &nbsp;<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>\n &nbsp;&nbsp;&nbsp;<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>\n &nbsp;<span style=\"color: #000000\">}<\/span>\n &nbsp;\n &nbsp;<span style=\"color: #434f54\">\/\/ LED interno, Enciende en LOW<\/span>\n &nbsp;<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>\n\n &nbsp;<span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI<\/span>\n &nbsp;<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #000000\">}<\/span>\n<\/code><\/pre>\n\n\n\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\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Bucle o lazo de operaci\u00f3n - loop()<\/h2>\n\n\n\n<p>La operaci\u00f3n del dispositivo se realiza siguiendo las instrucciones del bucle 'loop()'<\/p>\n\n\n\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\n\n\n<p>Luego se tiene el bloque de parpadeo de LED como \u00fanica operaci\u00f3n del dispositivo.<\/p>\n\n\n\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\n\n\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\n\n\n<h2 class=\"wp-block-heading\">4. Procedimientos y Funciones<\/h2>\n\n\n\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\n\n\n<p>En esta secci\u00f3n se define el modo como <strong>estaci\u00f3n<\/strong>&nbsp;para la conexi\u00f3n del dispositivo y se procede a la llamada del proceso inicial de conexi\u00f3n de la librer\u00eda WiFi.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  <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>\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><\/code><\/pre>\n\n\n\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\n\n\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&nbsp; y 200 ms apagado.<\/p>\n\n\n\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\n\n\n<pre class=\"wp-block-code\"><code><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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\n      <span style=\"color: #000000\">}<\/span><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Instrucciones en Arduino IDE<\/h3>\n\n\n\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\n\n\n<h3 class=\"wp-block-heading\">5.1 Secci\u00f3n principal<\/h3>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"128\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia01.png\" alt=\"\" class=\"wp-image-3238\" 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><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code><span style=\"color: #95a5a6\">\/* WIFI Blink Ejemplo de conexi\u00f3n a WiFi con ESP8266\/ESP32 \u00a0<\/span>\n<span style=\"color: #95a5a6\"> * edelros@espol.edu.ec 2019<\/span>\n<span style=\"color: #95a5a6\">*\/<\/span>\n<span style=\"color: #434f54\">\/\/ detectar placa al compilar<\/span>\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>\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>\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>\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>\n<span style=\"color: #5e6d03\"># endif<\/span>\n<b><span style=\"color: #d35400\">WiFiClient<\/span><\/b> <span style=\"color: #000000\">wificlient<\/span><span style=\"color: #000000\">;<\/span>\n\n<span style=\"color: #434f54\">\/\/ WIFI: conexi\u00f3n a Router<\/span>\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>\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>\n\n<span style=\"color: #434f54\">\/\/ LED interno, ESP01-pin=1, ESP07-pin=2<\/span>\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>\n\n<span style=\"color: #434f54\">\/\/ Mensajes por Puerto Serial. ESP01 usar false<\/span>\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>\n\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>\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>\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>\n \u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\n \u00a0<span style=\"color: #434f54\">\/\/ LED interno, Enciende en LOW<\/span>\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>\n\n \u00a0<span style=\"color: #434f54\">\/\/ conexi\u00f3n WIFI<\/span>\n \u00a0<span style=\"color: #000000\">inicia_wifi<\/span><span style=\"color: #000000\">(<\/span><span style=\"color: #000000\">)<\/span><span style=\"color: #000000\">;<\/span>\n<span style=\"color: #000000\">}<\/span>\n\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>\n \u00a0\n \u00a0<span style=\"color: #434f54\">\/\/ Conectado, LED Parpadea, enciende en LOW<\/span>\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>\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>\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>\n \u00a0\u00a0\u00a0\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>\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>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#endif<\/span>\n \u00a0\u00a0\u00a0\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>\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>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0\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>\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>\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>\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>\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>\n \u00a0\u00a0\u00a0\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>\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>\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03\">#endif<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n\n \u00a0<span style=\"color: #434f54\">\/\/ WiFi reconectar si est\u00e1 inactivo<\/span>\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>\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>\n \u00a0<span style=\"color: #000000\">}<\/span>\n<span style=\"color: #000000\">}<\/span><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5.2 Otras pesta\u00f1as o procedimientos<\/h3>\n\n\n\n<p>Proceso en otra pesta\u00f1a: <code>wifi_inicia<\/code> a continuaci\u00f3n de las instrucciones anteriores.<\/p>\n\n\n\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\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02.png\"><img loading=\"lazy\" decoding=\"async\" width=\"483\" height=\"127\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/08\/wifi_inicia02.png\" alt=\"\" class=\"wp-image-3236\" 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><\/figure>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code><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>\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>\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>\n\n \u00a0<span style=\"color: #434f54\">\/\/ mensajes por serial activado<\/span>\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>\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>\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>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n\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>\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>\n \u00a0\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\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>\n \u00a0\u00a0\u00a0\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/ Parpadeo de Monitor enciende en LOW<\/span>\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>\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>\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>\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>\n \u00a0\u00a0\u00a0\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>\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>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0\n \u00a0<span style=\"color: #434f54\">\/\/activado mensajes por serial<\/span>\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>\n \u00a0\u00a0\u00a0<span style=\"color: #434f54\">\/\/Fin de \"...\"<\/span>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\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>\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>\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>\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0\u00a0\u00a0<span style=\"color: #000000\">}<\/span>\n \u00a0<span style=\"color: #000000\">}<\/span><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. Compilar y subir las instrucciones<\/h3>\n\n\n\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\n\n\n<figure class=\"wp-block-image alignright\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"248\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia08-300x248.png\" alt=\"\" class=\"wp-image-3540\" 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><\/figure>\n\n\n\n<p>Antes de realizar el proceso de enviar el 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\n\n\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\n\n\n<figure class=\"wp-block-image alignright\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia06.png\"><img loading=\"lazy\" decoding=\"async\" width=\"292\" height=\"182\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia06.png\" alt=\"\" class=\"wp-image-3538\" \/><\/a><\/figure>\n\n\n\n<p>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\n\n\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\n\n\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\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1305\" height=\"623\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia07.png\" alt=\"\" class=\"wp-image-3539\" 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: 1305px) 100vw, 1305px\" \/><\/a><\/figure>\n\n\n\n<p>Al terminar se reinicia por si misma la placa de desarrollo y se muestra el resultado de las instrucciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. Estados de conexi\u00f3n con mensajes a puerto serial<\/h2>\n\n\n\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\n\n\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\n\n\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\n\n\n<pre class=\"wp-block-code\"><code><b>Serial<\/b>.begin(74880)<\/code><\/pre>\n\n\n\n<p>en adelante lo que se usa es mostrar un mensaje o valor de variable con las instrucciones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    <b>Serial<\/b>.print(\" WIFI Conectando a \");\n    <b>Serial<\/b>.println(ssid);<\/code><\/pre>\n\n\n\n<p>obteniendo los resultados en la ventana del computador obtenida en el men\u00fa \"Herramientas\/Monitor Serie\"<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"491\" height=\"199\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia04.png\" alt=\"\" class=\"wp-image-3536\" 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><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Resultado de mensajes recibidos en \"Monitor Serie\" con Arduino IDE<\/h3>\n\n\n\n<p>Se obtiene unos resultados semejantes a los mostrados en la ventana<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05.png\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"249\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2021\/03\/wifi_inicia05-300x249.png\" alt=\"\" class=\"wp-image-3537\" 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><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>..........\nMode: STA\nPHY mode: N\nChannel: 6\nAP id: 0\nStatus: 1\nAuto connect: 1\nSSID (15): miRouter\nPassphrase (10): miRouterClave\nBSSID set: 0\n\n WIFI Conectando a miRouter\n.........\n Estado: 3\n MAC: 2C:3A:E8:0A:98:66\n IP: 192.168.10.11\n RSSI: -74<\/code><\/pre>\n\n\n\n<p>Hasta aqu\u00ed el proceso de las instrucciones para conexi\u00f3n, detallada paso a paso la estructura de programaci\u00f3n, librer\u00edas y par\u00e1metros usados.<\/p>\n\n\n\n<p>Las siguientes secciones ampl\u00edan la funcionalidad del dispositivo conect\u00e1ndose 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 librer\u00edas contienen las instrucciones para los procesos como el [&hellip;]<\/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-iot-conectividad"],"_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":28,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3244\/revisions"}],"predecessor-version":[{"id":4376,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/3244\/revisions\/4376"}],"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}]}}