Buongiorno,
come qualcuno di voi saprà, ho costruito un datalogger per il mio impianto fotovoltaico.
I componenti utilizzati sono:
- Arduino mega 2560
- Ethernet shield
- Un led:
- diventa rosso se ci sono problemi
- diventa verde quando salva un dato sull SD
- diventa blu quando viene fatta una richiesta al webserver
- un buzzer che fa suoni vari quando ci sono problemi (per sapere quale problema c'è)
- un sensore di luminosità
Ogni 5 secondi vengono registrati tutti i dati dell'inverter (una ventina) più altri dati
Arduino è collegato all'inverter tramite seriale.
Tramite webserver una pagina mi restituisce un json con tutti i dati
La mattina alla prima lettura del giorno, viene inviata una email con il riassunto dei dati del giorno prima.
Arriviamo al problema
- Appena acceso tutto OK (/pagina json compresa)
- Anche a distanza di giorni lettura seriale+datalogger OK
- saltuariamente la pagina che mi restituisce il json non risponde più e la va in timeout. Fino a quando non riavvio arduino non funziona più (non parte nemmeno l'email giornaliera), ma il datalogger continua a funzionare. Resettato ricomincia a funzionare tutto correttamente
L'errore si presenta a volte dopo una decina di ore a volte prima.
Adopero solo char* no String
Non ci sono perdite di memoria da nessuna parte (tramite freememory vedo che la memoria scende e poi risale ritornando al valore iniziale esattamente come mi aspetto).
Quando il webserver di inchioda, se faccio una richiesta tramite web il led non si accende di blu, segno che non arriva nessuna richiesta.
Memoria libera ne ho in abbondanza
Copiare qui tutto il codice sarebbe una follia (sono parecchie migliaia di linee)
Conoscete qualche incompatibilità o qualche problema noto della ethernet shield?
Suggerimenti?
Grazie