Problemas al refrescar web esp8266


hola buen dia,
estoy haciendo pruebas con el modulo esp8266 y no logro obtener los resultados que necesito, que por el momento es lo siguiente:
-escribir en el navegador: http://ip/temperatura1, y recibir los datos correspondientes temperatura1,
por ahora solo estoy colocando un 38 que es la temperatura ambiente actual.

bueno, cuando escribo por primera vez http://ip/temperatura1 en el navegador, todo funciona muy bien, el problema viene cuando lo intento de nuevo, y el resultado que obtengo es una notificacion diciendo que la conexion ha sido rechazada...

se reinicio el modulo, puedo de nuevo ver los datos...

el codigo es el siguiente: (tomando como base ejemplos de la web de jopapa)
code: [select]
#define debug true
#define ssid "test"
#define pass "test"
void setup()
{
  serial.begin(115200);
  serial3.begin(115200);
  senddata("at+rst\r\n",3000,debug);
  senddata("at+cwmode=1\r\n",3000,debug);
  boolean connected=false;
  for(int i=0;i<5;i++){
    if(connectwifi()){
      connected = true;
      break;
    }
  }
  senddata("at+cifsr\r\n",3000,debug); // verificar direccion ip
  senddata("at+cipmux=1\r\n",3000,debug); // habilitar conecxiones multiples
  senddata("at+cipserver=1,80\r\n",3000,debug); // iniciar el servidor en el puerto 80
  delay(500);
  serial3.println("at+cifsr");

}

void loop()
{
  if (serial3.available())
  {
   //prueba de concepto aun no se tiene la variable temperatura
    if(serial3.find("temperatura1")){
      serial.println("se solicito temperatura ambiente");
      serial.println("temperatura ambiente: 38");
      http("<!doctype html>");
      http("<html>");
      http("<body>");
      http("38");
      http("</body>");
      http("</html>");
      delay(200);
      serial3.println("at+cipclose=0");//cerrar sesion tcp
    }
  }

}

string senddata(string command, const int timeout, boolean debug)
{
  string response = "";

  serial3.print(command); //enviar la cadena leida al modulo

  long int time = millis();

  while( (time+timeout) > millis())
  {
    while(serial3.available())
    {
      char c = serial3.read(); //leer el siguiete caracter
      response+=c;
    }  
  }

  if(debug)
  {
    serial.print(response);
  }

  return response;
}


boolean connectwifi(){
  //serial3.println("at+cwmode=1");
  string cmd="at+cwjap=\"";
  cmd+=ssid;
  cmd+="\",\"";
  cmd+=pass;
  cmd+="\"";
  serial.println(cmd);
  serial3.println(cmd);
  delay(2000);
  if(serial3.find("ok")){
    serial.println("conectado wifi");
    return true;
  }
  else{
    serial.println("no puede conectar wifi");
    return false;
  }
}


void http(string output)
{
  serial3.print("at+cipsend=0,"); // at+cipsend=0, num, iniciar sesion tcp
  serial3.println(output.length());
  if (serial3.find(">"))                       // si recibimos la peticion del mensaje
  {    
    serial.println(output);
    serial3.println(output);            //aqui va el string hacia el wifi
    delay(10);
    while ( serial3.available() > 0 )
    {
      if (  serial3.find("send ok") )    // busca el ok en la respuesta del wifi
        break;
    }
  }
}


adjunto capturas de pantalla de los resultados que obtengo tanto en la consola serie, como en el navegador

¿que podria ser?
estoy cerrando la conexion con la linea
serial3.println("at+cipclose=0");//cerrar sesion tcp
¿esta aqui el problema?
saludos

yo tenido problemas similares y en mi caso el fallo era la comunicación serie entre la placa y el arduino. finalmente optado por aprender lua y meter la página web en el modulo esp.


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Problemas al refrescar web esp8266


arduino

Comments