Problema strano con ethernet shield + WebServer

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 :slight_smile:
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

Quale scheda ethernet?
Ciao Uwe

uwefed:
Quale scheda ethernet?

Buongiorno
la ethernet shield quella di arduino originale. C'è scritto proprio ethernet shield nel riquadro bianco con il simbolo dell'infinito con dentro il - e il +.

Grazie

Ho scoperto ora che se quando di inchioda si lascia li (non so quanto) e si riprova dopo (in questo caso ho riprovato dopo circa 20minuti) funziona tutto normalmente.
Come se si impallasse qualcosa.
A questo punto probabilmente è un problema software... appena ho un secondo analizzo da questo punto di vista...

Buona giornata

Sono finalmente riuscito a guardare il tutto... escludo che sia un problema software.
Qualche idea?

Hai provato a fare delle ricerche qui sul forum ... perché mi ricorda un problema molto vecchio che, in teoria, doveva essere stato risolto ... ::slight_smile:

Ma è una Ethernet (W5100) o una Ethernet 2 (W5500)?

Guglielmo

gpb01:
Hai provato a fare delle ricerche qui sul forum ... perché mi ricorda un problema molto vecchio che, in teoria, doveva essere stato risolto ... ::slight_smile:

Ma è una Ethernet (W5100) o una Ethernet 2 (W5500)?

Guglielmo

Scusa il ritardo... non ho più avuto tempo di andare avanti con questo progetto. Sempre di corsa...
Si ho cercato... ma forse non cerco le parole giuste... non ho trovato nulla.
E' un W5100. Magari ora provo a cercare aggiungendo questa sigla...

Se ti viene in mente qualcosa...
Grazie

Forse ho trovato...
Potrebbe essere questo

Era questo che ti ricordavi?

Appena ho un attimino modifico per verifico se questo risolve il problema e vi faccio sapere
Grazie