3 Maggio 2011

Centralina d'irrigazione programmabile

Submitted by Galaxi93

Introduzione

Si tratta di una centralina programmabile, a zona unica e dotata di sensori esterni in grado di comunicare e stabilire se c’è il sole diretto sulle piante e se il terreno è umido o secco. Si possono impostare due diverse modalità: la modalità programmata e quella automatica. Nella prima si possono impostare 5 diverse irrigazioni a orari stabiliti, con durata prestabilita. In questa modalità viene preso in considerazione solo il sensore di umidità(escludibile) che ha la funzione di segnalare se ha piovuto o meno (dato che si presume che le irrigazione siano programmate ad intervalli di tempo distati tra loro e che in quei periodi non ci sia il sole battente). Nella seconda modalità, invece, si può impostare solo la durata dell’irrigazione: infatti sarà la centralina a decidere quando irrigare, basandosi sul tasso di umidità del terreno (regolabile) e se c’è la luce del sole diretta. Il tutto è impostabile tramite un comodo LCD alfanumerico 16x2quattro tasti e una semplice struttura a menù per l’impostazione di tutte le funzioni. Inoltre è presente un altro pulsante che ha la funzione di attivare manualmente l’elettrovalvola d’irrigazione: premendolo infatti si aprirà l’elettrovalvola e rimarrà aperti fino ad una nuova pressione del tasto, oppure impostando un determinato tempo (tramite i tasti “+” e “-“). La centralina è ovviamente dotata di un modulo RTC (Real Time Clock) dotato di batteria propria, per avere un riferimento orario anche quando la centralina è spenta (o va via la corrente).

 

Schema Elettrico

 

Schema
 

L’alimentazione è data da un piccolo trasformatore (va bene uno con un uscita 7-20Vac e da almeno 10VA) e un semplice LM7805 (che va alettato) che fornisce la tensione stabilizzata utile per il pic e tutto il resto. Il cuore del circuito è il stranoto PIC16F877 che controlla e gestisce tutta la centralina. E’ dotato di un quarzo da 16Mhz. L’ora viene generata e salvata dal modulo RTC che non è altro che un DS1307 con il suo quarzo e batteria montato su una schedina. Il modulo l’ho comprato su ebay, ma non è impossibile costruirselo da se. Riporto lo schema del modulo, presente anche sul datasheet dell’integrato:

RTC
 

Sensore umidità

Per il sensore di umidità è stata utilizzata una porta analogica, in modo da misurare una tensione creata dal partitore R17 e Rsensore (che è il sensore che poi analizzeremo), inversamente proporzionale alla resistenza del sensore e quindi dell’umidità. Pei il valore di R17 dovete far delle prove voi: io ho messo una resistenza da 1KΩ, voi dovete per prima cosa misurare la resistenza del vostro sensore a secco e umido; poi dovete calcolare tramite questa formula inversa:

Formula

 

Il valore di Vout deve essere compreso tra 1,56V e 3,3V.

 

Sensore di luce

Sensore luce

 

Per il sensore di luce è stato utilizzato un operazionale in configurazione da comparatore: infatti non fa altro che comparare la tensione risultante dal partitore fotodiodo-R13 direttamente proporzionale alla luce presente, con quella uscente da un trimmer. Questo sensore va regolato esponendolo alla luce diretta del sole, e regolando il trimmer finche sul display non appare il simbolo (un sole). Sinceramente non so dire il perché abbia usato un comparatore anziché una porta analogica che semplificava il circuito: semmai dovessi rifare la scheda della centralina, sicuramente sarà la prima cosa che modificherò.

LCD

Si tratta di un LCD alfanumerico a 16 caratteri per 2 linee. E’ controllato in modo seriale (4 pin dati) e dotato di retroilluminazione. Inoltre, caratteristica che molti potrebbero considerare superflua ed inutile, è possibile attraverso il programma del PIC, modificare la luminosità del display e il contrasto. Per il primo non ci sono particolari problemi, dato che alla fine si tratta di un led, quindi è stato collegato alla porta RC2 che corrisponde al modulo CCP1 configurato in modalità PWM. Mentre per il contrasto non si può collegare il piedino di regolazione direttamente al PIC, ma va usato un circuito che attenua l’onda quadra generata dal microcontrollore.

 

