Go Down

Topic: [RISOLTO] AIUTO ETHERNET SHIELD (Read 4658 times) previous topic - next topic

maxvetro

ok lo faccio subito.. ho anche creato un unica pagina .php che esegue tutte e 3 le pagine che prima chiamavo ; vedo di passargli meno byte possibili

maxvetro

pablos approfitto della tua gentilezza ma mi sto perdendo ..

Lato server io ricevo un numero da 0 a 31 , lo converto in binario .. ok capisco i 5 ingressi in che stato sono ... fatto

mi perdo in ARDUINO

Code: [Select]

  read1 = digitalRead(in1);
  read2 = digitalRead(in2);
  read3 = digitalRead(in3);
  read4 = digitalRead(in4);
  read5 = digitalRead(in5);


queso come lo coverto in numero int da 0 a 31 ?

maxvetro

Code: [Select]

val_input = 0;
 
  if ( digitalRead(in1) == HIGH ){
    val_input = val_input + 1;
  }
 
  if ( digitalRead(in2) == HIGH ){
    val_input = val_input + 2;
  }
 
  if ( digitalRead(in3) == HIGH ){
    val_input = val_input + 4;
  }
 
  if ( digitalRead(in4) == HIGH ){
    val_input = val_input + 8;
  }
 
  if ( digitalRead(in5) == HIGH ){
    val_input = val_input + 16;
  }
 
 
  Serial.println(val_input);
 



non so se è il metodo giusto ma funziona !

pablos

#33
May 06, 2012, 08:03 pm Last Edit: May 06, 2012, 08:07 pm by pablos Reason: 1
ero a fare pappa :)

ipotizzando tutte le in a 1 rispettivamente sarebbe
in1           in2           in3            in4           in5
1 ( x16 ) + 1 ( x8 ) + 1 ( x4 ) + 1 ( x2 ) + 1 ( x1 )
16+8+4+2+1=31
no comment

maxvetro

Quote
ero a fare pappa


ci mancherebbe !!! :)

ok perfetto ! ma a questo punto altro tasto dolente per me.. come concateno le stringhe per risparmiare memoria ??


Code: [Select]


// risultato = numero da 0 a 31 in base agli ingressi ==> perfetto !

    client.print("GET /prova_semplice.php?seriale=18102005&val=")
    client.print(risultato);
    client.print(" HTTP/1.0 HOST: tech-alarm.it");
    client.println();
   



questo vorrei diventasse :


Code: [Select]


// risultato = numero da 0 a 31 in base agli ingressi ==> perfetto !

    client.print("GET /prova_semplice.php?seriale=18102005&val=risultato HTTP/1.0 HOST: tech-alarm.it");
    client.println();
   


ma come si mette una variabile dentro le virgolette ??

in C++ uso

[("GET /prova_semplice.php?seriale=18102005&val=%@ HTTP/1.0 HOST: tech-alarm.it"),risultato];

ma qui non funge

pablos

#35
May 06, 2012, 08:18 pm Last Edit: May 06, 2012, 08:21 pm by pablos Reason: 1
risultato lo converti in stringa

int val=31

(String)val non lo metti tra ""

qui non avevi fatto così ?
client.print("&in1=");
   client.print(read1);
metti un + dovrei provare :) non ne sono certo
no comment

maxvetro

si ok ! lo converto in stringa ma posso in unica linea chiudere e riaprire le virgolette ?

Code: [Select]

client.print("GET /prova_semplice.php?seriale=18102005&val="risultato" HTTP/1.0 HOST: tech-alarm.it");
client.println();


cosi ?

pablos

#37
May 06, 2012, 08:22 pm Last Edit: May 06, 2012, 08:25 pm by pablos Reason: 1
client.print("GET /prova_semplice.php?seriale=18102005&val=" + risultato + " HTTP/1.0 HOST: tech-alarm.it");
oppure così se risultato non è una stringa
client.print("GET /prova_semplice.php?seriale=18102005&val=" + (String)risultato + " HTTP/1.0 HOST: tech-alarm.it");
no comment

maxvetro

e ti giuro che ho cercato come un pazzo in rete ma il simbolo + proprio non lo ho trovato.... ok provo grazie ancora

:smiley-sweat:

maxvetro

Scusa se ti angoscio questa sera !

Code: [Select]


  String valore = String(val_input);
 
  Serial.println(valore);
 
 
 
  if (client.connect(server, 80)) {
    client.print("GET /prova_semplice.php?seriale=18102005&val_input="+valore+" HTTP/1.0 HOST: tech-alarm.it");
    client.println();
   
    Serial.println("connesso");
   
    client.stop();
    client.flush();
   
    delay (1000);
   
  }



Dal serial monitor leggo il valore da 0 a 31 in base agli ingressi in modo corretto , si connette ma la pagina in PHP non si aggiorna

ho provato dal browser

http://........./prova_semplice.php?seriale=18102005&val_input=10

e funziona

quindi la stringa che invia arduino non va.....

uffa !!!

pablos

#40
May 06, 2012, 08:54 pm Last Edit: May 06, 2012, 08:57 pm by pablos Reason: 1
Se spezzi in 3 client print
Indirizzo
&valore
HTTP 1.1
Funzia?

Così dovrebbe andare, poi correggi se riesci a inviare in un unica riga
no comment

maxvetro

NOOO!! avevo appena provato quindi ho toccato altro !!! uffa cerco l'errore.. scusa

lucadentella

Ciao

sicuramente la parte "Host:..." va inviata come nuova riga (quindi con un -a capo- nel mezzo)
E alla fine devi inviare una riga vuota...
lucadentella.it

pablos

Magari sono quei + che non gli piacciono, si tratterebbe di preparare la stringa e di inviare con client.print la stessa completa
no comment

maxvetro

Nulla l'unico modo di farlo fungere è questo :

Code: [Select]

    client.print("GET /prova_semplice.php?seriale=18102005&val_input=");
    client.print(valore);
    client.println(" HTTP/1.0");
    client.println("HOST: tech-alarm.it");
    client.println();


Grazie ragazzi




P.S.

Ciao Luca seguo sempre il tuo sito... complimenti !!

Go Up