Archivi tag: monitoraggio tensione

Energy Meter

Finalmente, dopo solo 5 anni, sono riuscito a (quasi) finire il progetto dell’energy meter. Detta in poche parole, si tratta di un misuratore di energia Pzem-001 di provenienza Aliexpress (12 euro), collegato ad un ESP8266. Il microcontrollore, ogni 30 secondi circa, legge il valore di potenza, tenssione, corrente ed energia e li inserisce in un database.
Visto che c’era spazio, ho anche installato un sensore di tensione ed una sonda di umità e temperatura (DHT-22), in modo da rendere l’acquisizione dati il più completa possibile.Il sistema è alimentato con una batteria tampone, in modo da potere inviare allarmi in caso di mancanza dell’energia elettrica.

Allo stato attuale mancano una decina di saldature per finire tutto il lavoro, ma conto di finire quanto prima. I dati nel database sono poi processati da una serie di script PHP per generare grafici ed analizzare il consumo di energia elettrica nel tempo. Con questo “semplice” sistema mi sono reso conto che:
– l’investimento nei 5kW è stato necessario, spesso e volentieri “buchiamo” i 4kW di assorbimento, per periodi ben maggiori dei 3 minuti;
– la linea “contatore-quadro” è molto lunga e realizzata con cavi di sezione non adeguata. Questo comporta il fatto che quando l’assorbimento di corrente sale, la tensione scende (maledetto Ohm), fino a tensioni molto basse (sotto i 200V).
– l’andamento della tensione a parità di carico è interessante: il massimo di tensione è nelle ore diurne, quando la produzione dal solare è massima.

Progetti per il futuro:
– finire le 2o saldature che mi consentiranno di leggere la presenza di tensione in uscita dai sezionatori;
– implementare un po’ di “intelligenza” che invii allarmi in caso di mancanza di energia elettrica;
– implementare qualche algoritmo che sia in grado di capire se qualche cosa non va, ad esempio se abbiamo scordato il ferro da stiro o il forno acceso;
– implementare un allarme in caso di superamento di alcune soglie di assorbimento (sonoro, con un buzzer o su una APP).

CubieBoard: Monitoraggio presenza tensione

Nella nuova dimora accade, ogni tanto, che la fornitura di energia elettrica risulti un po’ ballerina. Ci sono stati dei casi di black-out molto prolungato che hanno messo a dura prova i miei UPS, portando le battarie all’esaurimento e creando qualche attimo di panico con il NAS.

Per questo ho deciso di implementare un sistema di monitoraggio della tensione di rete, che fosse in grado di:

  • rilevare l’assenza della tensione di rete;
  • comunicare via mail l’evento;
  • inviare mail periodiche in caso di perdurare del balck-out;
  • spegnere in modo graceful NAS.

La cosa è stata più facile sulla carta che non da vero, come sempre. In effetti ho dovuto lottare con le I/O della Cubieboard (come ho descritto in questo articollo).

CubieBoard. GPIO e che fatica!

Il rilevatore di tensione lo ho realizzato implementando uno schema che ho trovato in rete. Si tratta di utilizzare un piccolo trasformatore di tensione 220V -> 5V e di connetterlo ad un GPIO della Cubieboard attraverso un regolatore di tensione a 3.3V. Il trasformatore sarà collegato ad una presa di energia elettrica non servita da UPS. Al momento del black-out, la tensione in uscita dal trasformatore passa a 0 e lo stato logico del piedino di I/O della Cubieboard è 0. Lo schema è semplice ed efficace, solo che occorre mettere in conto che il trasformatore, consuma (pochissimo ma….).

IMG_20160417_105230

A questo punto ho quindi un sistema hardware che è in grado di creare un evento su un PIN della Cubieboard in caso di Black-Out. Il software è stato scritto in “bash” (strano vero?) . Lo script viene eseguito ogni minuto dal crontab e verifica lo stato del piedino di monitor. In caso sia a livello logico alto non succede nulla, in caso sia a livello 0 inizia una complessa routine per la gestione degli alert e degli eventi. Il funzionamento dello script si basa su alcuni files che vengono creati in /tmp/ e che contengono flag o timestamp per tenere traccia di quello che sta succedendo. Forse non è il modo migliore di programmare, ma questo è ciò che riesco a fare.

Una volta approntato il software è necessario configurare alcuni aspetti del sistema operativo, per fare in modo che le mail vengano inviate utilizzando Gmail. Per questo mi sono avvalso di una guida reperibile a QUESTO indirizzo.

Visto che avevo le mani  sulla tastiera, mi sono anche divertito a configurare l’applicazione Telegram sulla piattaforma Cubieboard. In effetti lo step due dello sviluppo del sistema sarà quello di abilitare anche il controllo bidirezionale del sistema via Telegram (per adesso è solo una idea, il tempo per lo sviluppo del codice e delle idee è sempre pochissimo).

Per quanto riguarda la programmazione in bash, il web è pieno di tutorial base o avanzati, basta sapere cercare un po’ su Google.

Per lo spegnimento del QNAP l’unica strada percorribile è quella di effettuare login sul sistema utilizzando SSH e dare il comando “halt”. Il comando poweroff non è altrettanto efficace e rischia di lasciare alcune parti del sistema attive. Per effettuare il login con il protocollo ssh sul NAS occorre utilizzare i certificati, in modo che non siano richieste le credenziali di autenticazione. Una guida alla configurazione si trova QUI.

Il codice è scaricabile dalla sezione DOWNLOAD del sito, nella sezione “Software”.