Go Down

Topic: Ripetere un'azione (Read 1 time) previous topic - next topic

contecavour

Ciao sono riuscito a fare una foto e metterla su un web server via POST.
Adesso mi chiedo.
Volessi farne una seconda?
Io mi collego al Server con

Quote
if (client.connect(serverName, 80))


poi alla fine faccio

Quote
if (!client.connected()) {
   Serial.println();
   Serial.println("disconnecting.");
   client.stop();


Mi piacerebbe nel loop() premere "f" dal serial monitor e rifare una foto, ma il client.connetc non  mi permette più di connettermi, eppure sono sconnesso.

Idee?
Grazie

Michele Menniti

Ciao, nell'altro Topic ti ho scritto come eliminarlo. Grazie.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

contecavour


PaoloP

#3
Jul 17, 2012, 11:52 am Last Edit: Jul 17, 2012, 11:54 am by PaoloP Reason: 1
Devi usare il comando Serial.available() e poi Serial.read()
--> http://arduino.cc/en/Reference/Serial

Una volta letto il comando fai compiere ad Arduino una qualunque azione con in IF o uno SWITCH CASE.
Trovi degli esempi nell'IDE.

p.s. Prova a cercare nel forum qualcosa tipo "leggere da seriale". Dovrebbero esserci altre discussioni simili.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

contecavour

Quello lo faccio gia.

MA non riesce a riconnettersi.

Code: [Select]
if (inChar == 'f')
  {
    ritorno = -1;     
    ritorno = takefoto();
  } 


MauroTec

Io quel codice non lo capisco.
Prima alla variabile "ritorno" assegni il valore -1 e subito dopo gli assegni il valore ritornato dalla funzione takefoto().

Anche questo codice non mi convince
Code: [Select]

if (!client.connected()) {

connected() dovrebbe ritornare vero se è gia connesso e falso se disconnesso, quindi la seconda volta non dovrebbe eseguire ciò che c'è dentro la if, poi dici di connetterti specificando il server name e la porta ma nel codice seguente questi argomenti non li specifichi, vuoi provare a specificarli? magari funziona.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

contecavour

Ieri ha funzionato senza problemi.
Quello che non capisco è perchè a volte va e a volte non va.

Allora

Quote
Io quel codice non lo capisco.
Prima alla variabile "ritorno" assegni il valore -1 e subito dopo gli assegni il valore ritornato dalla funzione takefoto().


Code: [Select]
if (inChar == 'f')
  {
    ritorno = -1;     
    ritorno = takefoto();
  }


Questa istruzione è nel ciclo loop.
Se premo f fa una nuova foto.
Inizializzo a -1 perchè la funzione takefoto è complessa e fa molte cose e se non riesce a connettersi neanche alla rete, non riesce neanche a settare il valore di ritorno. Cosi trovo -1.


Quote
connected() dovrebbe ritornare vero se è gia connesso e falso se disconnesso, quindi la seconda volta non dovrebbe eseguire ciò che c'è dentro la if, poi dici di connetterti specificando il server name e la porta ma nel codice seguente questi argomenti non li specifichi, vuoi provare a specificarli? magari funziona.


Tutte le variabili (mac address, server name, porta) vengo settate all'inizio del programma normalmente, ma quelle hanno smepre funzionato. E' solo se rifaccio la foto che a volte non riesco a collegarmi. Alla fine del post, faccio un flush e un close.

Su seriale funziona tutto è solo sulla connessione al server che a volte non riesce a riconnettersi, ma a volte si. Come scheletro ho provato l'esempio di Adafruit che scatta la foto quando determina movimento.

N





Go Up