Ogni giardino, anche di piccole dimensioni, può essere migliorato con un impianto d’irrigazione automatico.
Il poter mantenere la corretta umidità del terreno durante il periodo primaverile ed estivo contribuisce ad avere il nostro “angolo verde” sempre in ottima forma.
In questo articolo descriverò come realizzare una centralina per un impianto d’irrigazione.
Il cuore del progetto è una scheda Arduino Duemilanove, a cui si va ad aggiungere uno shield LCD ed uno shield progettato ad hoc (Irrighino Shield) che contiene un chip RTC (RealTimeClock) ed i Relè.
Il cuore del progetto è una scheda Arduino Duemilanove, a cui si va ad aggiungere uno shield LCD ed uno shield progettato ad hoc (Irrighino Shield) che contiene un chip RTC (RealTimeClock) ed i Relè.
La centralina deve poter automatizzare l’apertura/chiusura delle elettrovalvole atte a irrigare le varie zone del giardino. A questo scopo sono disponibili 9 timer settimanali, completamente programmabili.
Per ogni timer è possibile configurare:
- I giorni della settimana d’attività
- L’ora d’inizio irrigazione
- L’ora di fine irrigazione
- L’uscita da attivare
E’ possibile configurare più timer per la stessa uscita (per esempio per settare due irrigazioni al giorno in un semenzaio dove bisogna mantenere un’elevata umidità).
E’ inoltre possibile gestire manualmente le uscite, visualizzandone lo stato.
Di seguito sono approfonditi i principali aspetti del progetto.
Irrighino Shield
Questo shield permette di montare su di esso ulteriori shield. Nel caso specifico l’LCD shield.
Esso monta 4 relè (5V) comandati dal driver ULN2003.
Un fusibile protegge il trasformatore che alimenterà le elettrovalvole.
Trova spazio anche il chip RTC DS1307. Esso ha il compito di mantenere data ed ora nel sistema.
Per ottenere una maggior precisione, al posto di un quarzo da 32Khz, è usato il chip DS32Khz.
Quest’ultimo componente garantisce la compensazione in temperatura e tensione.
Lasciando acceso il nostro timer per qualche mese, potremo notare come l’utilizzo di questo chip mantenga preciso l’orario nel tempo.
Una batteria tampone mantiene aggiornata la data e ora anche in caso di mancanza dell’alimentazione principale.
L’intero shield può essere realizzato su una basetta singola faccia. Personalmente utilizzo basette presensibilizzate e pronte per la fotoincisione (UV).
Nell’immagine seguente è visibile l’impiego di ogni singolo Pin di ArduinoDuemilanove.
Software
Appena alimentata la centralina, verrà visualizzata data ed ora (in questa versione sperimentale data ed ora va impostata via codice alla prima programmazione).
Attraverso i pulsanti presenti sull’LCD Shield (http://cgi.ebay.it/LCD-Keypad-Shield-for-Arduino-Duemilanove-LCD1602/290533701464?pt=LH_DefaultDomain_0&hash=item43a5287758#ht_2494wt_905) è possibile navigare attraverso le diverse videate presenti.
Premendo il pulsante “UP” accediamo alla videate del primo timer.
Continuando a premere “UP” avremo modo di visualizzare le videate relative a tutti i 9 timer (Da P1 a P9 dove P sta per Programma).
Arrivati alla videata del nono timer, premendo “UP” visualizzaeremo la videata relativa alla visualizzazione degli stati dei relè.
Tornando alla videata sopra riportata (del timer P1) sono leggibili le seguenti impostazioni:
- Il timer P1 è attualmente disattivato
- Il timer P1 entrerebbe in azione tutti i giorni della settimana
- Il timer P1 entrerebbe in azione tra le 6 e le 7 di mattina
- Il timer P1 attiverebbe il relè 1.
Premendo il pulsante “SET” è possibile modificare ad uno ad uno i valori sopra citati (verrà visualizzato un cursore lampeggiante su ogni valore da modificare, premendo “UP/DOWN” si varierà il valore, premendo “SET” si confermerà il valore per poi passare al successivo).
Si nota a questo punto l’estrema flessibilità del sistema. Ogni timer può lavorare su più relè ed è possibile selezionare singolarmente i giorni della settimana necessari.
E’ inoltre possibile, per esempio, selezionare l’attivazione del timer tra le 23.00 e le 3.00. Il sistema riconoscerà automaticamente il cambio data ed attiverà correttamente il timer tra le 23.00 e le 3 di notte.
Nel caso vi sia un blackout, al ritorno della corrente il timer ricomincerà a funzionare regolarmente, attivando i timer ove necessario. Infatti, lo stato dei relè non viene cambiato solamente allo scadere dell’orario di “start” e “stop”, ma calcolato ed impostato costantemente, garantendo un funzionamento stabile e sicuro.
Di seguito è riportata la videata riguardante lo stato delle uscite:
Notiamo che le uscite 1 e 3 sono influenzate dai timer ed al momento sono aperte.
L’uscita 2 è forzata allo stato “Acceso” (V) indipendentemente dai timer. Vediamo infatti lo stato chiuso di questa uscita.
L’uscita 4 è forzata allo stato “Spento” (X) indipendentemente dai timer. Vediamo infatti lo stato aperto di questa uscita.
Premendo “SET” è possibile settare il funzionamento di ogni uscita (influenzato dai Timer, Acceso, Spento).
Abbiamo così il controllo completo di ogni uscita, in caso di necessità anche manualmente.
Il presente progetto occupa circa 1/3 dello spazio di memoria programma del chip AtMega328 installato su Arduino2009. Abbiamo così molteplici possibilità di espandere tale centralina per adattarla alle esigenze di ognuno.
In primo luogo sarebbe da aggiungere la funzionalità di modifica della data/ora via software, agendo sui pulsanti della centralina.
Potrebbe essere utile aggiungere un sensore di luminosità ambientale… per esempio per poter accendere le luci del giardino al calar del sole. Si potrebbe dedicare un’uscita (con relè Normalmente Chiuso) per poter collegare tali luci in serie. Avremo così la possibilità di attivare un timer per esempio dalle 00.00 alle 5.00, facendo spegnere le luci in questo periodo notturno. Otterremo in questo modo un’accensione automatica al calare del sole e uno spegnimento automatico al sorgere del sole. Per evitare sprechi energetici, il timer andrebbe a forzare lo spegnimento delle luci esterne tra la mezzanotte e le 5 di mattina.
…4 relè non sono sufficienti? Potremmo riprogettare l’Irrighino Shield aggiungendo un PortExpander I2C. A questo punto otterremmo N uscite (decine e decine di relè…). Rimarrebbe necessario a questo punto aumentare il numero di timer… la eeprom interna dell’AtMega potrebbe contenere i dati di almeno un centinaio di programmi differenti.
Si potrebbe monitorare il livello di una cisterna di raccolta acqua piovana.
Si potrebbe loggare l’andamento del livello della cisterna.
Si potrebbe implementare un controllo a distanza (RS485) per portare in posizione comoda in giardino i comandi manuali di accensione/spegnimento delle elettrovalvole.
Le idee a riguardo potrebbero essere infinite, ma soprattutto improntate alle esigenze di ogni singolo giardino/proprietario. Il solo limite a questo punto è la vostra fantasia!
Buon divertimento!
Nel file compresso qui linkato troverete tutto il materiale del progetto (schema e PCB dell’IrrighinoShield (Eagle) e lo Sketch Arduino): Irrighino.zip
Un particolare ringraziamento allo staff di Elettronica Open Source per avermi regalato (attraverso l’iniziativa Review4U) la possibilità di cimentarmi nello studio del progetto Arduino.
Grazie a tutti per il tempo riservatomi nella lettura dell’articolo.
Ciao e complimenti per il progetto. Volevo farti solo un domanda, non capisco il contenuto della cartella che ho scaricato, sono tutti files pde, il programma non è irrighino.pde. Tutti gli altri non dovrebbero essere header ed essere richiamati con gli include da irrighino.pde?
RispondiEliminaGrazie e se magari ho detto una cavolata perchè abbastanza inesperto, me ne scuso.
Si, il programma è irrighino.pds. Gli altri file .pde sono parti di programma ugualmente importanti. E' solo un modo di organizzare in modo ordinato il progetto! Guarda qui per maggiori informazioni: http://liudr.wordpress.com/2011/02/16/using-tabs-in-arduino-ide/
RispondiEliminaCIAO!
Ciao,
RispondiEliminacome faccio ad avere l'elenco completo dei componenti dello shield irrighino? Ho le elettrovalvole che funziano a 220v, mentre ho visto che tu usi elettrovalvole a 24v, è sufficiente cambiare i relè? Grazie
Salve perche ho problemi con il taso set che non mi seleziona i parametri?
RispondiEliminaHo provato a compilare i tuoi sketch, ma mi da errore nella libreria "Wire" da dove la posso scaricare? Grazie
RispondiEliminaRisolto problema wire che necessitava di rinominare i comandi nella nuova libreria, il problema del tasto set se si usa il mega è dovuto al fatto che il tasto risponde troppo velocemente, qualcuno sa come risolverlo? (ho provato mettendo delle pause nel programma, ma il problema è a livello libreria credo)
RispondiEliminaCiao,
RispondiEliminacome faccio ad avere l'elenco completo dei componenti dello shield irrighino?