Irrighino: quando Arduino diventa un aiuto-giardiniere! [recensione review4U]

Irrighino: quando Arduino diventa un aiuto-giardiniere!

Progetto Arduino. 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è.

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.

Arduino Irrighino – 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!

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.

STAMPA     Tags:,

20 Comments

  1. valterdotnet 20 luglio 2012
  2. sako84 15 febbraio 2012
  3. monoblocco 4 luglio 2011
  4. daniele.teodosi 25 agosto 2012
  5. FlyTeo 9 giugno 2011
  6. MauroCarotenuto 4 luglio 2011
  7. stewe 13 giugno 2011
  8. monoblocco 3 luglio 2011
  9. MauroCarotenuto 4 luglio 2011
  10. Emanuele 4 luglio 2011
  11. angeloalfa 13 giugno 2011
  12. stewe 13 giugno 2011
  13. Franceso.Gallo 14 agosto 2014
  14. Franceso.Gallo 14 agosto 2014
  15. monoblocco 14 luglio 2011
  16. eliott 5 gennaio 2014
  17. monflai 22 giugno 2011
  18. Emanuele 22 giugno 2011
  19. monflai 22 giugno 2011
  20. Manuel.Gatti 15 dicembre 2014

Leave a Reply