como poder obtener de una pagina los resultados en letras he imprimirlos por separado de una pagina con ordenes en nodemcu, deseo extraer el resultado y ocuparlo, no deseosaber el estatus de los LED si no como resultado separado en orden en letra ejemplo http://192.168.0.7/led?led1=OFF&led2=ON deseo extraer OFF en un Serial.print y despues ON en un segundo Serial.print y estos resultados poderlos ocupar en modo global.
#include <ESP8266WiFi.h> //Incluye una librería externa para gestionar la conexión WiFi
#include <ESP8266WebServer.h> //Incluye una librería externa para facilitar la gestión del servidor
#define LED1 02 // D4 Asignación del nombre -LED1- al pin para el encendido/apagado de un led
#define LED2 05 // D1 Asignación del nombre -LED2- al pin para el encendido/apagado de un led
const char* ssid = "lared"; //Nombre de la red WiFi para la conexión (modo station)
const char* password = "lared"; //Clave de la red WiFi
ESP8266WebServer server(80); //Declara el puerto 80 del router para uso para las comunciaciones HTTP con el servidor
void setup() { //Declara la func. SETUP -Configuración inicial del sketch-
Serial.begin(115200); //Velocidad del Puerto Serie en baudios (115200)
Serial.println(); //Salto de línea en el Puerto Serie
pinMode(LED1, OUTPUT); //Inicializa el pin LED1 como salida
pinMode(LED2, OUTPUT); //Inicializa el pin LED2 como salida
WiFi.begin(ssid, password); //Inicializa la conexión a la red WiFi
while (WiFi.status() != WL_CONNECTED) { //Espera hasta que se logra la conexión
delay(500); //Cada 0,5s hasta que se conecta...
Serial.print("."); //... imprime "." en el puerto serie
}
Serial.printf("\nConectado a la red: %s", WiFi.SSID().c_str()); //Imprime en el pto. serie el nombre de la red WiFi de conexión
Serial.printf("\nDirección IP: http://%s\n", WiFi.localIP().toString().c_str()); //Imprime en el pto. serie la dirección IP asignada por el router
//CONFIGURACIÓN DE LAS RUTAS ("PATHS") DEL SERVIDOR HTTP
server.on("/", [](){ //RUTA "/" DE SOLICITUD HTTP
String formulario = //Construcción del formulario HTML de respuesta en cadena de texto
"<!DOCTYPE html>" //Declaración del tipo de documento: HTML5
"<html>" //Inicio del documento HTML
"<head>" //Inicio de la cabecera -inf.sobre el doc.-
"<meta charset=utf-8>" //Config. de carácteres utilizada: UTF-8
"<title>GET&POST</title>" //Título del documento
"</head>" //Fin de la cabecera
"<body>" //Inicio del cuerpo -contenido visible del doc.-
"<h2>COMUNICACIONES HTTP</h2>" //Texto de encabezado -h2-
"<form action='led' method='get'>" //Inicio del formulario. Método de envío GET
// "<form action='led' method='post'>" //Inicio del formulario. Método de envío POST
"<input type='radio' name='led1' value='ON' checked> ENCENDER LED 1 " //Primer valor seleccionable para led1: led1=1
"<input type='radio' name='led1' value='OFF'>APAGAR LED 1
" //Segundo valor seleccionable para led1: led1=0
"<input type='radio' name='led2' value='ON' checked> ENCENDER LED 2 " //Primer valor seleccionable para led2: led2=1
"<input type='radio' name='led2' value='OFF'>APAGAR LED 2
" //Segundo valor seleccionable para led2: led2=0
"<input type='submit' value='ENVIAR'>" //Envío de los dos pares nombre/valor seleccionados
"</form>" //Fin del formulario
"</body>" //Fin del cuerpo
"</html>"; //Fin del documento HTML
server.send(200, "text/html", formulario); //Envío del formulario como respuesta al cliente
}); //MIME text/html: documento de texto en formato HTML
//https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Lista_completa_de_tipos_MIME
server.on("/led", [](){ //RUTA "/led" DE SOLICITUD HTTP
int estado_led1 = server.arg("led1").toInt(); //Obtiene el valor enviado de "led1" como STRING y lo convierte a INT
int estado_led2 = server.arg("led2").toInt(); //Obtiene el valor enviado de "led2" como STRING y lo convierte a INT
digitalWrite(LED1, estado_led1); //Cambia el estado del pin LED1 según la selección del formulario
digitalWrite(LED2, estado_led2); //Cambia el estado del pin LED2 según la selección del formulario
Serial.println(estado_led1);
Serial.println(estado_led2); //Construcción del formulario HTML de respuesta en cadena de texto
//Va a ser un formulario dinámico (se establecen condiciones que varían el resultado final)
String estado = "<!DOCTYPE html>"; //Declaración del tipo de documento: HTML5
estado += "<html>"; //Inicio del documento HTML
estado += "<head>"; //Inicio de la cabecera -inf.sobre el doc.-
estado += "<meta charset=utf-8>"; //Config. de carácteres utilizada: UTF-8
estado += "<title>GET&POST</title>"; //Título del documento
estado += "</head>"; //Fin de la cabecera
estado += "<body>"; //Inicio del cuerpo -contenido visible del doc.-
estado += server.method() == HTTP_GET?"<h2>METODO GET</h2>":"<h2>METODO POST</h2>"; // Texto de encabezado -h2-. Varía en función del método utilizado
estado += "<h3>RESPUESTA DEL SERVIDOR</h3>"; // Texto de encabezado -h3-.
estado += digitalRead(LED1)?"<p>El LED 1 está encendido
":"<p>El LED 1 está apagado
"; // Estado del LED1. Varía en función de la lectura de su estado.
estado += digitalRead(LED2)?"El LED 2 está encendido</p>":"El LED 2 está apagado</p>"; // Estado del LED2. Varía en función de su lectura de su estado.
estado += "</body>"; //Fin del cuerpo
estado += "</html>"; //Fin del documento HTML
server.send(200, "text/html", estado); //Envío del formulario como respuesta al cliente
});
server.begin(); //Inicializa el servidor
Serial.println("Servidor HTTP inicializado"); //Imprime en el pto. serie que el servidor se ha inicializado
}
void loop() { //Declara la func. LOOP -Funciones del sketch que se repiten indefinidamente-
server.handleClient(); //El servidor comprueba las conexiones entrantes de clientes