Blog migrato su nuova piattaforma

Disclaimer

Prestare sempre attenzione a seguire le indicazioni fornite in questo blog, soprattutto se si tratta di apparecchiature elettriche collegate alla tensione di 220V. Non mi ritengo responsabile di danni causati dall'aver seguito i consigli qui pubblicati.
Grazie

giovedì 10 marzo 2016

Acquisizione dati - Diamo uno sguardo ai dati...

Adesso che il mio sistema è imbastito ed abbiamo già un paio di sensori che permettono una raccolta di dati, è arrivato il momento di vedere qualcosa.

Ho quindi implementato una piccola applicazione web in PHP che permette la lettura e la visualizzazione tramite browser dei dati acquisiti.

Alcuni dettagli tecnici:

- linguaggio di programmazione PHP 5 e rendering in HTML5
- motore database MARIADB (la versione indipendente del famoso MYSQL, ormai acquistato dalla Oracle)
- interfaccia sviluppata con il framework Bootstrap v.3
- libreria Google Charts per l'implementazione dei grafici
- utilizzo delle librerie Javascript jQuery e jQuery-UI

Per adesso l'interfaccia è molto semplice; il suo primo obiettivo è quello di permettermi di verificare che i dati vengano acquisiti correttamente.

Quello che ho sviluppato è una semplice homepage che mostra due grafici che indicano:

- la curva di produzione giornaliera dell'IMPIANTO FOTOVOLTAICO (link)
- gli ultimi minuti di rilevazione del GAS METANO con link a pagina di dettaglio giornaliero (link)

Dal grafico della produzione fotovoltaica si può notare un dato anomale...nelle ore notturne la produzione sembra essere costante e maggiore di 0 (cosa naturalmente impossibile...). A detta dell'assistenza, questo problema sembra essere dovuto alla potenza reattiva dovuta alla scarica dei condensatori dell'inverter

(oggi è stata una buona giornata per i pannelli...si sono raggiunti i 2Kwp)




Sotto ogni grafico viene visualizzato il dato in tempo reale.

La pagina ha una funzione di autorefresh per permettere la visualizzazione realtime dei dati.

Ho iniziato anche ad impostare una pagina di login per implementare delle funzionalità accessibili solo con utente e password


L'applicazione gira sul Raspberry PI, dove è installato il web server Apache 2. E' raggiungibile da rete locale (ovviamente) ma anche da internet tramite un opportuno NAT sul router di casa e con la gestione di un dominio Dynamic DNS per la mappatura dell'indirizzo IP pubblico dinamico della mia rete di casa.

A questo scopo sto utilizzando il servizio offerto da NO-IP, che gratuitamente offre la gestione di 3 nomi dominio. Un punto a favore è dato anche da un client linux che permette in automatico di aggiornare i DNS ogni volta che cambia l'ip pubblico della mia rete.

martedì 8 marzo 2016

Acquisizione dati - Produzione impianto fotovoltaico




Il secondo tipo di dato che voglio acquisire con il sistema di monitoraggio che sto cercando di mettere in piedi con il poco tempo che ho a disposizione (la frequenza di aggiornamento del blog la dice lunga...) è la rilevazione della produzione dell'impianto di pannelli fotovoltaici che ho installato sul tetto di casa.

L'impianto è un 3 kWp composto da moduli svizzeri SUNAGE 250, con inverter AROS SIRIO

Insieme all'impianto mi è stato anche fornito un piccolo impianto di monitoring, composto da una pinza amperometrica e un ricevitore/display wireless. La pinza amperometrica trasmette al display, attraverso un opportuno trasmettitore, il dato di produzione istantanea rilevato dall'inverter; il display, oltre a farlo vedere in tempo reale, lo memorizza in un piccolo database sqlite interno e lo storicizza. Il bello di questo ricevitore è che, tramite connessione usb, può essere interfacciato ad un PC Windows per la visualizzazione e lo scarico dei dati in formato excel.

Il sistema in questione è un prodotto commercializzato e chiamato OWL

http://www.theowl.com/energy-monitors/standalone-monitors/owl-usb/


In particolare il mio è il modello OWL+USB CM160.

Purtroppo questo modello ha il problema di rilevare la potenza reattiva trasmessa dall'inverter quando è spento...quindi quando i pannelli sono "spenti" (di notte, ad esempio) il sistema rileva sempre 240W.

Per il mio scopo ho la necessità di connettere il ricevitore, tramite USB, al Raspberry. Nativamente questo non è supportato e i driver ufficiali non ci sono, ma girando su internet ho trovato questa ottima interfaccia per linux: EAGLE-OWL https://github.com/cornetp/eagle-owl

Compilando ed installando il software direttamente sul Raspberry si ha a disposizione un processo in background che permette di rilevare il CM160 connesso all'usb e rendere disponibile il database dei dati acquisiti.

Ecco la shell del Raspberry con i file di Eagle-Owl e i database connessi:


Il processo viene mandato in esecuzione in background all'avvio del Raspberry. Ho quindi creato un piccolo script in php che legge il database CM160 e scrive sul database mysql del mio sistema di monitoraggio. In questo modo posso storicizzare tutti i dati di produzione (il CM160 ha una memoria storica di un paio di mesi...) e renderli disponibili ad esempio ad un'interfaccia web che ne permette la visualizzazione.

Questo script viene mandato in esecuzione ogni minuto dal Raspberry (tramite task cron standard). In questo modo avrò a disposizione il dato di produzione aggiornato ogni minuto.