Come costruire una centralina di irrigazione a goccia con Arduino
In alcuni miei articoli ho parlato della realizzazione di un impianto di micro irrigazione tramite una centralina autocostruita. Questa centralina aveva il compito di pilotare una elettrovalvola bistabile utilizzando una coppia di relè.
Nel tempo ho modificato questo prototipo per renderlo più efficiente e facile da gestire, e soprattutto perché la vecchia centralina aveva dei consumi di corrente elevati e quindi non efficiente con alimentazione a batteria.
Il circuito di questo articolo è attualmente installato nel mio giardino e in quello di alcuni miei amici.
La decisione di realizzare una nuova centralina nasce per via di alcune esigenze:
la prima è quella dovuta alla scarsità di piogge di questi ultimi anni e di conseguenza la crescente esigenza di irrigare in modo sostenibile utilizzando sistemi ad ala gocciolante o linee autocostruite con micro gocciolatori.
La seconda è dovuta alla mia passione per il fai da te e per la convinzione che i circuiti autocostruiti, benché inizialmente siano più costosi, possano essere una valida alternativa al modello usa e getta e dell’obsolescenza programmata, infatti conoscendo schema elettrico e codice del progetto possiamo, in caso di rottura di qualche componente, ripararlo o riadattarlo per ulteriori esigenze.
Questa mia nuova centralina permette di utilizzare sia elettrovalvole bistabili sia valvole motorizzate.
Le elettrovalvole bistabili sono consigliate per impianti alimentati a batteria in quanto, tramite un breve impulso elettrico di qualche millisecondo, è possibile aprire o chiudere il passaggio dell’acqua.
L’uso di una elettrovalvola nel nostro impianto di irrigazione comporta, il più delle volte, l’impiego di un filtro che privi l’acqua delle impurità che potrebbero comprometterne il funzionamento dell’elettrovalvola; le impurità dell’acqua, col tempo, possono ostruire il piccolo canale che porta l’acqua nella camera del solenoide.
Quando l’acqua possiede una torbidità elevata e non possiamo permetterci un sistema filtrante di qualità possiamo optare per una valvola motorizzata (Escludendo però il sistema di irrigazione a gocciolatori ma a irrigazione diretta).
La valvola motorizzata assorbe più corrente perché il tempo necessario per aprirla o chiuderla è maggiore rispetto all’elettrovalvola (circa3-5 secondi).
Caratteristiche nuova centralina di micro irrigazione
- Basso assorbimento di corrente in standby (circa 0.3uA)
- Open Source e Open Hardware
- Calendario con RTC
- Memorizzazione dati su SD
- Interfaccia seriale
- Programmazione tempi di irrigazione tramite jumper
- Programmazione intervalli di irrigazione tramite jumper
- Led di stato
Schema elettrico a blocchi
Lo schema elettrico è stato suddiviso in blocchi. Analizzeremo ognuno di essi con immagini separate per capirne meglio il funzionamento.
La figura seguente riguarda il sistema di alimentazione del circuito. Il connettore JP1 è collegato alla batteria (da 9 a 12v dc) e permette di alimentare l’elettrovalvola tramite un filtro a larga banda (FILT) e il resto del circuito tramite regolatore a 3.3v (MIC2940A-3.3WT).
Il regolatore che ho scelto è un convertitore DC/DC LDO della Microchip. La scelta è ricaduta su questo componente perché assorbe una corrente molto bassa.
Il componete di nome sky2 è un diodo transil bidirezionale da 15v che permette di smorzare le extratensioni generate della commutazione del solenoide dell’elettrovalvola.
Se non adeguatamente filtrate, le extratensioni possono resettare il microcontrollore rendendo il circuito instabile ed inutilizzabile.
Il partitore di tensione costituito dalle resistenze R12 e R13 serve per monitorare la carica della batteria e di conseguenza arrestare i cicli di irrigazione quando la tensione della batteria non assicura la commutazione dell’elettrovalvola.
Lo schema seguente riguarda invece il circuito RTC:
questo circuito ha il compito sia di gestire la data e l’ora, ma anche di generare un segnale di allarme (programmato via software), collegato ad un pin di interrupr del microcontrollore, questo sistema mi permette di risvegliare il microcontrollore dallo stato di ibernazione, necessario per garantire bassi assorbimenti del circuito.
Il cuore della centralina è basato sul microcontrollore ATMEGA328P-PU:
al micro è collegato lo slot SD (la comunicazione avviene usando la SPI). Osserviamo anche il connettore connettore ISP, e il connettore UART per la comunicazione seriale.
L’elettrovalvola viene pilotata tramite un ponte ad H realizzato con dei transistors; lo schema è il seguente:
l’ultimo blocco dello schema elettrico riguarda la selezione del tempo di irrigazione e dell’intervallo di tempo tra una irrigazione e la successiva:
Il segnale TMR_TIME e TMR_DATE sono collegati a due ingressi analogici del microcontrollore.
Di seguito il circuito elettrico della centralina di micro irrigazione:
Descrizione dello schema elettrico
Il microcontrollore ha il compito di gestire tutte le periferiche collegate alle sue line GPIO. La caratteristica principale di una centralina di questo tipo è il bassissimo assorbimento di corrente; supponendo di alimentare il circuito con una batteria (tipicamente una 9v o nel mio caso 8 batterie stilo alcaline tipo AA) dobbiamo garantire la durata di funzionamento per diversi mesi (naturalmente questo dato dipende dalla capacità della batteria).
Per garantire un basso assorbimento il microcontrollore andrà messo in modalità basso consumo quando non esegue nessuna operazione. Una volta entrato in questa modalità il micro potrà essere risvegliato tramite watchdog oppure tramite interrupt esterno. Nel mio progetto il risveglio è gestito da un interrupt esterno, generato dall’RTC, perché in questo modo posso gestire tempi di standby molto più prolungati rispetto al watchdog.
L’interrupt è generato dalla funzione alarm del modulo rtc MCP7940N. In pratica sul piedino 7 (sqw/MFP) viene generato un cambio di stato logico ogni volta che l’orario dell’ RTC corrisponde all’orario settato sul registro interno ALARM.
Il pilotaggio dell’elettrovalvola avviene utilizzando un ponte ad H costruito con dei transistors discreti. Lo schema permette di essere comandato tramite le uscite digitali del microcontrollore. I diodi schottky posti al centro del ponte H garantiscono l’eliminazione delle sovratensioni generate dalla commutazione del solenoide.
La selezione della durata dell’irrigazione e dell’intervallo tra una irrigazione e la successiva avviene utilizzando dei semplici jumper. I jumper sono posizionati in un partitore di tensione. L’uscita del partitore di tensione è collegata ad un ingresso analogico del microcontrollore. A seconda della posizione del jumper otterremo sull’ingresso analogico tensioni differenti. Dato che il partitore assorbe una cerca corrente, ho utilizzato dei transistor per alimentare il partitore solo quando voglio leggere la posizione dei jumper. I due transistors vengono pilotati da due uscite digitali del microcontrollore.
Assemblaggio e test della centralina
Ho dapprima realizzato il progetto utilizzando una basetta millefori, questo perché prima di realizzare il pcb volevo assicurarmi che tutto funzionasse come da progetto. Dopo qualche giorno di test ed aver avuto la certezza che lo schema non presentasse anomalie ho deciso di produrre il pcb.
Dopo aver montato i componenti sul pcb ho sistemato il circuito in una cassetta ermetica per impianti elettrici. Nella cassetta ho inserito anche la batteria. L’unico foro praticato è quello per fare uscire i due fili del solenoide dell’elettrovalvola.
Ho tenuto in osservazione il funzionamento della centralina per circa 2 mesi e mezzo e non ho avuto nessun problema. La posizione del circuito era abbastanza critica perchè rimaneva molto tempo esposta al sole. questa è stata una scelta voluta perché avevo bisogno di sotto porre il circuito a condizioni termiche estreme (giorni con temperature anche superiori ai 40°c). L’unico cosa che ho osservato è una deriva dell’orario dell’RTC, probabilmente perchè non ho eseguito la calibrazione.
In definitiva sono molto contento di questo lavoro perchè ho ottenuto bassi assorbimenti, un costo contenuto del progetto e una grande flessibilità nella programmazione delle irrigazioni.
Related posts
2 Comments
Lascia un commento Annulla risposta
Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.
Articoli popolari
Sorry. No data so far.
.Net micro framework Arduino Arduino Webserver Domotica Flyport I2C IOT Netduino OpenPicus raspberry RTC Speed Test
interessante e esustivo , ma lo sketch ??
Ciao
lo sketch sarà disponibile in un prossimo articolo. Ho scritto uno sketch basilare che permette di utilizzare la centralina, ma sinceramente non sono molto soddisfatto. Questo perché ho riscontrato una deriva del tempo del modulo rtc. Esiste un modo per calibrare ed aumentare così la precisione del modulo RTC. Inoltre ho capito che questa centralina è utilizzabile da chi smanetta con Arduino ed è quindi capace di programmare la scheda ed impostare l’orario.
Quello che vorrei fare è una centralina che sia semplice usare anche da chi non è esperto nel codice, e quindi uno sketch che possa essere caricato senza il bisogno di settaggi.
Saluti
Marco Lai