Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

23
voti

Centralina d'irrigazione programmabile

Indice

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 16x2, quattro 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.png

Schema.png

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.png

RTC.png

RTC.jpg

RTC.jpg

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:

R17=\frac{Rsensore\cdot (Vin-Vout)}{Vout}

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


Sensore di luce

Sensore luce.JPG

Sensore luce.JPG

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

Elettrovalv.JPG

Elettrovalv.JPG

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.JPG

Scheda.JPG

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.JPG

Fori passanti.JPG


Collegamenti

master colori.png

master colori.png


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

gesso.jpg

dimensioni: 3x3x3cm


Interfaccia esterna

esterna.jpg

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.jpg

Pag principale.jpg


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

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.jpg

modauto.jpg

modprogra.jpg

modprogra.jpg


menu2.jpg

menu2.jpg

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


Menu3.jpg

Menu3.jpg

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


menu4.jpg

menu4.jpg

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


menu5.jpg

menu5.jpg

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


menu6.jpg

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.jpg

menu7.jpg

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

16

Commenti e note

Inserisci un commento

di ,

Con MikroC PRO

Rispondi

di ,

Scusa, ma il listato che hai allegato, con che programma deve essere compilato ? Ho provato con l'HI-TECH ma mi da un sacco di errori.

Rispondi

di ,

Ciao Galaxi93, complimenti davvero per il lavoro svolto ! Avrei intenzione pure io di costruirmi una schedina con PIC per il controllo di 6 valvole per irrigazione, lasciando la possibilità di cambiare l'orario di avvio ciclo e la durata di lavoro di ogni singola valvola, visualizzando i tempi sul display. Per il momento escludevo i vari sensori. Mi manca pero' l'esperienza sull'interfaccia con un LCD, e la gestione dell'ora (mediante il DS130). Potresti darmi uno spunto, o eventualmente una traccia del sorgente del PIC ?

Rispondi

di ,

Fantastica. Mi piace è molto meglio di una che compri in negozio. Vai galaxi!!

Rispondi

di ,

Ottimo lavoro ed esposizione se si esclude qualche ingenuita' (o dimenticanza?) Comunque bravo per l'impegno dimostrato.

Rispondi

di ,

Ok, ti mando un PM.

Rispondi

di ,

ciao io dovrei apportare delle modifiche al tuo progetto in quanto servono ben 4 zone di irrigazione in tempi diversi e rimuovere i vari sensori lasciando solo quello della pioggia, ma non avendo il file sorgente non so proprio da dove poter iniziare.Puoi darmi una mano o magari il file sorgente?Grazie anticipatamente

Rispondi

di ,

Apprezzo l'impegno e l'entusiasmo non solo per il progetto ma anche per la presentazione sul blog. Il suggerimento di utilizzare l'alternata è però molto importante come quello di accenderlo ogni tanto. Per l'alternata ho visto in giro application semplici dove con un pin del micro si applica un'onda quadra ad un condensatore per eliminare la DC. Oppure puoi usare un secondario in più del trasformatore. Comunque puoi anche lasciare in DC come è adesso ma almeno attaccare l'attuale partitore ad un pin del micro invece della 5V fissa, per spegnerlo. Con resistenze basse come 1K è tanta la corrente in DC che passa sull'elettrodo per non avere elettrolisi. Metterei anche una resistenza e dei diodi di protezione sull'ingresso analogico del micro perchè mi sembra rischioso portarlo secco fuori nella terra. Comunque il tutto se pensi di rivedere il progetto altrimenti, visto che funziona bene, hai già ottenuto il tuo obiettivo e i miei complimenti.

Rispondi

di ,

Un bel lavoro nel complesso.. ma un paio di ingenuità le vorrei notare: un diodo volano in parallelo al relè ci starebbe proprio bene e anche quei transistor montati come inseguitori di emettitore "stavano meglio" ad emettitore comune in modo da lavorare in saturazione

Rispondi

di ,

Il sensore di umidita` dovrebbe essere alimentato solo quando viene fatta la misura e in alternata, invertendo cioe` la polarita` ai capi degli elettrodi. In questo modo si evitano fenomeni di elettrolisi che falsano la misura e corrodono gli elettrodi.

Rispondi

di ,

Bravo Galaxi93! Complimenti! Per luca.cat: guarda questo messaggio nel forum. http://www.electroyou.it/phpBB2/viewtopic.php?f=15&t=25574 Ciao. Paolo.

Rispondi

di ,

Visto che metti a disposizione solo il file HEX, come si fa a programmare il PIC senza il sorgente ed progetto??? Ho una PICstart PLUS. Grazie.

Rispondi

di ,

Bravissimo Galaxy!

Rispondi

di ,

Un ottimo lavoro davvero anzichè stare sempre in campagna ad irrigare ti programmi pure quando lo si deve fare.Risparmi molta fatica e hai la certezza che non te ne dimentichi.idea geniale

Rispondi

di ,

Bel lavoro! I miei complimenti!

Rispondi

di ,

Un lavoraccio a quanto vedo.Quindi non ti posso dire "vai a zappare" hihihi :D :D

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.