[SOLUCIONADO]OBTENER IP X COMDS AT Y OBSERVARLA EN HTML X LA PAGINA DEL ESP8266

Buenas; Estoy mandando con mi arduino uno comandos AT al modulo ESP8266 y se logra programar bien, de tal manera que cuando se va la luz y vuelve se programa solo el ESP8266 con la programación del arduino en void setup.

Ahora cuando se observa el monitor serial en el IDE de arduino al mandar los comandos almacenados en void setup() (con lo que le manda el arduino uno ya programado) al pasar por el comando AT+CIFSR se ve escrita la ip en el monitor serial.

La gran pregunta es ¿ Como puedo hacer para que esa IP se observe en HTML que se programa en el HTML mandado por el ESP8266?

Segui hasta llegar hasta acá el tutorial de http://www.prometec.net/servidor-web-esp8266/

Pero usando arduino uno definiendo la comunicacion serial con el ESP8266 en los pines 3 y 2.
SoftwareSerial BT1(3, 2); // RX | TX

Supongo que cualquier valor que aparece en el monitor serial deberia poder ser fácil de mostrar en el HTML generado por el ESP8266.

(OJO ESTO NO ES EL CODIGO COMPLETO ES SOLO PARA EXPONER MI DUDA)

void webserver(void)
{ http("");
http("");
http(“LECTURAS ANALOGICAS.”);
http("<meta http-equiv=“refresh” content=“15”>"); // Refresco
http("

Situacion Ambiente

");

!AQUI DENTRO DEL CUERPO DEL HTML QUIERO QUE SE OBSERVE LA IP!

for (int analogChannel = 0; analogChannel < 6; analogChannel++)
{ int sensorReading = analogRead(analogChannel);
http(" analog input “);
http( String(analogChannel));
http(” is “);
http(String(sensorReading));
http(”
“);
}
http(”

La pagina se actualiza cada 15 segundos.

");
delay(1);

Serial3.println(“AT+CIPCLOSE=0”);
}

(OJO ESTO NO ES EL CODIGO COMPLETO ES SOLO PARA EXPONER MI DUDA) ver el enlace de prometec

Hola rgmosqueda007, bienvenido al foro.
Para comenzar, debes leer las normas del foro, porque has cometido numerosas faltas al presentar tu problema.
1. enlace debe llevar tag
2. código debe llevar tag

Te invito a que veas el foro, y entiendas como se postean códigos y enlaces al igual que fotos.
Todo explicado en las normas que encuentras al comienzo de cada foro.

La respuesta a tu consulta es más o menos fácil.
Si miras esta parte del código y de paso observa como yo posteo el código usando este tag </> arriba del emoticon :slight_smile:

http("    analog input ");
              http( String(analogChannel));
              http(" is ");
              http(String(sensorReading));
              http("
");

cuando usas String(variable), y lo introduces a http() estas enviando o creando el comando previo para visualizar algo.
Entonces lo que debes hacer es enviar al ESP8266 el comando AT+CIFSR y guardar la respuesta o sea leer la respuesta con BT1.read() y almacenarla en una variable string.
Luego armas como quieres presentarla y listo.
Como no se que librerías estas usando, no puedo decirte mas pero estoy seguro que el comando para mostrar la ip esta disponible.

Hola ya revisando logré obtenerla solo que no use BT1.read(). Lo que realicé fue que con atuya del comando “AT+CIPSTA?” que da la ip se escribe en el puerto serie BT1.read(). y recupero con lo siguiente(las variables las declaro tipo chart si no nos da el numero ASCII, si las declaras como int si quieren prueben):

String GetLineWIFI()
  {   String S = "" ;
      if (BT1.available())
         {    char c = BT1.read(); ;
               while ( c != '\n' )            //Hasta que el caracter sea intro
                 {     S = S + c ;
                       delay(25) ;
                       c = BT1.read();
                       if (S.startsWith("+CIPSTA:ip")) { IP = S.charAt(12);}
                       if (S.startsWith("+CIPSTA:ip")) { IP1 = S.charAt(13);}
                       if (S.startsWith("+CIPSTA:ip")) { IP2 = S.charAt(14);}
                       if (S.startsWith("+CIPSTA:ip")) { IP3 = S.charAt(15);}
                       if (S.startsWith("+CIPSTA:ip")) { IP4 = S.charAt(16);}
                       if (S.startsWith("+CIPSTA:ip")) { IP5 = S.charAt(17);}
                       if (S.startsWith("+CIPSTA:ip")) { IP6 = S.charAt(18);}
                       if (S.startsWith("+CIPSTA:ip")) { IP7 = S.charAt(19);}
                       if (S.startsWith("+CIPSTA:ip")) { IP8 = S.charAt(20);}
                       if (S.startsWith("+CIPSTA:ip")) { IP9 = S.charAt(21);}
                       if (S.startsWith("+CIPSTA:ip")) { IP10 = S.charAt(22);}
                       if (S.startsWith("+CIPSTA:ip")) { IP11 = S.charAt(23);}



                       
                  }
                return( S ) ;
         }

Despues lo recupero en HTML de esta manera:

            escribir(String(IP)+String(IP1)+String(IP2)+String(IP3)+String(IP4)+String(IP5)+String(IP6)+String(IP7)+String(IP8)+String(IP9)+String(IP10)+String(IP11));
        escribir(" </em></p></FONT></body></html>");
        
       delay(1);
       BT1.println("AT+CIPCLOSE=0");
       delay(500);
    }

Si alguien me puede ayudar a realizar un bucle para esto se lo agradecería, ya que he empezado apenas.

y gracias surbyte tus comentarios me sirvieron como guía.
Saludos.

Yo te recomendaría que cambies tu forma de trabajar.
Si me permites y usas este tutorial verás que fácil se vuelve todo.
Tutorial para usar ESP8266 como Arduino