{"id":1629,"date":"2019-03-19T13:25:55","date_gmt":"2019-03-19T18:25:55","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1629"},"modified":"2019-03-19T13:25:55","modified_gmt":"2019-03-19T18:25:55","slug":"esp32-softap","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/esp32-softap\/","title":{"rendered":"ESP32 SoftAP"},"content":{"rendered":"<p>Para crear un Access Point se usa de la libreria la intrucci\u00f3n WIFI.softAP()<\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/ESP32_AP_Blink01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1630 aligncenter\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/ESP32_AP_Blink01.png\" alt=\"\" width=\"422\" height=\"297\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/ESP32_AP_Blink01.png 422w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/03\/ESP32_AP_Blink01-300x211.png 300w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/p>\n<p>Como base se tiene el ejercicio de una p\u00e1gina web para encender o apagar el LED incorporado.<\/p>\n<p>En \u00e9sta ocasi\u00f3n no es necesario conectarse a un router, el AP aparece en la lista de dispositivos circundantes. Se selecciona y se ingresa con el nombre de red y la contrase\u00f1a.<\/p>\n<pre>\/* ESP32 Soft AP con web server para encender LED_Pin\nforma b\u00e1sica con la funci\u00f3n inicia_wifi\nReferencia: https:\/\/www.arduino.cc\/en\/Tutorial\/WiFiWebServer  \n*\/\n#include &lt;WiFi.h&gt;\n\nconst char* ssid     = \"iotirni19_AP\";\nconst char* password = \"xxxxx\";\n\n\/\/ puerto de servidor web 80\nconst PROGMEM uint8_t puertoweb = 80;\nWiFiServer server(puertoweb);\n\n\/\/ LED monitor interno\n\/\/ESP01-pin=1, ESP07-pin=2; ESP32-pin=5\nconst PROGMEM uint8_t LED_pin = 5; \nint LED_estado = 0;\n\nvoid setup()\n{\n    \/\/ Conexion serial\n    Serial.begin(115200);\n    Serial.setTimeout(500);\n    \/\/ espera inicializar serial\n    while(!Serial) { }\n\n    \/\/ LED monitor\n    pinMode(LED_pin, OUTPUT);\n    delay(10);\n\n    \/\/ Convertir en AP\n    WiFi.softAP(ssid, password);\n    \/\/inicia_wifi(); \/\/ no se conecta a un router\n    server.begin();\n}\n\nvoid loop(){\n    WiFiClient client = server.available();\n    if (client){\n        String linea = \"\";\n        Serial.println();\n        Serial.println(\"Nuevo cliente.\");\n        while (client.connected()) {\n            if (client.available()) {\n                char c = client.read();\n                Serial.write(c);\n                if (c == '\\n') {\n                    \/\/ Si recibe fin de linea y la linea es vacia,\n                    \/\/ la peticion http finaliz\u00f3, se responde:\n                    if (linea.length() == 0) {\n                        \/\/ HTTP headers inician con \u00e9sta secuencia:\n                        client.println(\"HTTP\/1.1 200 OK\");\n                        client.println(\"Content-type:text\/html\");\n                        client.println();\n                        \/\/ contenido despues de headers\n                        client.print(\"LED estado: \");\n                        client.print(String(LED_estado)+\"\n\");\n                        client.print(\"Click &lt;a href=\\\"\/H\\\"&gt;ENCIENDE LED&lt;\/a&gt;&lt;br&gt;\");\n                        client.print(\"Click &lt;a href=\\\"\/L\\\"&gt;   APAGA LED&lt;\/a&gt;&lt;br&gt;\");\n                        \/\/ finaliza contenido:\n                        client.println();\n                        \/\/ sale del lazo:\n                        break;\n                    } else {\n                        linea = \"\";\n                    }\n                } else if (c != '\\r') {\n                    linea = linea + c;\n                }\n            \/\/ Revisa click del cliente \"GET \/H\" or \"GET \/L\":\n            if (linea.endsWith(\"GET \/H\")) {\n                digitalWrite(LED_pin, HIGH);\n                LED_estado = 1;\n            }\n            if (linea.endsWith(\"GET \/L\")) {\n                digitalWrite(LED_pin, LOW);\n                LED_estado = 0;\n            }\n        }\n    }\n    delay(1); \/\/ espera que browser procese\n    client.stop(); \/\/ cierra conexi\u00f3n:\n    Serial.println(\"Cliente desconectado.\");\n    }\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Para crear un Access Point se usa de la libreria la intrucci\u00f3n WIFI.softAP() Como base se tiene el ejercicio de una p\u00e1gina web para encender o apagar el LED incorporado. En \u00e9sta ocasi\u00f3n no es necesario conectarse a un router, el AP aparece en la lista de dispositivos circundantes. Se selecciona y se ingresa con &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.espol.edu.ec\/girni\/esp32-softap\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \"ESP32 SoftAP\"<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1429787],"tags":[],"class_list":["post-1629","post","type-post","status-publish","format-standard","hentry","category-modulos-ejemplos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1629","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=1629"}],"version-history":[{"count":0,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1629\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=1629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=1629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=1629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}