Ciao a tutti,
abbiamo da pochi giorni comprato un arduino YUN ed abbiamo realizzato un mini progetto in cui alcuni dati vengono periodicamente (anche più di una volta al minuto) inviati ad un server tramite il comando:
Process p;
p.begin(..);
p.addParameter(..);
p.run();
Abbiamo messo in funzione Arduino che ha funzionato per una decina d'ore per poi bloccarsi nella fase di invio dati (dopo il comando run). Riavviandolo più volte il blocco è avvenuto sempre più velocemente.
Dopo qualche giorno di riposo il gioco si è ripetuto, un funionamento più lungo seguito da altri più brevi.
In questa fase abbiam notato che possiamo raggiungere linux in ssh ed eseguire normalmente i comandi da shell.
Cosa ne pensate? quale può essere il problema?
Ciao Uwe, ci spiace per la tua sfera di cristallo e grazie per aver condiviso con noi la tua nostalgia.
Siamo alle prime armi con arduino ed abbiam pensato che scrivendo sul forum qualcuno con più esperienza avrebbe potuto indicarci una strada per individuare il problema.
Non abbiamo postato il codice perchè sono 10 righe e ci sembrava superfluo: lettura del valore, acquisizione data, invio dati. Ma se serve lo postiamo volentieri.
Grazie a chi ha la pazienza di aiutarci
Carlo e Benny
benman:
Ciao Uwe, ci spiace per la tua sfera di cristallo e grazie per aver condiviso con noi la tua nostalgia.
Siamo alle prime armi con arduino ed abbiam pensato che scrivendo sul forum qualcuno con più esperienza avrebbe potuto indicarci una strada per individuare il problema.
Non abbiamo postato il codice perchè sono 10 righe e ci sembrava superfluo: lettura del valore, acquisizione data, invio dati. Ma se serve lo postiamo volentieri.
Grazie a chi ha la pazienza di aiutarci
Carlo e Benny
La mia risposta voleva dire che mancano informazioni per poter capire e consigliarvi qualcosa.
@astrobeed
Sai anche Tu che dopo lo sai meglio .... La prossima volta Ti ascolto. promesso.
ok scusate, allora questo è il codice, e quando si blocca l'ultimo stamp sul monitor seriale è "avvio il processo". Se possiamo estrapolare altro per poter aggiungere informazioni importanti fateci sapere come, grazie per la pazienza.
#include <Process.h>
#define fotoresistenza A0
Process date;
String timeString;
void setup() {
pinMode(A0,INPUT);
Bridge.begin();
Serial.begin(9600);
}
void loop() {
delay(50);
int val = analogRead(fotoresistenza);
Serial.println(val);
// chiedo la data
date.begin("date");
date.addParameter("+%D %T");
date.run();
while (date.running());
while (date.available()>0) {
timeString = date.readString();
}
timeString.trim();
// Invio i dati al server
runCurlCons(timeString, val);
}
// Funzione che invia i dati al server
void runCurlCons(String dataOra, float value) {
Process p;
Serial.println("inizia il processo per l'invio dei dati");
p.begin("curl");
Serial.println("aggiungo --data");
p.addParameter("--data");
Serial.println("aggiungo i valori");
p.addParameter("key=key&data="+dataOra+"&val="+value);
Serial.println("aggiungo il sito");
p.addParameter("http://miosito.it/yun.php");
Serial.println("avvio il il processo");
p.run();
Serial.println("aspetto");
while (p.running());
Serial.println("finito");
}