Domus – Internet of Things per la domotica (parte 5)

La quinta e ultima parte dell’articolo, illustra le funzioni del PLC Controller, a supporto di Arduino, realizzato con l’EEE-Box.


Sebbene Arduino permetta la realizzazione di web servers e l’esecuzione di task complessi, per la mia sperimentazione ho deciso di limitarne l’uso a quello di attuatore relè e data-logger. Ho invece delegato le funzioni di raccolta, campionamento, storicizzazione e reporting dei dati, provenienti della rete di sensori, ad un piccolo server basato su EEE-Box con sistema operativo Windows 7.

Le componenti software utilizzate sono le seguenti:

Python 3.4.3 for Windows

EasyPHP for Windows

La libreria PHP pChart per I grafici

La piccola utility Tail

Le funzioni di raccolta, campionamento e storicizzazione sono affidate ad uno script Python che viene attivato ogni 15’ dallo scheduler di windows (l’intervallo di tempo può essere adattato alle effettive esigenze di controllo). Lo script invoca le chiamate REST, relative ai vari sensori, su Arduino e memorizza i dati raccolti in un set di file in formato csv nella directory c:\Domus.

Questo è lo script: Domus.py

Per farlo girare è necessario installare le librerie: smtplib, httplib2, datetime e os. La prima parte dello script interroga le sonde di temperatura, corrente, tensione, potenza, luminosità e condizione di allarme caldaia (sostituite gli indirizzi: mioserver.miodominio.net:85 con quelli a cui avete associato Arduino).

Alla fine, lanciando i file di comandi: Tail-Temp.batTail-Temp1.batTail-Emon.bat vengono regolate (a max 100 elementi nel mio caso) le lunghezze dei file dati csv, in modo da favorirne una comoda rappresentazione in forma di grafico.

La condizione di blocco caldaia è rilevato da Arduino mediante lettura di un ingresso digitale a cui è collegato un contatto della caldaia a condensazione, che viene chiuso in questo caso. Nell’ultima parte dello script Domus.py viene inviata una mail con soggetto ‘Caldaia in blocco!’, grazie alla libreria smtplib.

Il PLC è controllabile mediante il web server Apache messo a disposizione dal WAMP EasyPHP. Con l’aggiunta della comoda libreria PHP pChart sono riuscito a produrre facilmente grafici a partire dai file dati csv (opportunamente accorciati).

Temperature

Dopo aver installato e configurato pChart, provate ad eseguire da un browser lo script PHP: Temperature.php

Conclusioni

Tre mesi di test hanno dimostrato una discreta stabilità ed affidabilità del prototipo Domus. In particolare la soluzione scelta per ovviare all’indisponibilità di indirizzi ip privati, da parte dei provider di connettività mobile HSPA, si è rivelata solida e implicitamente sicura, grazie all’uso di VPN. Spero possa essere d’aiuto in generale a chiunque necessiti di un accesso remoto a siti non serviti da connettività ADSL.

La scheda Arduino Uno si è rivelata straordinariamente solida, perdonando le saldature fredde che non ho potuto evitare, nella realizzazione della Board di Adattamento con la basetta millefori. Anche i sensori, economici e facilmente reperibili, si sono risultati molto stabili e precisi.

Per lo sviluppo dello sketch, ho utilizzato alcune librerie, integrando porzioni di codice reperiti in rete da progetti open-source diversi, come Emon (Open Energy Monitor). Talvolta, considerato il carattere prototipale della realizzazione, mi sono concesso qualche approssimazione, come nel caso della trasformazione in Lux dei valori di output (assolutamente non lineari e difficilmente linearizzabili) della fotoresistenza VT90N3. Per la finalità di rilevare se c’è poca o tanta luce, mi è stato sufficiente così.

La scelta di relegare Arduino al ruolo di data-logger e di attuatore, è stata inizialmente dovuta alla mia scarsa conoscenza dell’ambiente di sviluppo della scheda, ma alla fine si è rivelata razionale e coerente con le limitate caratteristiche hardware di Arduino Uno. Ho considerato una possibile evoluzione del prototipo con l’adozione della scheda Arduino  Yún (che, grazie al sistema operativo Linux, permetterebbe di evitare il PLC).

Naturalmente qualunque suggerimento sarà ben accetto.

Dan

2 Replies to “Domus – Internet of Things per la domotica (parte 5)”

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...