Elettrovalvola

Elettrovalvola

Per l’elettrovalvola io ne ho utilizzata una che era stata cambiata dall’idraulico, all’impianto di irrigazione del giardino. L’elettrovalvola in questione aveva il difetto di perdere acqua durante il funzionamento, cosa perfettamente sistemata con un po’ di teflon :) . Il circuito è pensato per reggere una tensione di 220V e una bassa potenza (meglio non superare i 200W). Il relè deve essere almeno da 5A 5V! Altrimenti non funziona!

 

Circuito stampato

Ho realizzato un circuito stampato a doppia faccia per contenere la dimensioni non abbondanti all’interno della scatola. Per realizzarlo ho utilizzato la tecnica della fotoincisione e per allineare le due facce ho fatto in questo modo: prima ho esposto ai raggi UV una faccia della scheda. Finito con quella, ho passato con un pennellino la soluzione per lo sviluppo del positivo, solo negli angoli dove sono presenti i “cerchiolini” per il fissaggio dello stampato, in modo da metterli in risalto. Fatto ciò, ho fatto due piccoli forellini proprio al centro di questi cerchiolini in modo da avere un riferimento preciso anche sull’altra faccia: infatti basta allineare l’altro master in modo che i due fori siamo perfettamente centrati.

Scheda

Inoltre sono presenti dei fori passanti nel circuito: per mettere in comunicazione le due facce ho utilizzato del filo di rame, che ho saldato da entrambe la parti come se fosse un reoforo di un componente.

Fori passanti

 

Collegamenti

master colori

 

 

Connettore Nome Collegamenti
J1 Alimentazione  
J2 Alim. elettrovalvola Nessuna polarità
J3 Elettrovalvola Nessuna polarità
J4 Pulsanti 1=>Tasto Invio 2=>Tasto 3=>Tasto 4=>Tasto Esci 5=>Tasto Manuale 6=>Vcc
J5 Sensori esterni 1=>Sensore Luce 2=>Tasto Manuale 3=>Led 4=>Sensore Umidità 5=>GND
J6 LCD Stessa piedinatura dei moduli LCD
SV1 Modulo RTC 1=>Vcc 2=>Dati 3=>Clock 4=>Interrupt 5=>GND

Sensori Esterni

Al contrario del sensore di luce, che non necessità di troppe spiegazioni dato che si tratta di un fotodiodo montato su un bastoncino, per il sensore di umidità le cose si complicano. Infatti inizialmente come sensore di umidità usai dei semplici elettrodi infilati nella terra, ma riscontrai dei problemi: infatti con il passare del tempo la resistenza del terreno cambiava (sia nelle condizioni di secco sia in quelle di umido) svasando le misure e andando fuori scala. Informandomi mi sono reso conto che la resistenza del terreno cambia non solo in base alla quantità d’acqua contenute in esso, ma anche dalle sostanze nutritive e i sali minerali. Informandomi meglio, poi, ho letto che per ovviare questo problema, si doveva utilizzare del gesso al cui interno c’erano degli elettrodi. Il gesso è un materiale molto poroso ed è in grado di assorbire l’acqua abbastanza velocemente senza però far passare nessun altra sostanza. In pratica il blocchetto di gesso sotterrato in un vaso, assorbe la stessa quantità di umidità presente nel terreno. Anche il posizionamento è importante: il sensore va posto nella zona di terreno (o nel vaso) che tende a seccare per primo oppure in una zona che è una via di mezzo tra il secco e il bagnato (rispetto al resto del giardino o vasi). Ecco una foto del mio blocchetto (scusate ma è rimasto un anno sottoterra e a quanto pare gli elettrodi non erano proprio in acciaio inox come riportava la scatola)

gesso.jpg

dimensioni: 3x3x3cm

 

Interfaccia esterna

esterna.jpg

 

Questa scatolina è molto utile se la distanza centralina e zona irrigata è abbastanza grande. Infatti da questa interfaccia si può vedere se l’elettrovalvola è attiva (così si può vedere se ci sono problemi) e attivare l’irrigazione manuale. A me è risultata molto utile sia per fare le prove di funzionamento e sia nell’uso quotidiano (può capitare magari una giornata molto calda in cui un po’ d’acqua in più alle piante non guasterebbe).

 

