{"id":3606,"date":"2016-08-30T10:15:39","date_gmt":"2016-08-30T08:15:39","guid":{"rendered":"http:\/\/www.diarioelectronicohoy.com\/blog\/?p=3606"},"modified":"2019-06-13T19:19:21","modified_gmt":"2019-06-13T17:19:21","slug":"el-esp8266-como-arduino","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino","title":{"rendered":"EL ESP8266 como Arduino."},"content":{"rendered":"<h5 style=\"text-align: right;\">CREADO POR V. GARC\u00cdA. 2016-08-30.<\/h5>\n<h4>VISI\u00d3N DE CONJUNTO.<\/h4>\n<p style=\"text-align: justify;\">El dispositivo ESP8266 es un chip altamente integrado dise\u00f1ado para las necesidades de un nuevo mundo conectado. Ofrece una soluci\u00f3n completa y autosuficiente en las redes Wi-Fi, lo que le autoriza para ser anfitri\u00f3n de la aplicaci\u00f3n o descargar todas las funciones de red Wi-Fi desde otras aplicaciones de procesador.<\/p>\n<p style=\"text-align: justify;\">ESP8266 tiene potentes capacidades de procesamiento y almacenamiento en placa que, le permiten integrarse con los sensores y dispositivos espec\u00edficos de la aplicaci\u00f3n a trav\u00e9s de sus GPIO (General Purpose Input\/Output, Entrada\/Salida de Prop\u00f3sito General) con un desarrollo m\u00ednimo por adelantado y la carga m\u00ednima durante el tiempo de ejecuci\u00f3n. Su alto grado de integraci\u00f3n en el chip permite la circuiter\u00eda externa m\u00ednima, y toda la soluci\u00f3n, incluyendo el m\u00f3dulo de front-end, est\u00e1 dise\u00f1ado para ocupar el m\u00ednimo \u00e1rea de PCB.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/esp8266_esp01-3\" rel=\"attachment wp-att-3608\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3608\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/esp8266_esp01.gif\" alt=\"esp8266_esp01\" width=\"251\" height=\"208\" \/><\/a>Fig. 1<\/p>\n<p style=\"text-align: justify;\">Hemos visto como manejar el <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-modulo-esp8266\" target=\"_blank\" rel=\"noopener noreferrer\">ESP8266-01<\/a> con la ayuda de un Arduino. Sabemos que el ESP8266, b\u00e1sicamente es un microcontrolador con el modulo WiFi. Hay muchos art\u00edculos y ejemplos en la red que lo utilizan con un Arduino y la mayor\u00eda de ellos est\u00e1n utilizando la ESP8266 como un m\u00f3dulo WiFi conectado a un Arduino est\u00e1ndar.<\/p>\n<p style=\"text-align: justify;\">Hay muchas versiones de ESP8266, algunos de los m\u00e1s baratos son el ESP-01, el ESP-03 y el ESP-12. Una gran mayor\u00eda usan las comunicaciones es serie con el ESP8266. De forma que la mayor\u00eda de los equipos utilizan los convertidores serie USB, al igual que los chips FTDI.<\/p>\n<p style=\"text-align: justify;\">El problema del dispositivo ESP8266 es que requiere 3.3Vdc en lugar del m\u00e1s com\u00fan 5 VDC. Adem\u00e1s, tambi\u00e9n puede consumir hasta 250mA de corriente. Por lo que algunos m\u00f3dulos ESP8266 como veremos, se han construido con reguladores 3.3Vdc y son compatibles con USB 5 VCC y los dispositivos serie. Realmente una alimentaci\u00f3n de 3,3V asegura un buen funcionamiento.<\/p>\n<p style=\"text-align: justify;\">Con esta perspectiva, despu\u00e9s de leer mucho sobre este peque\u00f1o dispositivo y experimentar con el m\u00f3dulo ESP8266 y un Arduino vi que, el ESP8266 es un microcontrolador similar a los ATMEGA328 utilizados en la norma Arduino. Por lo que pens\u00e9, utilizar el ESP8266 como un Arduino sin depender de un Arduino est\u00e1ndar para su uso. Ahora toca programar directamente sobre el m\u00f3dulo wifi ESP8266.<\/p>\n<p style=\"text-align: justify;\">Actualmente y cada d\u00eda m\u00e1s, tenemos una gran cantidad de informaci\u00f3n sobre c\u00f3mo llevar a cabo esto, al principio me pareci\u00f3 complicado, dif\u00edcil de entender, por informaci\u00f3n a veces es enga\u00f1osa, as\u00ed que, espero simplificar y clarificar el proceso.<\/p>\n<p style=\"text-align: justify;\">Actualmente y cada d\u00eda m\u00e1s, tenemos una gran cantidad de informaci\u00f3n sobre c\u00f3mo llevar a cabo esto, al principio me pareci\u00f3 complicado, dif\u00edcil de entender, por la informaci\u00f3n a veces es enga\u00f1osa, as\u00ed que, espero simplificar y clarificar el proceso.<\/p>\n<p style=\"text-align: justify;\">Ya hemos comentado el problema que presenta este ESP8266-01 respecto de la tensi\u00f3n y corriente de alimentaci\u00f3n, adem\u00e1s presenta un anclaje no apto para los habituales protoboard ya que no es posible conectarlo directamente, el problema tiene f\u00e1cil soluci\u00f3n utilizando cables macho-hembra o con una de las dos opciones que pueden verse en la imagen que sigue.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/esp8266util3\" rel=\"attachment wp-att-3609\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3609 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/esp8266util3-300x260.jpg\" alt=\"esp8266util3\" width=\"263\" height=\"229\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/esp8266util3-300x260.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/esp8266util3.jpg 304w\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" \/><\/a> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/esp8266util8\" rel=\"attachment wp-att-3610\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3610 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/esp8266util8.jpg\" alt=\"esp8266util8\" width=\"244\" height=\"227\" \/><\/a><br \/>\nFig. 2-3<\/p>\n<p style=\"text-align: justify;\">ESP8266 tiene potentes capacidades de procesamiento y almacenamiento en la misma placa que, le permiten integrarse con sensores y dispositivos espec\u00edficos para su\u00a0aplicaci\u00f3n a trav\u00e9s de sus GPIO\u2019s con un desarrollo m\u00ednimo avanzado y la carga m\u00ednima durante el tiempo de ejecuci\u00f3n. Su alto grado de integraci\u00f3n en el chip permite la m\u00ednima circuiter\u00eda externa, y toda la soluci\u00f3n, incluyendo el m\u00f3dulo de front-end, est\u00e1 dise\u00f1ado para ocupar la m\u00ednima \u00e1rea de PCB.<\/p>\n<p style=\"text-align: justify;\">Eso si, dependiendo del modelo de ESP8266 que tenga, dispondr\u00e1 de m\u00e1s o menos pines como PWM y m\u00e1s cosas como I2C y SPI, pero para el t\u00edpico ESP8266-01, solo dispone dos pines GPIO0 y GPIO2, sin embargo hay otros modelos con todos los pines a nuestro alcance.<\/p>\n<p style=\"text-align: justify;\">Seguro que se est\u00e1 preguntando c\u00f3mo podemos utilizar el ESP8266 sin el habitual Arduino. Primero tenemos que instalar un pluggin ESP8266 para nuestro IDE Arduino. En este lugar de GitHub:<br \/>\n<a href=\"https:\/\/github.com\/esp8266\/Arduino\/releases\">https:\/\/github.com\/esp8266\/Arduino\/releases<\/a> se puede descargar el pluggin.<\/p>\n<p style=\"text-align: justify;\">Como ya vimos en el art\u00edculo anterior <a href=\"http:\/\/www.hispavila.com\/el-modulo-esp8266\/\" target=\" \" rel=\"noopener noreferrer\">ESP8266-01<\/a>, recomiendo la versi\u00f3n 1.6.4 si no la tiene desc\u00e1rguela del sitio Arduino.cc para asegurarnos que funciona. Con esto tendremos los mismos puntos de partida usted y yo. As\u00ed podr\u00e1 seguir mis pasos. Abra el IDE de Arduino y vaya a Archivo\/Preferencias.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/preferencias367x384\" rel=\"attachment wp-att-3612\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3612 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/preferencias367x384-287x300.jpg\" alt=\"preferencias367x384\" width=\"234\" height=\"244\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/preferencias367x384-287x300.jpg 287w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/preferencias367x384.jpg 367w\" sizes=\"auto, (max-width: 234px) 100vw, 234px\" \/><\/a><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/preferencias324x382\" rel=\"attachment wp-att-3611\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3611 alignnone\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/preferencias324x382-254x300.jpg\" alt=\"preferencias324x382\" width=\"205\" height=\"240\" \/><br \/>\n<\/a>Fig.\u00a04-5<\/p>\n<p>En el pi\u00e9 de la ventana, en la celda que pone <em>Additional Boards Manager URLs<\/em>, tiene que copiar y pegar la\u00a0direcci\u00f3n siguiente:<\/p>\n<p style=\"text-align: justify;\">http:\/\/arduino.esp8266.com\/package_esp8266com_index.json<\/p>\n<p style=\"text-align: justify;\">Puede a\u00f1adir varias, separadas por una coma.\u00a0Ahora, vaya a <em>Herramientas\/placa\/Board Manager<\/em> y pulse en <em>Board Manager\u2026<\/em><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/placa_generic\" rel=\"attachment wp-att-3615\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3615\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic-300x203.jpg\" alt=\"placa_generic\" width=\"300\" height=\"203\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic-300x203.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic.jpg 686w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/boards_manager486x274\" rel=\"attachment wp-att-3616\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3616\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/boards_manager486x274-300x169.jpg\" alt=\"boards_manager486x274\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/boards_manager486x274-300x169.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/boards_manager486x274.jpg 486w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 6<\/p>\n<p style=\"text-align: justify;\">Busque <em>esp8266 by ESP8266 Community<\/em> y dele a Install, en poco tiempo se instalar\u00e1 la librer\u00eda. Ahora, en el men\u00fa <em>Herramientas<\/em> ya estar\u00e1 disponible la Placa gen\u00e9rica ESP8266 que debe elegir. En el mismo men\u00fa, elija la velocidad de transmisi\u00f3n de 115200, el puerto que corresponda y el resto de opciones como se aprecian en la imagen (ya la tengo instalada).<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/placa_generic_ep8266_427x427\" rel=\"attachment wp-att-3617\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3617\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic_ep8266_427x427-300x300.jpg\" alt=\"placa_generic_ep8266_427x427\" width=\"300\" height=\"300\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic_ep8266_427x427-300x300.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic_ep8266_427x427-150x150.jpg 150w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/placa_generic_ep8266_427x427.jpg 427w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 7<\/p>\n<p style=\"text-align: justify;\">El siguiente es el diagrama de conexi\u00f3n entre ambas tarjetas. Como se aprecia es muy sencillo y esta es la forma adecuada para programar el boceto que nos interese en cada momento.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3619 size-medium\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/diagrama445x120-300x81.jpg\" alt=\"diagrama445x120\" width=\"300\" height=\"81\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/diagrama445x120-300x81.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/diagrama445x120.jpg 445w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>Fig. 8<\/p>\n<p style=\"text-align: justify;\">El programa que vamos a cargar, es un boceto sencillo como el <em>Blink.ino<\/em> que viene en el propio Arduino.<\/p>\n<pre style=\"text-align: justify;\" class=\"\">void setup()\r\n\u00a0\u00a0 { pinMode(2, OUTPUT); }\r\n\u00a0\r\nvoid loop()\r\n\u00a0\u00a0 { digitalWrite(2, HIGH);\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0 delay(1000);\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0 digitalWrite(2, LOW);\r\n\u00a0\u00a0\u00a0\u00a0 delay(1000);\u00a0\u00a0\r\n\u00a0\u00a0 }<\/pre>\n<p style=\"text-align: justify;\">\u00a0Cuando todo esta bien conectado y se carga el programa, nos mostrar\u00e1 una imagen similar a la de abajo, al cargar una l\u00ednea de puntos nos indicar\u00e1 que todo va bien, siguen tres hasta el 100%.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/blink\" rel=\"attachment wp-att-3625\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3625\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/blink-300x191.jpg\" alt=\"blink\" width=\"300\" height=\"191\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/blink-300x191.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/blink-768x488.jpg 768w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/blink.jpg 949w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Fig. 9<\/p>\n<p style=\"text-align: justify;\">\u00a0Para la puesta en marcha de la ESP8266, una vez programada con el boceto que necesitemos, bastar\u00e1 aplicar una tensi\u00f3n de 3\u20193V y las conexiones adecuadas seg\u00fan las necesidades del boceto.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/diagrama345x130\" rel=\"attachment wp-att-3620\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3620\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/diagrama345x130-300x114.jpg\" alt=\"diagrama345x130\" width=\"300\" height=\"114\" \/><\/a>Fig. 10<\/p>\n<p style=\"text-align: justify;\">Como se puede ver todo ha salido como esper\u00e1bamos, el ESP8266 est\u00e1 funcionando. Hemos utilizado un convertidor de USB a TTL, para programar el Esp8266-01 o tambi\u00e9n Esp8266 ESP-01.<\/p>\n<p style=\"text-align: justify;\"><strong>Nota.<\/strong> He observado que una vez ejecutado el boceto, si intentamos compilar un nuevo boceto o incluso el mismo boceto, Arduino responde con un error, al menos esto es lo que ocurre en mi sistema. Despu\u00e9s de consultar en foros, darle vueltas al tema y probando cosas, he encontrado una soluci\u00f3n hasta que encuentre una m\u00e1s razonada, la soluci\u00f3n es que si reseteo el ESP8266-01, conectando un instante el pin SRT a masa\/tierra, cuando vuelvo a compilar un boceto no da error.<\/p>\n<p style=\"text-align: justify;\">Hab\u00edamos comentado, utilizar el ESP8266 sin Arduino, ya hemos llegado al punto que esper\u00e1bamos. Vamos a poner el ESP8266 como un servidor web, al que mediante un navegador podamos encender o apagar un LED que tendremos conectado a un GPIO del ESP8266, como por ejemplo el GPIO2.<\/p>\n<p style=\"text-align: justify;\">Este es otro c\u00f3digo similar que hace lo mismo, pero de otra forma, este segundo boceto me parece m\u00e1s elaborado.<\/p>\n<h3>ESP8266 LED CONTROL.<\/h3>\n<pre class=\"\">* esp8266_led_control.ino\r\n* \r\n* He puesto en el navegador la direcci\u00f3n: http:\/\/192.168.1.234 y se ha establecido la\r\n* conexi\u00f3n esperada con los dos botones On y OFF. He probado conectando una res. y un \r\n* LED del GPIO 2 a masa y ha respondido bien.\r\n* Esta funcionando 30.08.2016\r\n*\/\r\n\r\n#include &lt;ESP8266WiFi.h&gt; \/\/ librer\u00eda \"ESP8266WiFi.h\" \r\n\r\nconst char* ssid = \"Magesh\"; \/\/ ponga su ssid\r\nconst char* password = \"jayakumar\"; \/\/ ponga su password \r\n\r\nint ledPin = 2; \/\/ asignar al GPIO 2 el nombre \"LED\" a la patilla 2.\r\nWiFiServer server(80);\r\n\r\nvoid setup() {\r\n Serial.begin(115200); \r\n delay(10); \r\n pinMode(ledPin, OUTPUT); \r\n digitalWrite(ledPin, LOW);\r\n \r\n \/\/ Connect to WiFi network \r\n Serial.println(); \r\n Serial.println();\r\n Serial.print(\"Connecting to \"); \r\n Serial.println(ssid); \r\n WiFi.begin(ssid, password); \r\n\r\n while (WiFi.status() != WL_CONNECTED) {\r\n delay(500); \r\n Serial.print(\".\"); \r\n } \r\n Serial.println(\"\");\r\n Serial.println(\"WiFi connected\"); \r\n\r\n \/\/ Start the server \r\n server.begin();\r\n Serial.println(\"Server started\"); \r\n\r\n \/\/ Print the IP address\r\n Serial.print(\"Use this URL to connect: \"); \r\n Serial.print(\"http:\/\/\");\r\n Serial.print(WiFi.localIP()); \r\n Serial.println(\"\/\"); \r\n } \r\n\r\n void loop() {\r\n \/\/ Check if a client has connected \r\n WiFiClient client = server.available();\r\n if (!client) { \r\n return; \r\n } \r\n\r\n \/\/ Wait until the client sends some data\r\n Serial.println(\"new client\");\r\n while(!client.available()){\r\n delay(1); \r\n } \r\n\r\n \/\/ Read the first line of the request\r\n String request = client.readStringUntil('\\r'); \r\n Serial.println(request); \r\n client.flush(); \r\n\r\n \/\/ Match the request \r\n\r\n int value = LOW;\r\n if (request.indexOf(\"\/LED=ON\") != -1) { \r\n digitalWrite(ledPin, HIGH);\r\n value = HIGH; \r\n } \r\n if (request.indexOf(\"\/LED=OFF\") != -1) {\r\n digitalWrite(ledPin, LOW); \r\n value = LOW; \r\n } \r\n\r\n\/\/ Set ledPin according to the request\r\n\/\/digitalWrite(ledPin, value); \r\n\r\n\/\/ Return the response\r\n client.println(\"HTTP\/1.1 200 OK\"); \r\n client.println(\"Content-Type: text\/html\");\r\n client.println(\"\"); \/\/ do not forget this one\r\n client.println(\"&lt;!DOCTYPE HTML&gt;\"); \r\n client.println(\"&lt;html&gt;\");\r\n \r\n client.print(\"&lt;p style='font-size:20px;'&gt;\");\r\n client.print(\"Led pin is now: \"); \r\n\r\n if(value == HIGH) {\r\n client.print(\"&lt;span style='color:#ff0000;font-size:20px;'&gt;\");\r\n client.print(\"On\");client.print(\"&lt;\/span&gt;\"); \r\n } else {\r\n client.print(\"&lt;span style='color:#0000ff;font-size:20px;'&gt;\");\r\n client.print(\"Off\");client.print(\"&lt;\/span&gt;\"); \r\n } \r\n client.println(\"&lt;\/p&gt;\"); \r\n client.println(\" \"); \r\n client.print(\"&lt;p style='font-size:22px;'&gt;Conectado a IP: \"); \r\n client.print(\"http:\/\/\"); \r\n client.println(WiFi.localIP()); \r\n client.println(\"&lt;\/p&gt;\");\r\n client.println(\"&lt;a href=\\\"\/LED=ON\\\"\\\"&gt;&lt;button&gt;Turn On &lt;\/button&gt;\");\r\n client.println(\"&lt;a href=\\\"\/LED=OFF\\\"\\\"&gt;&lt;button&gt;Turn Off &lt;\/button&gt;\"); \r\n client.println(\"&lt;\/html&gt;\"); \r\n delay(1);\r\n Serial.println(\"Client disonnected\");\r\n Serial.println(\"\");\r\n }<\/pre>\n<p style=\"text-align: justify;\">OPS!!. Que ha pasado, el navegador no encuentra la red SSID. Naturalmente, usted tiene que modificar el c\u00f3digo y donde pone <em>ssid = \u201cESP\u201d<\/em>, debe poner ssid = \u201cREDINHALAMBRICA\u201d de Internet de\u00a0su ruter.<\/p>\n<p style=\"text-align: justify;\"><strong>C\u00f3mo encontrar el nombre de la red inal\u00e1mbrica (SSID) y la contrase\u00f1a de los ruters?<\/strong> El nombre de la red inal\u00e1mbrica (SSID) y la contrase\u00f1a son datos muy importantes, especialmente si usted est\u00e1 intentando conectarse a una red inal\u00e1mbrica segura. Usted podr\u00e1 acceder a esta informaci\u00f3n a trav\u00e9s de la p\u00e1gina web de configuraci\u00f3n de su ruter. En caso de una red libre, usted desde el celular, puede conocer la red m\u00e1s potente a su alcance, tome nota de su nombre y ya dispone de su SSID = \u201cXXXXXXX\u201d, el caso del password, p\u00eddalo al establecimiento, si es libre, no har\u00e1 falta.<\/p>\n<p style=\"text-align: justify;\">Si usa una computadora de mesa y no encuentra el icono de conexiones inal\u00e1mbricas, es posible que no est\u00e9 instalada correctamente o inhabilitada. Para comprobar que el adaptador est\u00e9 habilitado, presiona <strong>Win+R<\/strong> e introduzca <strong>ncpa.cpl<\/strong>. Busque el adaptador inal\u00e1mbrico en la lista de conexiones disponibles. Si aparece como \u201cInhabilitado\u201d, haz clic con el bot\u00f3n derecho y selecciona \u201cHabilitar\u201d.<\/p>\n<p style=\"text-align: justify;\">Si ya ha cambiado estos datos, usted puede comprobar el funcionamiento del boceto.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/control_led\" rel=\"attachment wp-att-3622\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3622\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/control_led.gif\" alt=\"control_led\" width=\"266\" height=\"182\" \/><\/a>Fig. 11<\/p>\n<p style=\"text-align: justify;\">El siguiente, es otro c\u00f3digo similar que hace lo mismo, pero de otra forma, \u00e9ste segundo boceto lo he elaborado m\u00e1s.<\/p>\n<h3>ESP8266 LED WEB.<\/h3>\n<p style=\"text-align: justify;\">Otra forma de conectar y desconectar un LED por Internet.<\/p>\n<pre style=\"text-align: justify;\" class=\"\">\/*&lt;br \/&gt; esp8266_web.ino&lt;br \/&gt; *\/&lt;br \/&gt;&lt;br \/&gt;\r\n#include &amp;lt;ESP8266WiFi.h&gt;&lt;br \/&gt;&lt;br \/&gt; \r\nconst char* ssid = \"YOUR_SSID\";\/\/type your ssid&lt;br \/&gt;\r\nconst char* password = \"YOUR_PASSWORD\";\/\/type your password&lt;br \/&gt;&lt;br \/&gt; \r\nint ledPin = 2; \/\/ GPIO2 del ESP8266&lt;br \/&gt;\r\nWiFiServer server(80);&lt;br \/&gt;&lt;br \/&gt; \r\nvoid setup() {&lt;br \/&gt;\r\n Serial.begin(115200);&lt;br \/&gt;\r\n delay(10);&lt;br \/&gt;&lt;br \/&gt; \r\n pinMode(ledPin, OUTPUT);&lt;br \/&gt;\r\n digitalWrite(ledPin, LOW);&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Conecta a red WiFi &lt;br \/&gt;\r\n Serial.println();&lt;br \/&gt;\r\n Serial.println();&lt;br \/&gt;\r\n Serial.print(\"Conectando a \");&lt;br \/&gt; Serial.println(ssid);&lt;br \/&gt;&lt;br \/&gt; \r\n WiFi.begin(ssid, password);&lt;br \/&gt;&lt;br \/&gt; \r\n while (WiFi.status() != WL_CONNECTED) {&lt;br \/&gt;\r\n delay(500);&lt;br \/&gt;\r\n Serial.print(\".\");&lt;br \/&gt;\r\n }&lt;br \/&gt;\r\n Serial.println(\"\");&lt;br \/&gt;\r\n Serial.println(\"WiFi conectada\");&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Start the server&lt;br \/&gt;\r\n server.begin();&lt;br \/&gt;\r\n Serial.println(\"Server started\");&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Print the IP address&lt;br \/&gt;\r\n Serial.print(\"Use this URL to connect: \");&lt;br \/&gt;\r\n Serial.print(\"http:\/\/\");&lt;br \/&gt;\r\n Serial.print(WiFi.localIP());&lt;br \/&gt;\r\n Serial.println(\"\/\");&lt;br \/&gt; \r\n}&lt;br \/&gt;&lt;br \/&gt; \r\nvoid loop() {&lt;br \/&gt;\r\n \/\/ Check if a client has connected&lt;br \/&gt;\r\n WiFiClient client = server.available();&lt;br \/&gt;\r\n if (!client) {&lt;br \/&gt;\r\n return;&lt;br \/&gt;\r\n }&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Wait until the client sends some data&lt;br \/&gt;\r\n Serial.println(\"new client\");&lt;br \/&gt;\r\n while(!client.available()){&lt;br \/&gt;\r\n delay(1);&lt;br \/&gt;\r\n }&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Read the first line of the request&lt;br \/&gt;\r\n String request = client.readStringUntil('\\r');&lt;br \/&gt;\r\n Serial.println(request);&lt;br \/&gt;\r\n client.flush();&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Match the request&lt;br \/&gt;&lt;br \/&gt; \r\n int value = LOW;&lt;br \/&gt;\r\n if (request.indexOf(\"\/LED=ON\") != -1) {&lt;br \/&gt;\r\n digitalWrite(ledPin, HIGH);&lt;br \/&gt;\r\n value = HIGH;&lt;br \/&gt;\r\n } &lt;br \/&gt;\r\n if (request.indexOf(\"\/LED=OFF\") != -1){&lt;br \/&gt;\r\n digitalWrite(ledPin, LOW);&lt;br \/&gt;\r\n value = LOW;&lt;br \/&gt;\r\n }&lt;br \/&gt;&lt;br \/&gt; \r\n\/\/ Set ledPin according to the request&lt;br \/&gt;\r\n\/\/digitalWrite(ledPin, value);&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Return the response&lt;br \/&gt;\r\n client.println(\"HTTP\/1.1 200 OK\");&lt;br \/&gt;\r\n client.println(\"Content-Type: text\/html\");&lt;br \/&gt;\r\n client.println(\"\"); \/\/ do not forget this one&lt;br \/&gt;\r\n client.println(\"&amp;lt;!DOCTYPE HTML&gt;\");&lt;br \/&gt;\r\n client.println(\"&amp;lt;html&gt;\");&lt;br \/&gt;&lt;br \/&gt; \r\n client.print(\"Led pin is now: \");&lt;br \/&gt;&lt;br \/&gt; \r\n if(value == HIGH) {&lt;br \/&gt;\r\n client.print(\"On\"); &lt;br \/&gt;\r\n } else {&lt;br \/&gt;\r\n client.print(\"Off\");&lt;br \/&gt;\r\n }&lt;br \/&gt;\r\n client.println(\"&lt;br&gt;&lt;br&gt;\");&lt;br \/&gt;\r\n client.println(\"Click &amp;lt;a href=\\\"\/LED=ON\\\"&gt;here&amp;lt;\/a&gt; turn the LED on pin 2 ON&lt;br&gt;\");&lt;br \/&gt;\r\n client.println(\"Click &amp;lt;a href=\\\"\/LED=OFF\\\"&gt;here&amp;lt;\/a&gt; turn the LED on pin 2 OFF&lt;br&gt;\");&lt;br \/&gt;\r\n client.println(\"&amp;lt;\/html&gt;\");&lt;br \/&gt;&lt;br \/&gt; \r\n delay(1);&lt;br \/&gt;\r\n Serial.println(\"Client disonnected\");&lt;br \/&gt;\r\n Serial.println(\"\");&lt;br \/&gt;}<\/pre>\n<p style=\"text-align: justify;\">\u00a0En el c\u00f3digo como siempre, se incluyen las bibliotecas necesarias para inicializar el m\u00f3dulo ESP en modo AP y crear un servidor web. Luego se proporcionan el nombre <strong>ssid<\/strong> y el <strong>password<\/strong>, de nuestro punto de acceso (puede dejar en blanco el pasword y no tendr\u00e1 que poner contrase\u00f1a cuando se conecte el m\u00f3dulo). He documentado bastante el c\u00f3digo considero que no son necesarias m\u00e1s descripciones. El resultado es este:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/conectando_a_ip\" rel=\"attachment wp-att-3624\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3624\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/conectando_a_ip.gif\" alt=\"conectando_a_ip\" width=\"287\" height=\"182\" \/><\/a>Fig. 12<\/p>\n<p style=\"text-align: justify;\">El siguiente es un tercer c\u00f3digo para realizar el mismo efecto, sin embargo se ha elaborado un poco m\u00e1s.<\/p>\n<h3>ESP8266 LED CONTROL2.<\/h3>\n<p style=\"text-align: justify;\">C\u00f3mo conectar y desconectar un LED por Internet.<\/p>\n<pre style=\"text-align: justify;\" class=\"\"> \/*&lt;br \/&gt;\r\n* esp8266_led_control2.ino&lt;br \/&gt;* &lt;br \/&gt;\r\n* He puesto en el navegador la direcci\u00f3n: http:\/\/192.168.1.234 y se ha establecido la&lt;br \/&gt;\r\n* conexi\u00f3n esperada con los dos botones On y OFF. He probado conectando una res. y un &lt;br \/&gt;\r\n* LED del GPIO 2 a masa y ha respondido bien.&lt;br \/&gt;\r\n* Esta funcionando 30.09.2016&lt;br \/&gt;*\/&lt;br \/&gt;&lt;br \/&gt;\r\n#include &amp;lt;ESP8266WiFi.h&gt; \/\/ librer\u00eda \"ESP8266WiFi.h\"&lt;br \/&gt;&lt;br \/&gt; \r\nconst char* ssid = \"Magesth\"; \/\/ ponga su ssid&lt;br \/&gt;\r\nconst char* password = \"jayakuman\"; \/\/ ponga su password&lt;br \/&gt;&lt;br \/&gt; \r\nint ledPin = 2; \/\/ asignar al GPIO 2 el nombre \"LED\" a la patilla 2.&lt;br \/&gt;\r\nWiFiServer server(80);&lt;br \/&gt;&lt;br \/&gt; \r\nvoid setup() {&lt;br \/&gt;\r\n Serial.begin(115200);&lt;br \/&gt; \r\n delay(10);&lt;br \/&gt; \r\n pinMode(ledPin, OUTPUT);&lt;br \/&gt; \r\n digitalWrite(ledPin, LOW);&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Connect to WiFi network&lt;br \/&gt; \r\n Serial.println();&lt;br \/&gt; \r\n Serial.println();&lt;br \/&gt;\r\n Serial.print(\"Connecting to \");&lt;br \/&gt; \r\n Serial.println(ssid);&lt;br \/&gt; \r\n WiFi.begin(ssid, password);&lt;br \/&gt;&lt;br \/&gt; \r\n while (WiFi.status() != WL_CONNECTED) {&lt;br \/&gt;\r\n delay(500);&lt;br \/&gt; \r\n Serial.print(\".\");&lt;br \/&gt; }&lt;br \/&gt; \r\n Serial.println(\"\");&lt;br \/&gt;\r\n Serial.println(\"WiFi connected\");&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Start the server&lt;br \/&gt; \r\n server.begin();&lt;br \/&gt;\r\n Serial.println(\"Server started\");&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Print the IP address&lt;br \/&gt;\r\n Serial.print(\"Use this URL to connect: \");&lt;br \/&gt; \r\n Serial.print(\"http:\/\/\");&lt;br \/&gt;\r\n Serial.print(WiFi.localIP());&lt;br \/&gt;\r\n Serial.println(\"\/\");&lt;br \/&gt;\r\n}&lt;br \/&gt;&lt;br \/&gt;\r\n void loop() {&lt;br \/&gt;\r\n \/\/ Check if a client has connected&lt;br \/&gt;\r\n WiFiClient client = server.available();&lt;br \/&gt;\r\n if (!client) {&lt;br \/&gt; \r\n return;&lt;br \/&gt; }&lt;br \/&gt;&lt;br \/&gt;\r\n \/\/ Wait until the client sends some data&lt;br \/&gt;\r\n Serial.println(\"new client\");&lt;br \/&gt;\r\n while(!client.available()){&lt;br \/&gt;\r\n delay(1);&lt;br \/&gt;\r\n }&lt;br \/&gt;&lt;br \/&gt;\r\n \/\/ Read the first line of the request&lt;br \/&gt;\r\n String request = client.readStringUntil('\\r');&lt;br \/&gt;\r\n Serial.println(request);&lt;br \/&gt;\r\n client.flush();&lt;br \/&gt;&lt;br \/&gt; \r\n \/\/ Match the request&lt;br \/&gt;&lt;br \/&gt;\r\n int value = LOW;&lt;br \/&gt;\r\n if (request.indexOf(\"\/LED=ON\") != -1) {&lt;br \/&gt;\r\n digitalWrite(ledPin, HIGH);&lt;br \/&gt;\r\n value = HIGH;&lt;br \/&gt; }&lt;br \/&gt;\r\n if (request.indexOf(\"\/LED=OFF\") != -1) {&lt;br \/&gt;\r\n digitalWrite(ledPin, LOW);&lt;br \/&gt;\r\n value = LOW;&lt;br \/&gt; }&lt;br \/&gt;&lt;br \/&gt; \r\n\/\/ Set ledPin according to the request&lt;br \/&gt;\r\n\/\/digitalWrite(ledPin, value);&lt;br \/&gt;&lt;br \/&gt;\r\n\/\/ Return the response&lt;br \/&gt;\r\n client.println(\"HTTP\/1.1 200 OK\");&lt;br \/&gt;\r\n client.println(\"Content-Type: text\/html\");&lt;br \/&gt;\r\n client.println(\"\"); \/\/ do not forget this one&lt;br \/&gt;\r\n client.println(\"&amp;lt;!DOCTYPE HTML&gt;\");&lt;br \/&gt;\r\n client.println(\"&amp;lt;html&gt;\");&lt;br \/&gt;&lt;br \/&gt; \r\n client.print(\"&amp;lt;p style='font-size:20px;'&gt;\");&lt;br \/&gt;\r\n client.print(\"Led pin is now: \"); &lt;br \/&gt;&lt;br \/&gt;\r\n if(value == HIGH) {&lt;br \/&gt;\r\n client.print(\"&amp;lt;span style='color:#ff0000;font-size:20px;'&gt;\");&lt;br \/&gt;\r\n client.print(\"On\");client.print(\"&lt;\/span&gt;\");&lt;br \/&gt;\r\n } else {&lt;br \/&gt;\r\n client.print(\"&amp;lt;span style='color:#0000ff;font-size:20px;'&gt;\");&lt;br \/&gt;\r\n client.print(\"Off\");client.print(\"&lt;\/span&gt;\");&lt;br \/&gt;\r\n }&lt;br \/&gt;\r\n client.println(\"&lt;\/p&gt;\"); &lt;br \/&gt;\r\n client.println(\"&lt;br&gt;\"); &lt;br \/&gt;\r\n client.print(\"&amp;lt;p style='font-size:22px;'&gt;Conectado a IP: \"); &lt;br \/&gt;\r\n client.print(\"http:\/\/\"); &lt;br \/&gt;\r\n client.println(WiFi.localIP()); &lt;br \/&gt;\r\n client.println(\"&lt;\/p&gt;\");&lt;br \/&gt;\r\n client.println(\"&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;lt;a href=\\\"\/LED=ON\\\"\\\"&gt;&amp;lt;button&gt;Turn On &lt;\/button&gt;&lt;\/a&gt;\");&lt;br \/&gt;\r\n client.println(\"&amp;lt;a href=\\\"\/LED=OFF\\\"\\\"&gt;&amp;lt;button&gt;Turn Off &lt;\/button&gt;&lt;\/a&gt;&lt;br \/&gt;\"); &lt;br \/&gt; \r\n client.println(\"&lt;\/html&gt;\");&lt;br \/&gt;\r\n delay(1);&lt;br \/&gt;\r\n Serial.println(\"Client disonnected\");&lt;br \/&gt;\r\n Serial.println(\"\");&lt;br \/&gt;\r\n }<\/pre>\n<p style=\"text-align: justify;\">\u00a0Es el momento de cargar el anterior c\u00f3digo en nuestro Arduino y compilarlo para ver los resultados, las conexiones a seguir son las mostradas en la anterior <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/diagrama445x120.jpg\">figura 8<\/a>. <strong>Observaci\u00f3n<\/strong>: Cuando el programa termine de compilar, es el momento de abrir el <em>monitor Serial<\/em>, es cuando mostrar\u00e1 la conexi\u00f3n, para ver a qu\u00e9 IP hemos de conectarnos.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/monitor_serial_con_ip\" rel=\"attachment wp-att-3626\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3626\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/monitor_serial_con_ip-300x134.gif\" alt=\"monitor_serial_con_ip\" width=\"300\" height=\"134\" \/><\/a>Fig. 13<\/p>\n<p style=\"text-align: justify;\">Ahora que sabemos la IP, abramos el navegador de costumbre e insertar dicha IP que nos ha mostrado el monitor Serial y podremos actuar sobre los botones que presenta.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/el-esp8266-como-arduino\/conectar_a_ip\" rel=\"attachment wp-att-3628\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-3628\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2016\/11\/conectar_a_ip-300x216.gif\" alt=\"conectar_a_ip\" width=\"300\" height=\"216\" \/><\/a>\u00a0Fig. 14<\/p>\n<p style=\"text-align: justify;\">Observemos que cada vez que pulsamos un bot\u00f3n, se conecta el servidor, ejecuta la acci\u00f3n y se desconecta. No se olvide de visitar esp8266.com para obtener las \u00faltimas y mejores noticias en ESP8266, software y chismes!<\/p>\n<p style=\"text-align: justify;\">Este m\u00f3dulo ESP8266-01 s\u00f3lo dispones de 2 registros GPIO en el exterior, sin embargo, otros modelos tienen m\u00e1s GPIO\u2019s disponibles. Una opci\u00f3n para conseguir entradas adicionales en el ESP8266-01 es utilizar una interfaz I2C. En pr\u00f3ximas ocasiones trataremos estos interesantes m\u00f3dulos ESP8266 en sus distintas posibilidades.<\/p>\n<h4 style=\"text-align: justify;\">ANEXO.<\/h4>\n<p style=\"text-align: justify;\">Puede que en sus pruebas usted encuentre que le da un error al compilar el boceto, f\u00edjese si es algo parecido a lo que muestro a continuaci\u00f3n:<\/p>\n<pre class=\"\">Sketch uses 222.205 bytes (51%) of program storage space. Maximum is 434.160 bytes.\r\nGlobal variables use 31.572 bytes (38%) of dynamic memory, leaving 50.348 bytes for local \r\n variables. Maximum is 81.920 bytes.\r\nwarning: espcomm_sync failed\r\nerror: espcomm_open failed\r\nerror: espcomm_upload_mem failed<\/pre>\n<p style=\"text-align: justify;\">Si ese es el caso, le dir\u00e9 que a mi me pasa a menudo, y he encontrado una soluci\u00f3n a nivel hardware, que consiste en reseteart el ESP8266, desconectar la salidas de los GPIO\u2019s si est\u00e1n utiliz\u00e1ndose y entonces compilar y subir el boceto, en ese caso a mi me funciona. Y recuerde que es importante aplicar condensadores electrol\u00edticos de 10uf a 47uf cerca de la alimentaci\u00f3n del ESP8266, para evitar comportamientos err\u00e1ticos.<\/p>\n<p style=\"text-align: justify;\">Espero haber aclarado alg\u00fan concepto.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CREADO POR V. GARC\u00cdA. 2016-08-30. VISI\u00d3N DE CONJUNTO. El dispositivo ESP8266 es un chip altamente integrado dise\u00f1ado para las necesidades de un nuevo mundo conectado. Ofrece una soluci\u00f3n completa y autosuficiente en las redes Wi-Fi, lo que le autoriza para ser anfitri\u00f3n de la aplicaci\u00f3n o descargar todas las funciones de red Wi-Fi desde otras [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":3632,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[291,289],"tags":[340,290],"class_list":["post-3606","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-el-esp8266-como-arduino","category-esp8266","tag-esp82666","tag-nodemcu-esp12"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/3606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/comments?post=3606"}],"version-history":[{"count":11,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/3606\/revisions"}],"predecessor-version":[{"id":4822,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/3606\/revisions\/4822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/3632"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=3606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=3606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=3606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}