Arduino se Descontrola

Buenas Colegas, tengo un proyecto donde envio mis coordenadas a una base de datos en Mysql, utilizo el SIM808, el cual trae para GPS/GSM. La idea es estar mando coordenadas al server por medio del metodo GET

El problema que tengo esque llamo la siguiente función en el loop

     void enviarDatos(){
     String id = "456789";

      Serial.println(lat+" "+lon+" "+id);
  
      myGsm.println("AT+HTTPPARA=URL,http://miServer/getArduino.php?latitud="+lat+"&longitud="+lon+"&dispositivo="+id);
      delay(1000);
      printSerialData();

      myGsm.println("AT+HTTPACTION=0");
      delay(500);
      printSerialData();

      }

Al realizar este proceso en el Loop, este deberia de repetirse hasta el final de los dias, pero lo que pasa es que aveces solo me envia latitud, o longitud, e incluso aveces me da las coordenadas incompletas, y si lo dejamos mas tiempo se empiezan como a combinar todas las instrucciones, al punto que ni siquiera envia los datos

Queria saber si alguno tiene alguna clase de sugerencia, no se si tendre que realizar algun tipo de FLush cada cierto tiempo, porque pareciera que mezcla datos anteriores con los nuevos.

Gracias por cuaquier aporte, Saludos

ArduMyth Entiendo, ahora bien te comento que he variado los Delays y les he puesto hasta 50 segundos o mas, y despues de un rato se descontrola.

Lo que mas me parece extraño es que muchas veces me manda las coordenadas incompletas por ejemplo una longitud asi -865656. (Ojo hasta puntos me aparecen)

Y efectivamente como lo comentas es algo sencillo recogo los parametros por GET y listo inserto a la BD, y tambien llamo el URL para cada recorrido.

En cuanto a los que me indicas de pasar los parametros con & ?, si tienes algun ejemplo claro que me puedas facilitar para optimizarlo seria de gran ayuda

Saludos,

El descontrol suele tener que ver con el abuso de estas cosas

   String id = "456789";

Si usas muchas variables del tipo String y nunca las inicializas, o éstas pierden el control, van dejando poco a poco sin memoria al arduino.

Lo que debes hacer es monitorear en todo momento la memoria libre que tengas. Hay una rutina simple que te permite hacerlo

Arduino Available Memory

Coloca esto en tu código de modo que puedas verlo sea por monitor serie o en la pagina Web. En algun momento te quedas sin RAM, luego investiga que rutina es la culpable.
Trabajo detectivesco o debugging.

Por el momento ya realice algunas de sus sugerencias, como el de la delcaracion de la variable String en el loop, por le momento delcare la variable globlar y la soobrescribo en mi ciclo y si he notado una mejoria interesante.

En cuanto tenga mas avances les estaré informando.

Saludos