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
Visualizzazione post con etichetta bootstrap. Mostra tutti i post
Visualizzazione post con etichetta bootstrap. Mostra tutti i post

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.

sabato 1 agosto 2015

Il primo progetto di acquisizione dati




Ho iniziato la progettazione del mio primo sistema di acquisizione dati con Raspberry PI e Arduino. L'idea è quella di avere una rete di sensori di acquisizione che trasmettono i dati ad una centrale che tramite rete ethernet comunica con un server per la memorizzazione.

I principali componenti sono:

- uno o più rilevatori
- un ricevitore
- un server DB per la memorizzazione
- un server WEB/APP per l'acquisizione e il monitoraggio in remoto

Ecco lo schema:



Un pò più in dettaglio...

RILEVATORI

Possono comunicare i dati con diverse modalità:

- wireless RF-433 verso il ricevitore
- ethernet verso il ricevitore
- USB verso il server

Possono essere delle schede Arduino, Raspberry o altro..
In funzione del tipo di comunicazione utilizzano ulteriori schedine di interfaccia e/o led di controllo.

RICEVITORE

Riceve i dati via wireless RF-433 o via ethernet.
Tramite ethernet trasmette i dati per la memorizzazione al server WEB/APP

E' costruito con una scheda Arduino, sulla quale è montato lo Shield Ethernet e il ricevitore wireless RF-433.
Sono presenti dei led di controllo.

SERVER WEB/APP

Riceve i dati dal ricevitore tramite ethernet o da eventuali sensori collegati direttamente all'USB.
Memorizza i dati sul server DB
Esegue il software WEB per monitoraggio remoto

Il server WEB/APP scelto è il famoso e comune Apache HTTPD, installato su Raspberry, sul quale gira la distribuzione linux Fedora.

Il software di monitoraggio è scritto in linguaggio PHP con interfaccia Bootstrap / HTML5, fruibile anche da dispositivi mobile.

SERVER DB

Memorizza fisicamente i dati ricevuti dal server WEB/APP.

Il software scelto come motore DB è Mysql Community Edition e verrà installato sullo stesso Raspberry dove risiede il server WEB/APP