Buongiorno a tutti.
Più che suggerimenti di codice cerco idee e meglio ancora link a qualche sito dove potermi documentare. Ho fatto delle ricerche (anche inglese) ma non sono sicuro di aver trovato quello che mi serve.
Magari esistono delle librerie....
Io ho dei valori di temperatura, umidità, pressione ecc. ecc. Numeri insomma da diversi sensori con al massimo un decimale.
Questi valori variano nel corso delle 24 ore e devo memorizzare il minimo e massimo con ora e data del giorno.
Stessa cosa per il mese, ci sarà un minimo e massimo di ogni dato che nell'arco dei 30 o 31 giorni devo memorizzare con sempre relativa ora e data.
Idem per l'anno.......
Attualmente i dati istantanei li invio tramite FTP a un server e potrei fare con PHP la memorizzazione dei minimi e massimi come spiegato sopra.
Ma..... Preferirei usare Arduino (se il codice non è troppo ingombrante) per ricavare i suddetti valori.
Si in effetti la cosa è molto ovvia come hai scritto tu.
Nell'arco delle 24h il problema non c'è, per me intendo.
Mi incasino per i massimi/minimi mensili e annuali.
Devo ovviamente salvare tutto su EEPROM e allo scadere del giorno controllare con il precedente come hai scritto tu sopra valore per valore.
Questo per il MESE.... Alla mezzanotte dell' ultimo giorno del mese devo azzerare e stesso procedimento per l'anno.
Mi sa che "sfinisco" la EEPROM del controllore.
Credo sarà un continuo scrivi e leggi.
Mmm.... Tanto codice secondo me.
Non ci sta tutto nel mio piccolo 328P.
Ma va, sono poche decine di righe di codice e ... la EEPROM ha una vita garantita di 100'000 riscritture per singolo byte ... se ne fai una al giorno ... dura oltre i 270 anni
Piuttosto ragiona bene su quante variabili ti servono realmente e quando/come aggiornarle.
Le variabili da gestire sono 8, alcune hanno minimi e massimi e altre ha senso solamente il valore massimo.
Tutto per un totale di 40 variabili circa comprese le ore e date associate.
I valori dei sensori con un decimale li moltiplico per 10 in modo da avere un intero da assegnare alla cella di memoria della EEPROM ma ora e data (hh:mm:ss gg:mm:aaaa).... Tanto codice nella mia testa.
Ad ogni lettura sensori si effettua il controllo sui massimi/minimi registrati (le letture non intaccano la EEPROM) e, se il caso, si effettua l'aggiornamento (che avverrà poche volte).
Quando cambia il giorno si trasmettono i dati giornalieri e si azzerano.
Quando cambia il mese si trasmettono i dati mensili e si azzerano.
Quando cambia l'anno si trasmettono i dati annuali e si azzerano.
Registrare i secondi non credo sia fondamentale, per cui l'ora può essere un intero espresso in minuti, da 0 (mezzanotte) a 1439 (le 23:59).
Ok vi ringrazio, mi ero fatto mille problemi ma in realtà me l'avete resa chiara e semplice.
Butto giù gli appunti di quanto detto e provo a mettere in pratica.
Dovrò cambiare hardware perché sono al limite con lo spazio per lo sketch ma non è un problema.
... già stanno studiando altri formati ... già parecchi sistemo ora stanno usando int64_t per "time_t" al posto del classico int32_t ... potrebbe essere una buona soluzione.