Il Firmware

Il programma che ho inserito nel PIC della centralina è abbastanza complesso. Infatti la scrittura del codice per una struttura a menu, mi ha portato via un sacco di tempo, quindi non mi dilungherò sul come funziona il programma nel dettaglio, ma solo alcune particolarità di esso.

Il tempo

L’ora, come avevo già accennato prima, viene mantenuta da un RTC messo in comunicazione con il PIC tramite il protocollo seriale I2C. RTC (che non è altro che l’integrato DS1307) possiede anche un’uscita chiamata SQW/OUT che se programmata fornisce un onda quadra con frequenza nota. Nel programma è stata impostata a 1Hz e l’uscita è stata collegata alla porta RA4: in questo modo il PIC ha un preciso riferimento per il tempo di irrigazione e altre funzioni.

 

Uso e impostazioni della centralina

Mi sembra opportuno creare un “manuale di istruzioni” per la centralina, nonostante sia molto facile da capire.

Appena accesa la centralina vi troverete nella “pagina” principale del menù, ovvero quella rappresentante l’orario e la modalità programmata e qualche simbolo.

Pag principale

Premendo invio, si entra nel menù e con i tasti + e – si potranno scorrere tutte le voci; ripremendo il tasto invio, si entrerà nel sottomenu selezionato; premendo invece esci si ritornerà alla pagina principale.

 

Menu1.jpg

 

Questo sottomenù è quello atto alla programmazione delle irrigazioni. La prima scelta da fare è quella della modalità. Poi in base alla scelta fatta dovrete inserire le altre impostazioni.

 

ModAuto

 

ModProg

 

menu2

 

Questo sottomenù serve ad impostare l’ora. Niente di particolare d’aggiungere.

 

Menu3

 

Questa voce serve ad impostare la sensibilità del sensore di umidità: più il cursore è verso “MAX” e più il sensore sarà sensibile.

 

menu4

 

Questa voce serve ad impostare il livello di luminosità del display (le foto sono vecchie, la scritta sbagliata "dispay" è stata sistemata).

 

menu5

 

Questa voce serve ad impostare il livello di contrasto del display (anche qui la stessa cosa).

 

menu6.jpg

 

Questa voce serve ad impostare il tempo in cui la retroilluminazione rimane attiva in caso di inattività. L’intervallo di tempo impostabile va da 30 min a 1min oppure sempre acceso.

 

menu7

 

Questa voce serve più che altro per resettare il tutto. Riporta anche la versione del firmware e le irrigazioni totali.

 

Conclusione

La centralina è stata provata per un anno e nel corso di questo tempo non ha mostrato segni di follia (XD) neanche con temperature estreme. L'unco piccolo problema che ho notato è che il modulo RTC non è molto preciso, e specialmente quando fa freddo (questiHa pure superato quel famigerato lasso di tempo in cui si va in vacanza e tutto inizia a non funzionare come dovrebbe… ovviamente io non ho fatto eccezione: mentre ero in vacanza il tubo che entrava nell’elettrovalvola (quello di mandata ovviamente) si è magicamente staccato (dopo vari mesi che veniva usato, proprio quella settimana in cui non ci sono doveva capitare) lavando il mio povero nonno che in quel momento era li.

 

File download

Centralina di irrigazione

 

Sezione: 

Commenti

Gentilmente vorrei conoscere il nome del fotodiodo ed il valore della resistenza R13. Questi dati non sono presenti nello schema. Infatti volevo realizzare la centralina di irrigazione per gli ovvi vantaggi durante l'estate, e credo sia il solo dato mancante. Ringrazio di cuore. Pitommy

Ciao, il fotodiodo è in realtà un fototransistor NPN L-53P3C ed R13 è da 120kΩ. Non ho specificato questi componenti perchè non sono critici, nel senso che qualsiasi fototransistor va bene (si può anche utilizzare una fotoresistenza, forse più comoda) ed R13 dipende dal sensore utilizzato.