Luigi Marchi Inserito: 24 maggio 2016 Segnala Inserito: 24 maggio 2016 Mi occupo di fotovoltaico e sono interessato a misurare produzione e consumi. Voglio pure memorizzarli, con un data_logger. Facile registrare dati con Arduino ? Certo che si, ma l'efficienza del sistema dipende dall'hardware utilizzato (shield + memoria SD) e dal software utilizzato. Quando Arduino è impegnato a catturare dati (es.: Pelelope) deve poter registrare i dati nel minor tempo possibile per non perdere impulsi. Questo software, messo a punto con un Arduino UNO e una shield Amazon (modello WINOMO), mi mostra quanto tempo occorre (pochi millesimi di secondo) per registrare una serie di dati (data e ora + 4 numeri) e consente di fare verifiche puntuali circa l'efficienza della shield utilizzata, della memoria SD e di quant'altro (indicativamente: FAT, marca e dimensione della SD, dimensione del file, ecc.).
Luigi Marchi Inserita: 24 maggio 2016 Autore Segnala Inserita: 24 maggio 2016 Il file "consumi.txt" registrato sulla memoria SD assume questa forma, su una sola colonna. Ma sono possibili variazioni sul tema. ora: 12-55 / giorno: 24-5-16 3000 3001 3002 3003 ora: 12-55 / giorno: 24-5-16 3004 3005 3006 3007 ora: 12-55 / giorno: 24-5-16 3008 3009 3010 3011
Luigi Marchi Inserita: 24 maggio 2016 Autore Segnala Inserita: 24 maggio 2016 La batteria dell'orologio (CRT) dovrebbe consentire una durata di anni, come accade nei computer domestici. Per modificare l'orario di default e per aggiornarlo, quando si cambia la batteria, serve un piccolo programmino (sketch) Arduino. Il mio, disponibile su internet, ma aggiornato con la visualizzazione su display seriale, è stato denominato "CRT_modifica_orario.ino". Lo posso postare nella sezione UP/Download.
Luigi Marchi Inserita: 24 maggio 2016 Autore Segnala Inserita: 24 maggio 2016 Ho riscontrato una perfetta registrazione dei dati sulle memorie SD testate, ma con differenze molto importanti nella velocità. Funziona solo con memorie con 9 contatti. Non funziona con quelle dotate di soli 8 contatti.
Livio Orsini Inserita: 24 maggio 2016 Segnala Inserita: 24 maggio 2016 Scusa Luigi, otresti spiegare a cosa si riferiscono i dati che riporti in esempio. Io vedo un numero progressivo ed ogni 4 compare anche ora minuto e data. Se non fai comparire i secondi la resgistrazione darebbe adito a confusione. Si potrebbe anche aggiornare solo ora e minuti, ma allora sarebbe meglio comparisse il nuovo orario solo quando cambia il minuto.
Luigi Marchi Inserita: 27 maggio 2016 Autore Segnala Inserita: 27 maggio 2016 Lo sketch di esempio, che ho postato, registra data/ora e 4 numeri progressivi di 4 cifre, in tempi rapidi. Si può aggiungere anche i secondi. Non l'ho messo per il solo motivo che non ci stava nei 16 caratteri del display. Si può utilizzare questo software, aggiornando il prelievo dei dati da dove serve, per effettuare la registrazione. Ad esempio registrare - ogni 5 minuti - i dati di produzione di un impianto fotovoltaico e quella dei consumi domestici (funziona così nei migliori software professionali delle centraline di monitoraggio). Nel mio caso lo scopo dello sketch Arduino è solo quello di verificare il tempo impiegato per fare - correttamente - la registrazione, o meglio una serie di registrazioni. Il dato evidenziato sul display, al termine di ciascuna registrazione, mi indica i millisecondi impiegati. In molti casi è inferiore a 10, in altri il doppio. E' tempo "perso" da Arduino che, come sappiamo, non riesce a fare più di una cosa alla volta. Perciò è importante verificare l'hardware che si utilizza. In sostanza questo è uno strumento di misura, ma la base del software può servire per sviluppare tante applicazioni, senza doversi "inventare" tutto ex novo. Anche lo sketch di aggiornamento dell'orario è molto utile e con qualche ritocco si può migliorare per facilitare l'inserimento dei dati.
walterword Inserita: 27 maggio 2016 Segnala Inserita: 27 maggio 2016 Registratore dai su ardruino = Logger ?
Luigi Marchi Inserita: 27 maggio 2016 Autore Segnala Inserita: 27 maggio 2016 Registrazione dati su SD con Arduino, cioè data logger. Proprio così. E' assai utile in tante applicazioni ed è facile trovare l'hardware necessario. Peraltro a buon mercato, come la gran parte dell'hardware che è stato studiato per Arduino. L'obiezione ricorrente è che è altrettanto facile (e decisamente più "moderno") archiviare dati su una data server, via Internet, con il vantaggio di fruire dei dati tramite smartphone, da parte di più utenti, ma i vantaggi del sistema tradizionale possono superare le obiezioni, valutando caso per caso. .
Luigi Marchi Inserita: 28 maggio 2016 Autore Segnala Inserita: 28 maggio 2016 Integrare la registrazione dati in un programma Arduino esistente è molto facile. Occorrono poche righe di codice. Come quello che ho utilizzato per registrare la produzione fotovoltaica, ogni 5 minuti: if (millis() > vecchio_orario + 300000) // sono passati 5 minuti: { vecchio_orario = millis(); file = SD.open("produzione.txt", FILE_WRITE); //File in scrittura: if (file) //Se il file è stato aperto correttamente: { file.println(""); //spazio/riga: file.print("ora: "); //Descrizione: file.print(ora, HEX); //Scrivo l'ora: file.print("-"); file.print(minuti, HEX); //Scrivo i minuti: file.print(" / giorno: "); // Descrizione: file.print(giorno_mese, HEX); //Scrivo il giorno: file.print("-"); file.print(mese, HEX); //Scrivo il mese: file.print("-"); file.print(anno, HEX); //Scrivo l'anno: file.println(" "); file.println(val1); //Scrivo numero produzione: file.close(); //Chiusura file: } }
Livio Orsini Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 E' un metodo molto rozzo, quello del polling. Meglio sarebbe legare l'evento all'interrupt di un timer, si risparmierebbero inutili iterazioni.
Luigi Marchi Inserita: 28 maggio 2016 Autore Segnala Inserita: 28 maggio 2016 I file di testo (.txt) prodotti con il registratore dati hanno caratteristiche davvero interessanti: 1) occupano pochissimi byte e in una SD di qualche giga ci stanno anni e anni di registrazioni; 2) si possono leggere con Excel (cliccare "apri con -> Excel") che lo carica nella colonna "A 3) con Excel si fanno ricerche rapidissime e grafici molto esplicativi. Come questo, relativo alla produzione degli ultimi 2 giorni del mio FV. Da notare il giorno 26 maggio con qualche velatura del cielo di contro al 27 maggio con cielo limpidissimo e un grafico molto "pulito".
Luigi Marchi Inserita: 28 maggio 2016 Autore Segnala Inserita: 28 maggio 2016 Interrupt o polling ? Bella domanda. Va valutato caso per caso. Nel mio ho sfruttato il loop velocissimo di Penelope, già oggetto di discussioni precedenti. La verifica ad ogni passaggio ha comportato un rallentamento della esecuzione del codice, ma senza conseguenze negative, come certificato dal grafico prodotto (peccato abbia una risoluzione scarsa, meno di 20k, ma posso postare l'intero foglio Excel).
Livio Orsini Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Quote Interrupt o polling ? Bella domanda Non tanto, e mai quando si tratta di eventi a tempo. In questo caso sempre e solo interrutpt. E' anche una questione di metodologia. Il polling è accettabile per eventi asincroni molto lenti rispetto al tempo di ciclo del main.
walterword Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 per fare le temporizzazioni usa il WTimer , sono timer software di ritardo all'eccitazione e alla diseccitazione . Naaaaaaa non capirete mai , continuate e sforzarvi di fare cose quando c'e' gia tutto pronto . Atteggiamento del progettista.programmatore di basso profilo
dott.cicala Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Certo che con questo atteggiamento così propositivo fai passare anche la sola curiosità a noi comuni mortali, umili, con capacità cognitive limitate e scarsa fantasia, cioè di basso profilo, nel solo cercar di capire cosa siano sti wtimers....probabilmente una rivoluzione copericana in ambito informatico.... Chi come me ha difficoltà nello scrivere la parola excell correttamente sa che Il privilegio di raggiungere le vette luminose del sapere è precluso a molti......a proposito.....cos'è excell?
Livio Orsini Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 C'è una discussione in questo forum dove Walter illustra, passo passo, la sua tesi di laurea basta su Arduino2 ed alcune schede di periferia per realizzare un sistema domotico controllabile da smarphone. La libreria WTimer, parte integrante del processo, se non ricordo male è stata caricata nella sezione Upload del forum. Strano che tu, Stefano, non ricordi; hai anche partecipato da subito alla discussione.
gabri-z Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Quote Chi come me ha difficoltà nello scrivere la parola excell correttamente .... Dott' , non rovinarTi il We ... (fine settimana) , ho trovato io come si scrive , forse cosi : Vecchiotto , ma non credo che abbiano cambiato il nome .... Quote Strano che tu, Stefano, non ricordi; hai anche partecipato da subito alla discussione Ricorda , ricorda , ma la lettura delle sole parole spesso inganna .....
Luigi Marchi Inserita: 28 maggio 2016 Autore Segnala Inserita: 28 maggio 2016 Il bello di Arduino è la semplicità dell'hardware. Il data logger è collocato su un Arduino UNO con pochi componenti di contorno, come il display seriale 2x16. Ovviamente Arduino sta "lavorando". Da notare le informazioni sul display relative a produzione (2.019) e consumi (284) espressi in watt.
dott.cicala Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Sì, lo ricordo....era una nota fra l'ironico e il sarcastico. Caspita dovrei leggere tutta quel malloppo per imparare ad usare excell? Continuo col mio abaco!
gabri-z Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Quote Caspita dovrei leggere tutta quel malloppo per imparare ad usare excell? NOO !Le due piccole in basso no , sono la licenza .
Livio Orsini Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Stefano sono sicuro che stai "posando" un poco. Excel è auto insegnante, pensa che riescono ad usarlo persino i ragionieri ed i geometri.
gabri-z Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 Mi sento offeso , io non lo so usare...
walterword Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 caro Luigi ..... quando le cose si fanno serie si passa oltre. Arduino ok , SD card e librerie ok e tutto il resto . Esistono computer completi di ethernet , usb, hdmi ....al sol costo di 17 euro . Certo , c'e' da lavorare , ma credo ne valga la pena . Supportano varie distro di linux per cui servizi e programmi , gratis. Server web, file system, databases , connettività Con arduino rischi di rimanere inchiodato al palo perchè se vuoi fare la differenza devi offrire servizi , per esempio voglio visionare il tuo logger da remoto tramite in mio android phone ....e tante altre cose . Arduino è semplice e da semplice fornisce servizi semplici che ormai non trovano più spazio . Sei ancora li a scrvere un timer col software quando avresti tutto gia pronto , costo del tempo , della manutenzione etc etc . Tra l'altro , sempre caro Luigi , oltre al WTimer ho anche spiegato per filo e per segno come utilizzare la SD card con arduino , cioe praticamente qualsiasi forma di struttura dati la scrivo e la leggo su SD card tramite puntatori . Sei indietro .....
walterword Inserita: 28 maggio 2016 Segnala Inserita: 28 maggio 2016 non ha senso scrivere e debuggare linee di codice quando con 4 righe fati tutto ed hai tutto sotto controllo .
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora