In questo post descrivo come ho realizzato una valvola per termosifoni controllabile via Internet denominata Wireless Valvola (Walvola). Qui descrivo la versione 4 in quanto le versioni precedenti sono obsolete causa problemi legati al layout del PCB ed ai consumi della batteria.
Il post e' strettamente collegato ad un mio progetto precedente (post originali Controllo Remoto per Caldaia - HW e Controllo Remoto per Caldaia - Raspberry e Client SW)
Background
Come spiegato nei post menzionati sopra, fino ad ora ho avuto la possibilita' di accendere/spegnere la caldaia per riscaldamento tramite un paio di app web (una solo accendi e spegni e la seconda un calendario per programmazione giornaliera/settimanale).
Questo e' molto funzionale con il mio stile di vita e con la mia presenza/assenza in casa.
Tuttavia un problema che ho riscontrato e' la necessita' disincronizzare esattamente le valvole con l'accensione della caldaia onde evitare che la caldaia vada in blocco. (se tutte le valvole sono chiuse ed il bruciatore parte l'acqua va in ebollizione in pochissimi istanti e la caldaia va in blocco - almeno nel mio impianto).
Anche dopo un'accurata pianificazione e sincronizzazione il sistema, benche' funzionante, e' poco flessibile generando degli sprechi di energia o comunque riscaldando la casa quando non necessario.
Per esempio se programmo la valvola camera letto e la caldaia per accendersi alle 21 ma sono in pizzeria e tardo e rientro alle 23 con il sistema attuale non posso fare nulla in quanto la valvola si apre automaticamente alle 21. Questo perche' non ho controllo sulla valvola da remoto.
Per esempio se programmo la valvola camera letto e la caldaia per accendersi alle 21 ma sono in pizzeria e tardo e rientro alle 23 con il sistema attuale non posso fare nulla in quanto la valvola si apre automaticamente alle 21. Questo perche' non ho controllo sulla valvola da remoto.
Questo progetto ha come obiettivo l'eliminazione del problema descritto sopra rendendo cosi' il mio sistema di riscaldamento casalingo completamente controllabile da remoto e quindi altamente flessibile.
Valvola Termostatica
Ho applicato su ogni termosifoni di casa una valvola termostatica elettronica della Technoline modello TM3030
Questa valvola e' un oggettino molto interessante.
Si puo' aprire e chiudere come una qualsiasi valvola termostatica in base alla temperatura. Inoltre puo' essere programmata fino a 5 chiusure/aperture giornaliere in base ad un calendario settimanale.
Si puo' aprire e chiudere come una qualsiasi valvola termostatica in base alla temperatura. Inoltre puo' essere programmata fino a 5 chiusure/aperture giornaliere in base ad un calendario settimanale.
Quest'ultima funzionalita' e' stato il motivo principale della mia scelta.
Come spiegato sopra nonostante siano ottime funzionalita', non sono abbastanza flessibili per il mio scopo.
In questo articolo spiego come rendere qusta valvola wireless e controllabile da remoto con pochissimi euro (circa 3/4 euro per valvola).
Lista Materiali
Per questo progetto ho utilizzato i seguenti componentiBasetta ramata
Basetta ramata singola faccia dalle dimensioni di 45mm x 48mm
Transistor PNP
Transistor NPN
Quattro (4) transistor NPN tipo BC547 2N3904 o simile
Resistenze
8 resistenze da 10K ohm e 1 resistenza da 470 ohm
Condensatori
1 Condensatore elettrolitico da 100uF e 1 Condensatore da 470 pF o simile
Modulo ESP8266-12
Modulo wireless ESP8266-12 per connessione remota
Fili
1 piccolo pezzo di filo (circa 0,5 centimetri) da usare come ponticello per il PCB
4 spezzoni di filo per connettere la nuova scheda di controllo alla valvola.
Schema Circuito v4
La valvola TM3030 e' composta essenzialmente da un motore elettrico DC alimentato da due pile AA (3V), da un meccanismo di riduzione della velocita' e di sollevamento/abbassamento pistoncino e da una piccola scheda di controllo.
In questo progetto la scheda di controllo viene completamente rimossa e sostituita da una progettata appositamente.
Il circuito implementa un Half Bridge a 6 transistor, in modo da poter pilotare il motore e farlo girare in entrambe le direzioni per sollevare/abbassare il pistoncino della valvola e quindi chiudere/aprire il termosifone.
Il funzionamento e' semplicissimo e viene controllato dai piedini 4 e 5 del modulo EPS8266-12 in base al seguente schema
Il funzionamento e' semplicissimo e viene controllato dai piedini 4 e 5 del modulo EPS8266-12 in base al seguente schema
- pin4 = ON e pin 5= OFF -> motore gira in una direzione
- pin4 = OFF e pin 5= ON -> motore gira in nella direzione opposta
- pin4 = OFF e pin 5= OFF -> motore fermo
- pin4 = ON e pin 5= ON -> non ammesso
In questo modo posso azionare e fermare il motore via wireless e quindi da remoto (Internet).
Schema PCB v4
Ho realizzato il seguente PCB posizionando i componenti in modo da lasciare quanto piu' spazio possibile per il motore della valvola. sul lato componenti della basetta.
Qui potete vedere tutti i passi su come realizzare il PCB a casa in maniera autonoma.
Il progetto fritzing completo e' disponibile sul mio github.
Come si vede sul lato destro ho posizionato le piazzole per la saldatura del modulo ESP8266-12. Pertanto il modulo viene saldato lato rame, lasciando ampio spazo sul latocomponenti per poter alloggiare il motore della valvola.
Il PCB e' stato intenzionalmente realizzato senza piano di massa per semplificare il PCB e la realizzazione casalinga. Chi vuole puo' aggiungerlo da se. In ogni caso non e' strettamente necessario per quetso tipo di circuito in quanto non ci sono segnali critici da veicolare.
Circuito e PCB v5
Su github e' presente la versione 5 della scheda che aumenta la stabilita' al risveglio del deep sleep.
Scheda di controllo
Qui la scheda che implementa il circuito visto prima (v4)
Qui il PCB completamente montato con tutti i componenti
Come si vede ho docuto sagomare la basetta per poterla alloggiare nello spazio ridotto presente nel'involucro della valvola TM3030.
Sul lato componenti e' rimasto lo spazio necessario per alloggiare il motore della valvola.
Modifica valvola
Una volta realizzato il PCB e saldato i componenti e' necessario aprire la valvola e sostituire la scheda di controllo per rendere la valvola Wireless.
L'obiettivo e' rimpiazzare la scheda di controllo originale con quella descritta in questo progetto in modo reversibile e quindi lasciando la valvola in uno stato che mi permetta di tornare alla configurazione originale in caso sia necessario (obiettivo non comprarne una nuova se necessario :) ).
Ecco i passi che ho seguito io:
Inizio
Rimozione del coperchio e manopola di programmazione laterale
Rimozione delle 4 viti per poter aprire la valvola
Le viti sono di tipo Torx e quindi serve un cacciavite adattto, tipo questo
Rimozione delle 4 viti che fissano la scheda di controllo al corpo della valvola
Dissaldatura e Taglio Fili
Dissaldatura di questi 3 fili (sono collegati ad un encoder per misurare la posizione della ghiera dentata e quindi del pistoncino). La valvola implemeta una funzione di autocalibrazione e quindi ha bisogno dell'encoder.
Nella mia versione non ho bisogno di questa funzionalita', inq uanto coem si vedra' nella parte software la valvola si apre e si chiude con un tempo prestabilito.
Nella mia versione non ho bisogno di questa funzionalita', inq uanto coem si vedra' nella parte software la valvola si apre e si chiude con un tempo prestabilito.
E' importante ricordarsi l'ordine di saldatura dei fili per poter ripristinare correttamente la valvola in caso sia necessario.
A questo punto la scheda di controllo e' collegata all'alimentazione (vano batterie) ed al motore, quindi dobbiamo rimuovere questi collegamenti.
Mi sono segnato con un pennarello il polo positivo e negativo dei morsetti di alimentazione. (Passo non obbligatorio)
Con pazienza ho dissaldato i fili evitando di rimuovere troppo stagno dai morsetti.
Come si vede il modulo di controllo originale non e' piu' collegato all'alimentazione
mentre e' ancora collegato al motore.
Per evitare di rovinare il modulo di controllo non ho dissaldato i fili del motore ma ho deciso di tagliarli a meta'. Se dovessi ripristinare la valvola non sara' troppo difficile ricongiungere i fili rispettando i colori.
Nota: In alcune versioni che ho implementato anziche' tagliare i fili li ho dissaldati dalla baseta originale. Entrambi i metodo portano allo stesso risultato
Prolunga fili motore
Ho spellato i fili che fuoriescono dal motore
Ora ho spellato due fili della lunghezza di circa 3 centimetri
e li ho saldati a quelli che fuoriescono dal motore rendendoli cosi' piu' lunghi
A questo punto ho isolato la giunzione dei fili (l'applicazione del nastro isolante non e' il massimo ma non sono un buon elettricista :) )
Ho anche saldato i fili dal motore (la prolunga) alla nuova scheda di controllo creata nei passi precedenti.
I fili vanno saldati in base al seguente schema:
dove
- M+ corrisponde al filo rosso del motore
- M- corrisponde al filo nero del motore
Prolunga fili alimentazione
Adesso ho preparato altri due fili di circa 3 centimetri e li ho saldati ai morsetti di alimentazione.
Se avessi avuti fili di colore diverso li avrei usati, ma ho usato cio' che avevo in casa :)
Adesso ho saldato i fili di alimentazione negli appositi fori nella nuova scheda di controllo
A questo punto la scheda di controllo originale e' stata completamente rimpiazzata dalla nuova scheda di controllo.
Ho inserito la scheda nel vano batteria e l'ho fissata con una vite (la seconda in basso a sinistra non sono riuscito siccome ho sagomato male la scheda :) )
Ora posso finalomente richiudere la valvola.
Riposiziono il motore con le ghiere nell'apposito spazio usando le guide originali.
Come si vede la nuova scheda con il modulo wireless (lato rame) si adatta perfettamente alla valvola occupando solo lo spazio disponibile permettendo un corretto posizionamentio del motore della valvola.
Adesso richiudo il corpo principale con le 4 viti rimosse all'inizio ed inserisco nuovamente la manopola laterale.
Adesso la valvola termostatica e' pronta ed e' ora una Wireless Valvola (Walvola) :)
Non mi resta che installarla sul termosifone ed iniziare ad usarla :)
Qui un breve video che mostra che la valvola funziona. Si vede solo che il pistoncino va su (gira a destra) e va giu' (gira a sinistra). Il pistoncino si muove solo di pochi millimetri e quindi non si vede benissimo nel video.
Conclusioni
Come descritto nel post ho trasformato con successo una valvola termostatica gia' molto buona in qualcosa di altamente flessibile.
Il processo descritto si puo' applicare enza troppi problemi ad altre valvole. Il circuito rimane lo stesso. E' possibile che altre valvole abbiano PCB di dimensioni diverse, ma l'adattamento dovrebbe non essere complesso.
Se sperimentate altre valvole sarei molto curioso di ricevere il vostro feedback
Il processo descritto si puo' applicare enza troppi problemi ad altre valvole. Il circuito rimane lo stesso. E' possibile che altre valvole abbiano PCB di dimensioni diverse, ma l'adattamento dovrebbe non essere complesso.
Se sperimentate altre valvole sarei molto curioso di ricevere il vostro feedback
Ciao Antonio,
RispondiEliminacomplimenti per il post ma sopratutto per il blog...
Volevo chiederti una cosa.... sono interessato alla modifica della testa termostatica da te indicata,
pensi che poi sia possibile gestirla anche con Home Assistant?
Grazie per un tuo riscontro....
Ciao, secondo me basandosi su un esp8266 potresti caricare tasmota, impostare il modulo generico e settare i pin 4 e 5 come switch1 e switch2. Smanettando un po' con gli switchtopic e impostando delle rules tasmota potresti usarlo in homeassistant
Eliminanon e' negli obiettivi di questo progetto.
Eliminase hai guardato il blog ho creato anche il software sia lato ESP che lato mobile app...
:)
pero' certamente e' utilizzabile con altri firmware.
lascio al lettore fare le proprie prove.
ciao,
RispondiEliminacerto ma non con il mio codice descritto nel post della parte software
devi scriverti il codice per home assistant
Ciao, bellissimo progetto. Volevo chiederti con l'aggiunta del modulo wifi come varia la durata della batteria
RispondiEliminaGrazie e complimenti
ciao,
RispondiEliminapurtroppo ESP8266 e' energivoro e consuma molto.
in origine con 2 batterie AA, la valvola dura circa 1 anno.
il progetto descritto qui le batterie durano 20 giorni.
nella version 6 (non documentata qui) durano 3 mesi
ma il motore è agganciato ad una valvola normale o anche la valvola fa parte del pacchetto?
RispondiEliminaBuongiorno Antonio, sto cercando di compilare il codice della valvola ma ricevo questo errore:
RispondiEliminamqtt.cpp:12:68: error: no matching function for call to 'PubSubClient::PubSubClient(WiFiClient&, String&, int)'
12 | PubSubClient mqtt_client(wifi_client, mqtt_server, MQTT_BROKER_PORT);
| ^
In file included from /Users/nick/Documents/Arduino/Walvola/Walvola.h:26,
from /Users/nick/Documents/Arduino/Walvola/mqtt.h:4,
from /Users/nick/Documents/Arduino/Walvola/mqtt.cpp:1:
/Users/nick/Documents/Arduino/libraries/PubSubClient/src/PubSubClient.h:129:4: note: candidate: 'PubSubClient::PubSubClient(const char*, uint16_t, std::function, Client&, Stream&)'
129 | PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);
| ^~~~~~~~~~~~
/Users/nick/Documents/Arduino/libraries/PubSubClient/src/PubSubClient.h:129:4: note: candidate expects 5 arguments, 3 provided
Francamente non so cosa fare, potresti suggerirmi come risolvere e riuscire a compilare? Grazie Giuseppe
ok ho risolto, grazie
Elimina