La domotica, dall’unione delle parole domus (che in latino significa “casa”) + robotica, è la scienza interdisciplinare che si occupa dello studio delle tecnologie atte a migliorare la qualità della vita nella casa e più in generale negli ambienti antropizzati.
Cos’è il BTBH Relay v1.0?
Il BTBH Relay v1.0 è un progetto di domotica da me realizzato con lo scopo di controllare via pc o smartphone l’illuminazione ed altri apparecchi alimentati dall’elettricità di una stanza.
È sostanzialmente una centralina elettrica azionata da una scheda elettronica controllata da un PC.
Il funzionamento è il seguente:
- Uno smartphone (client) collegato ad internet si collega al PC (server)
- Sul PC vi è un software che cattura gli input che arrivano via internet e li invia alla scheda elettronica
- La scheda elettronica trasforma il messaggio digitale in un impulso elettrico ed attiva il relay
- Il relay accende la luce come un normale interruttore
Cos’è un relay?
Un relay non è altro che un interruttore che invece di essere attivato e disattivato con la pressione di un dito viene controllato da un elettromagnete.
In questo progetto è necessario utilizzare un relay poiché la corrente elettrica che passa in questi circuiti elettronici (5 Volts) è molto più bassa rispetto alla quantità di elettricità richiesta dagli apparecchi che si andranno a controllare (luci, tv, ecc.) (230 Volts).
Con un impulso di 5 Volts il relay fa passare 230 Volts di corrente.
Se non ci fossero i relay e tutto fosse collegato direttamente alla scheda elettronica, questa si brucerebbe.
Cos’è la scheda elettronica (Arduino)?
Arduino è una scheda elettronica dotata di un microcontrollore programmabile.
Cioè è una scheda, dotata di ingressi ed uscite elettriche, in cui è possibile caricare del codice software che poi verrà eseguito dalla scheda con lo scopo di trasformare un comando virtuale in qualcosa di reale.
Fasi della realizzazione
- Costruzione della centralina e della parte elettrica.
- Scrittura del software per il microcontrollore.
- Scrittura del software server per il PC. Backend.
- Costruzione dell’interfaccia grafica per il controllo della centralina. Frontend.
#1 Costruzione della centralina
- Arduino
- Transistor (Componenti elettroniche che gestiscono l’alimentazione dei relay)
- Relay
A tre delle “uscite” della scheda Arduino vengono collegati (uno per uscita) i tre Transistor che collegano il circuito d’alimentazione ai relay.
Quando da una delle uscite di Arduino verrà inviato un impulso elettrico, questo arriverà ai transistor che chiuderanno il circuito e faranno arrivare elettricità ai relay. L’elettromagnete dei relay si attiverà e muovendo una piccola barra metallica chiuderà il circuito finale.
- Ingresso elettricità per gli apparecchi finali (230 Volts).
- Prese elettriche. Uscite finali.
#2 Scrittura del software per il microcontrollore.
Come primo passo, nel codice software, bisogna dichiarare quali “uscite” della scheda sono state utilizzate. In questo caso la numero 2, la numero 3 e la numero 4.
Per comodità queste tre “uscite” sono state chiamate ch0, ch1, ch2.
int ch0 = 2 int ch1 = 3 int ch2 = 5
Dopodiché bisogna dire al microcontrollore se vogliamo usare le “porte” di Arduino come ingressi oppure uscite. Nel nostro caso uscite.
Infine decidiamo quali segnali virtuali riceverà il microcontrollore (in questo caso: 1,2,3 e a,b,c) e cosa dovrà fare una volta che li avrà ricevuti, ovvero accendere (HIGH) e spegnere (LOW).
#3 Scrittura del software server per il PC. Backend.
Il software server che ha il compito di gestire i dati provenienti dal web ed inviare delle “risposte” ad Arduino è scritto in Python, un linguaggio di programmazione molto versatile.
Il software svolge anche la funzione di Web Server, cioè invia e gestiste le pagine web che fungono da interfaccia grafica.
Per scrivere questo software è stato utilizzato Flask, un framework per python per semplificare la costruzione di WebApp.
La parte principale del software ha il compito di associare ogni url della WebApp ad un’operazione da compiere.
Come si può notare il comando s.write invia le lettere e i numeri che erano stati prestabiliti nel software per il microcontrollore.
Il software server però non svolge solo questa funzione, ma anche l’integrazione col PC attraverso messaggi vocali (os.system(“say …) e crea delle risposte reali agli eventi virtuali del computer. Ad esempio lo spegnimento di tutti i monitor sulla scrivania e delle periferiche (stampante, casse, alimentazione degli hardisk esterni) dopo lo spegnimento del computer (in modo che non ci sia la possibilità di dimenticare di staccare la spina ed evitando così inutili sprechi), oppure il “lampeggiamento” delle luci della stanza quando arriva una mail importante.
Per far si che il software possa inviare e ricevere dati da uno smartphone deve “servire” delle pagine web che diano la possibilità all’utente di scegliere cosa fare. Per questo motivo il server deve mettersi in ascolto su una porta. La porta standard per il traffico http è la porta 80.
192.168.1.68 è l’indirizzo ip del server.
#4 Costruzione dell’interfaccia grafica per il controllo della centralina. Frontend.
L’interfaccia grafica non è altro che una pagina web che invia al server le scelte dell’utente.
Realizzando l’interfaccia in modalità responsive, grazie ai nuovi html5 e css3 che lo rendono molto semplice, questa si adatterà a qualsiasi tipo di schermo garantendo sempre un’ottima esperienza utente.
- Cliccando su uno di quei pulsanti verrà aperto uno degli url della WebApp.
- Sul server ogni url è associato ad un’azione da compiere.
- Viene inviato alla scheda Arduino il comando corrispondente al bottone premuto.
- La scheda attiva o disattiva il relay corrispondente.
- L’apparecchio scelto si accenderà o spegnerà come richiesto.
Una qualsiasi di queste operazioni può essere svolta anche quando ci si trova fuori da casa se si dispone di un collegamento ad internet.
Questa è solo la prima versione del progetto che verrà ampliato per controllore molti altri dispositivi, tra i quali: il sistema di riscaldamento attraverso l’emulazione di un telecomando ad infrarossi e l’attivazione dei sistemi di isolamento in caso di fulmini per evitare danni all’impianto.
Andrea Carriero | BTBH
andrea@btbh.net
L'articolo Domotica: progetto “BTBH Relay v1.0” sembra essere il primo su Matematicamente.