Attendere segnale Escape in loop per inserimento dati in DB

Non ne vuole sapere di inserirmi i dati nemmeno cosi eppure dovrebbe essere ok!
avete qualche idea?

#include <Ethernet.h>
    #include <SPI.h>
     
    int sensorPin  = A0;    // select the input pin for the potentiometer
    int sensorPin2 = A1;      // select the pin for the LED
    int sensorValue = 0;  // variable to store the value coming from the sensor
    int sensorValue2 = 0;
    char buffer[1800];
    int time; 
    int newLineCount;
     
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    byte ip[] = { 192, 168, 1, 177 };
    byte server[] = { 192, 168, 1, 185 }; 
    Client client(server, 80);
       
    void setup()
    {
     
    Serial.begin(9600);
     
    delay(1000);
    }
     
  void loop()
     
     
     {
     
       
      if (client.connected()==false) {
          
        
  // wait a second so as not to send massive amounts of data
 
       Ethernet.begin(mac, ip);
       client.connect();
       
       sensorValue  = analogRead(sensorPin);   
       delay(1000);
       sensorValue2 = analogRead(sensorPin2);
       delay(1000);
       sprintf(buffer, "GET /arduino/connet.php?codice=98738&val1=%d&val2=%d HTTP/1.0",sensorValue ,sensorValue2);
     

       client.println(buffer);
       
      }
         
         if (client.connect()==true) { 
           newLineCount = 0;
 while( newLineCount != 2 )
 {
 if( client.available() )
 {
 char ch = client.read();
 if( ch == '\n' )
 {
 newLineCount++;
 }
 else if( newLineCount != 0 )
 {
 newLineCount--;
 }
 }
}
 
      client.stop();
      }
     
     }
  1. credo che dopo client.println(buffer); manchi il secondo a capo, quindi client.println();
  2. manca prima del doppio invio ma dopo la get, l'header host:blabla, alcuni sever rifiutano la richiesta

Ciao Lesto mi dispiace ma il problema non è quello che mi stavi dicendo te perchè le ho provate tutte ma lo sprintf all'interno del loop non funziona. se invece di usare sprintf con valori presi dalle variabili in real time uso valori statici come

client.println("GET /arduino/connet.php?codice=98738&val1=5555&val2=4444"); manda i dati a razzo uno dietro quell'altro quindi il problema non è nel aspettare la risposta il problema è nello sprintf non è che è un bug ? sotto linux ho scritto un file in c che mi fa vedere output dello sprintf e funziona la stringa è ok ma sotto arduino è un piangere..... possibile che non ci sia modo di fargli acquisire le variabili e inviare con un GET al server ??

prova a stampare via seriale il risultato della spritnf... un'altra cosa da fare sarebbe guardare nel log del web server per capire cosa è andato storto

ci ho guardato ecco cosa da 192.168.1.177 - - [10/Apr/2011:11:48:12 +0200] "n" 501 300 "-" "-"

che roba è?

dunque char buffer[1800]; non è un pò grande per la ram arduino? prova a usare 100 o 200, e usarla come variabile locale, non globale (se lo cketch non va allora il problema è la saturazione della ram)

secondo me il buffer non viene correttamente inizializzato, ma lo skecth non si blocca e quindi lo utilizzi con un indirizzo di memoria casuale che crea un poco di casini

gRANDE LESTONE!!! era quello il problema son stato ad ammattire e poi addirittura gli shell code mi dava sull'ultimo :D Resolved ora però mi chiedevo, è possibile che quando non cè la connessione di fargli salvare tutto sulla microsd?

si, nell'ide 22 c'è pure la classe apposta per le SD con tanto di esempi...