Il mio obiettivo e' di creare un semplice sistema che risponde a queste due domande:
- come accendo/spengo il riscaldamento quando sono fuori casa?
- come programmo in modo flessibile il mio sistema di riscaldamento?
Cio' non mi fornisce la flessibilita' richiesta per i punti #1 e #2
Un giorno che mi e' capitato un raspberry pi model B per le mani e quindi mi sono detto: perche' non rimpiazzare il termostato a muro con un raspberry?
Da qui ho iniziato questo home project.
Il primo passo e' stato ottenere l'approval dal mio boss (moglie ???) :), la quale ha immediatamente aggiunto un terzo requisito:
3. il controllo tramite termostato a muro deve sempre essere funzionante e non essere rimpiazzato dal raspberry
Bene adesso che tutti i requisiti sono chiari posso iniziare la realizzazione.
Circuito Iniziale
Il circuito di accensione della caldaia e' il seguente:Circuito Finale
Per rispettare il requisito #3 ho modificato questo semplice circuito nel modo seguente:In questo modo abbiamo realizzato un OR logico tra il Raspberry Pi ed il termostato a muro permettendomi di soddisfare tutti e 3 i requisiti:
- tramite il raspebbry posso far scattare il relay e quindi accendere/spegnere la caldaia da remoto
- tramite software posso programmare il raspberry per accendere e spegnere la caldaia in modo flessibile
- in caso in qui il Rasperry non funzioni (mancanza di rete, guasto, etc...) la caldaia viene attivata normalmente dal termostato a muro
Assemblaggio
Per realizzare il controllo remoto della caldaia ho utilizzato i seguenti componenti:- 1x Raspberry Pi modello B (qualsiasi modello di Raspberry Pi e' adatto)
- 1x Netgear WNCE2001 Universal WiFi adapter (siccome non sono riuscito a trovare un dongle Wifi che funzionasse stabilmente con il mio Raspberry)
- 6x fili "ribbon cable" maschio-femmina
- 1x Mammut elettrico
- 1x Modulo Rele' 5V
- 1x Scatola di derivazione per esterni
- 1x piccola lastra di plexiglass da usare come sepratore
Passo 1: Preparazione del contenitore
Ho posizionato il raspberry in un angolo della scatola di derivazione, dove verra' poi fissato tramite una vite
Siccome la mia scatola di derivazione non e' grande abbastanza per contenere totalemnte il raspberry ho dovuto, in maniera un po' spartana, segnare con una matita dove dovranno essere create le fessure per il cavetto di alimentazione e per la schedina SD.
Come notate le fessure sono state effettuate con un trapano ed una piccola punta da legno. Se avete uno strumento migliore otterrete delle fessure piu' regolari. Non sono proprio orgoglioso di come ho realizzato le fessure :)
Passo 2: Fissaggio Scatola a muro
Ho forato la scatola con una piccola punta in modo da poter inserire un dado e bullone per fissare il raspberry alla scatola.
Successivamente ho incollato la scatola al muro del mio vano caldaia tramite una colla "mille chiodi". In questo modo ho evitate di forare il muro e di inserire almeno due tasselli.
Ovviamente questa e' stata la mia preferenza. Il lettore e' libero di fissare la scatola al muro nel migliore dei modi.
Passo 3: Cablaggio Raspberry
Il cablaggio e' veramente semplice. Ci servono solamente:
- VCC +5V
- GND
- 1x GPIO (#15) ma se ne puo' usare uno a piacere. Io ho scelto il 15 per ragioni di layout dei fili
In particolare ho cablato i fili sul raspberry in questo modo:
- filo verde -> +5V = Pin 2
- filo bianco -> GND = Pin 6
- filo giallo -> GPIO 15 = Pin 10
Questi Pin sono validi per Raspberry B revision 2. Se usi un raspberry diversi assicurati di usare il GPIO layout corretto per evitare malfunzionamenti.
Passo 4: Cablaggio modulo rele'
Come visto nello schema del circuito finale devo aggiungere un rele' che sia pilotato da un GPIO (#15) del raspberry.
Tempo fa' ho acquistato un module relay a 5V da un sito online http://www.dx.com/p/arduino-5v-relay-module-blue-black-121354#.VHJFwIvF98E
Siccome avevo disponibile questo modulino l'ho usato per questo progetto. Ovviamente il lettore puo' decidere di usare un altro modulo oppure di usare un rele' senza modulo. Suggerisco in ogni caso l'aggiunta del diodo di protezione altrimenti si rischia di bruciare il raspberry o almeno la linea del GPIO usato.
Ho effettuato il cablaggio del modulo rele' in questo modo:
filo bianco -> pin - del modulo
filo verde -> pin + del modulo
filo giallo -> pin S del modulo
Per ragioni di assemblaggio all'interno della scatola a muro ho usato 3 coppie di fili in modo da avere un cablaggio piu' lungo. Infatti con i fili a mia disposizione ho trovato difficile far restare in posizioni i fili sul connettore dei GPIO di raspberry. Al contrario con un cablaggio piu' lungo ho eviatto il problema.
Quindi nel mio caso ho poi collegato i fili dal raspberry a quelli del modulo rele' tramite un piccolo mammut
Tempo fa' ho acquistato un module relay a 5V da un sito online http://www.dx.com/p/arduino-5v-relay-module-blue-black-121354#.VHJFwIvF98E
Siccome avevo disponibile questo modulino l'ho usato per questo progetto. Ovviamente il lettore puo' decidere di usare un altro modulo oppure di usare un rele' senza modulo. Suggerisco in ogni caso l'aggiunta del diodo di protezione altrimenti si rischia di bruciare il raspberry o almeno la linea del GPIO usato.
Ho effettuato il cablaggio del modulo rele' in questo modo:
filo bianco -> pin - del modulo
filo verde -> pin + del modulo
filo giallo -> pin S del modulo
Per ragioni di assemblaggio all'interno della scatola a muro ho usato 3 coppie di fili in modo da avere un cablaggio piu' lungo. Infatti con i fili a mia disposizione ho trovato difficile far restare in posizioni i fili sul connettore dei GPIO di raspberry. Al contrario con un cablaggio piu' lungo ho eviatto il problema.
Quindi nel mio caso ho poi collegato i fili dal raspberry a quelli del modulo rele' tramite un piccolo mammut
Questo cablaggio non e' obbligatorio. Lascio al lettore la decisione finale.
Passo 5: Assemblaggio del circuito nella scatola a muro
A questo punto abbiamo finito con i semplici cablaggi del raspberry e del modulo rele'. Adesso non mi resta che montare il tutto all'interno della scatola a muro.
Ho fissato il raspberry alla scatola tramite la vite precedentemente inserita. Assicuratevi che la colla mille chiodi abbia fatto presa bene (a me si e' staccata due volte :) )
Dopo ho collegato il Netgear WNCE2001 ad unaporta USB per l'alimentazione dello stesso ed un corto cavo ethernet alla porta del raspebrry.
In questo modo ho una connettivita' alla mia rete wifi stabile e funzionante.
Il dongle Wifi a mia disposizione si e' rivelato instabile e non affidabile.
Come sempre il lettore e' libero di utilizzare la soluzione preferita per avere connettivita' ad Internet.
Ho fissato il raspberry alla scatola tramite la vite precedentemente inserita. Assicuratevi che la colla mille chiodi abbia fatto presa bene (a me si e' staccata due volte :) )
Dopo ho collegato il Netgear WNCE2001 ad unaporta USB per l'alimentazione dello stesso ed un corto cavo ethernet alla porta del raspebrry.
In questo modo ho una connettivita' alla mia rete wifi stabile e funzionante.
Il dongle Wifi a mia disposizione si e' rivelato instabile e non affidabile.
Come sempre il lettore e' libero di utilizzare la soluzione preferita per avere connettivita' ad Internet.
Ora devo alloggiare il modulo rele' correttamente cablato come visto sopra.
Per far cio' ho adottato un piccolo stratagemma dato che non avevo altro spazio utile nella scatola a muro.
Ho inserito una piccola lastra di plexiglass sopra il raspberry e l'ho fissata tramite l'unica vite presente.
In questo modo ho creato un secondo "piano" su cui alloggiare il modulo rele' che a sua volta e' fissato tramite l'unica vite presente.
Passo 6: Collegamento alla caldaia e chiusura scatola a muro
A questo punto siamo nella fase finale.
Dopo di cio' ho chiuso la scatola a muro che le viti fornite
Se gradito si possono chiudere le fessure con silicone o altro sigillante. Io non l'ho fatto siccome sono lazy e siccome il vano caldaia e' completamente asciutto.
Ovviamente in un futuro (mai :) ) mettero' del nastro isolante per coprire i fili che per'altro sono gia isolati :). Insomma la parte da elettricista non mi interessa. :) La parte divertente e' il software di controllo.....
Ottimizzazioni
Possibili ottimizzazioni che ho gia' in mente:
In questo post Controllo remoto per caldaia e raspberry ho descritto il software per il Raspberry e per il client.
- Inserimento scheda SD con Raspian e software di controllo
- Inserimento spinotto di alimentazione
- Collegamento al circuito di accensione della caldaia come definito nel circuito finale
Dopo di cio' ho chiuso la scatola a muro che le viti fornite
Se gradito si possono chiudere le fessure con silicone o altro sigillante. Io non l'ho fatto siccome sono lazy e siccome il vano caldaia e' completamente asciutto.
Ovviamente in un futuro (mai :) ) mettero' del nastro isolante per coprire i fili che per'altro sono gia isolati :). Insomma la parte da elettricista non mi interessa. :) La parte divertente e' il software di controllo.....
Ottimizzazioni
Possibili ottimizzazioni che ho gia' in mente:
- sostituzione modulo Netgear per connettivita' Wifi con dongle USB funzionante
- sostituzione raspberry con modello A+ di minor dimensioni e consumo
- sostituzione scatola a muro con una di minor dimensioni
- sostituzione raspberry con modulo arduino e ricevitore RF con conseguente riduzione costi
Software
Conclusioni
Questo mini progettino casalingo mi ha divertito parecchio. Con poca spesa adesso ho un sistema di controllo del mio riscaldamento casalingo infinitamente piu' flessibile del classico termostato a muro.
Ovviamente avrei potuto cercare delle soluzioni sul mercato, ma in puro spirito "maker", "tinkering" e' piu' divertente farsi le cose dasolo.
Chiunque abbia delle migliorie si faccia sotto. Saro' ben felice di apportarle al mio progetto.
Nota
Nel mio caso ho notato che il raspberry dopo un certo periodo (circa 30+ minuti) di inattivita' perdeva la connettivita' wifi. Molto probabilmente e' dovuto ad uno stand-by del modulo Netgear.
Per evitare cio' ho aggiunto una semplicissima linea al cron
more cron_ping.sh
Lo script e' banalissimo e pinga google per 3 volte ogni 30 minuti
Cosi' il problema e' stato risolto in maniera banale ed ora il raspberry e' sempre raggiungibile via Internet (ops non proprio da tutti ) :)
PS: tempo libero permettendo seguiranno un paio di post per il software di controllo sia lato server che lato client.....
Ovviamente avrei potuto cercare delle soluzioni sul mercato, ma in puro spirito "maker", "tinkering" e' piu' divertente farsi le cose dasolo.
Chiunque abbia delle migliorie si faccia sotto. Saro' ben felice di apportarle al mio progetto.
Nota
Nel mio caso ho notato che il raspberry dopo un certo periodo (circa 30+ minuti) di inattivita' perdeva la connettivita' wifi. Molto probabilmente e' dovuto ad uno stand-by del modulo Netgear.
Per evitare cio' ho aggiunto una semplicissima linea al cron
*/30 * * * * /home/pi/cron_ping.sh
more cron_ping.sh
#!/bin/bash logger "*********************************************" upt=`uptime | awk -F " " '{print $3}'` for i in {1..3}; do ping -c 1 www.google.com logger `date` ping GOOGLE $i -- uptime: $upt sleep 1 done logger "*********************************************"
Cosi' il problema e' stato risolto in maniera banale ed ora il raspberry e' sempre raggiungibile via Internet (ops non proprio da tutti ) :)
PS: tempo libero permettendo seguiranno un paio di post per il software di controllo sia lato server che lato client.....
Nessun commento:
Posta un commento