Go Down

Topic: [RISOLTO] AIUTO ETHERNET SHIELD (Read 4964 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy