Vittori Kevin - Kalaja Davide - Classe 5A-IPAI - Esame di Stato: 2016-2017
Gestione irrigazione terreno
Applicazione con Arduino e sensore di umidità
Descrizione
Tramite il circuito programmabile basato su ARDUINO viene controllata l'umidità del terreno e attivato il sistema di irrigazione in base al seguente output:
1) <20% Display scrive Asciutto, Led rosso e segnale acustico attivi, pompa brushless accesa
2) 20%-60% Display scrive Umido, Led verde lampeggia
3) >60% Display scrive Bagnato, Led rosso e Led verde lampeggiano
Hardware
In Fig. 1 è riportato lo schema elettrico del sistema
Lo schema è costituito dalle seguenti parti/moduli
1) Arduino UNO/RedBoard
2) Modulo sensore umidità terreno
3) Pulsante Test
4) Pompa Brushless
5) Buzzer
6) Display LCD 16x2
7) Gruppo Led Verde/Rosso
1) Arduino UNO/RedBoard
Arduino è un sistema (framework) open source che permette la prototipazione rapida e l'apprendimento veloce dei principi fondamentali dell'elettronica e della programmazione. È composto da una piattaforma hardware per il physical computing sviluppata presso l'Interaction Design Institute, un istituto di formazione post- dottorale con sede a Ivrea, fondato da Olivetti e Telecom Italia. Questa si basa su un circuito stampato che integra un microcontrollore con pin connessi alle porte I/O, un regolatore di tensione e un'interfaccia USB che permette la comunicazione con il computer. A questo hardware viene affiancato un ambiente di sviluppo integrato (IDE) multipiattaforma (Linux, Apple Macintosh e Windows). Questo software permette di scrivere programmi (sketch ) con un linguaggio semplice e intuitivo derivato da C/C++ chiamato Wiring (cablare, collegare con cavi). Arduino può essere utilizzato per lo sviluppo di oggetti interattivi stand-alone (funzionare da solo)ma può anche interagire, tramite collegamento, con software residenti su computer. La particolarità del progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per chiunque: si tratta quindi di un hardware open source.
2) Modulo sensore umidità terreno
In Fig. 2 è riportato lo schema elettrico del modulo sensore di umidità.
Lo schema di Fig. 2 mostra un tipico amplificatore di corrente a transistor.
La resistenza di base del transistor è costituita da due resistenze in serie: una fissa da 100 Ω (SO_R1 ) e da una variabile il cui valore dipende dal grado di umidità del suolo ( SO_R2).
La tensione di uscita (AOUT), funzione della corrente di emettitore, è prelevata ai capi della resistenza di emettitore SO_R3.
Se il suolo presenta un grado di umidità basso (terreno secco ) il valore di SO_R2 è elevato, la corrente di base del transistor è bassa.
Di conseguenza la corrente di emettitore è bassa e AOUT assume valori bassi.
Man mano che l’umidità aumenta, la resistenza SO_R2 diminuisce, la corrente di base del transistor aumenta facendo aumentare la corrente di emettitore con relativo aumento di AOUT. Questa tensione viene applicata all’ingresso del convertitore A/D di Arduino tramite il pin A0.
La tensione AOUT è funzione dell’umidità relativa a cui è sottoposto in sensore immerso nel terreno.
Il modulo dispone tre terminali (Vcc, GND, AOUT) e un diodo Led:
1. Aout: uscita analogica
2. Led SO_L1: Led Power
3. Vcc e GND ( Vcc=5V, GND=Massa)
3) Pulsante test
Il pulsante (Fig. 3) è collegato tra il pin 8 e GND, il pin deve essere abilitato tramite
software come input con resistenza di PullUp.
1) Test=OFF (pulsante aperto) il pin 8 si trova a livello
alto (5V), il software legge il valore dell’umidità
fornita da sensore (ingresso A0).
2) Test=ON (pulsante chiuso) il pin 8 si trova a livello
basso (GND), il software esclude A0 e tramite un
contatore viene simulata l’umidità da 0% a 85% in
questo modo è possibile testare il funzionamento
delle tre fasi.
4) Pompa Brushless
La pompa alimentata a 5V viene attivata tramite il transistor P2N2222 (Fig 4).
Si utilizza il circuito di figura perché la corrente di uscita sul Pin 10 non è sufficiente a pilotare la pompa.
Il transistor (NPN) viene polarizzato per il funzionamento come interruttore.
1) Pin10=HIGH (transistor in saturazione) massima corrente di base, massima corrente di collettore, pompa on (attivata).
2) Pin10=LOW (transistor interdetto) minima corrente di base, minima corrente di collettore, pompa off (spenta).
Parte inglese
A pump is a device that raises or transfer fluids. Pumps are used for a variety of applications, such as: draingate, sewage, irrigation, chemical industry, medical fields and steel mills. In this field, irrigation, we are using a electronic submersible pump which has a hermetically sealed motor close-coupled to the pump body. The whole assembly is submerged in the fluid to be pumped.
5) Buzzer
Il buzzer o in italiano cicalino, suonerà quando il terreno risulterà totalmente Asciutto.
6) Display LCD 16x2
Display LCD 2 righe e 16 caratteri alfanumerici con retroilluminazione. Utilizza il controller HD44780 (datasheet). Alimentazione: 5 Vdc.Fornito di un trimmer per la regolazione del contrasto e 4 piedini: vcc, gnd, SDA e SCL.Lo schermo a cristalli liquidi (LCD) è un display a schermo piatto, una visualizzazione elettronica o un video che utilizza le proprietà modulanti della luce dei cristalli liquidi. I cristalli liquidi non emettono direttamente la luce.
Nel display sarrano visualizzati di dati relativi la percentuale di umidità e in quale dei tre parametri risulterà il terreno (Asciutto, Umido, Bagnato).
Video
Software
Di seguito è riportato un estratto del sostware di gestione. Il programma completo si trova in allegato (solo utenti registrati).
Programma
if(um<20.0) // Gestione "Asciutto"
{ lcd.setCursor(2,0); lcd.print(" ");
lcd.setCursor(2,0); lcd.print(um,1);
lcd.setCursor(8,0); lcd.print("Asciutto");
digitalWrite(ledverde,LOW);
digitalWrite(ledrosso,HIGH);
digitalWrite(pompa,HIGH); // attiva la pompa per l'irrigazione lcd.setCursor(6,1); lcd.print("ON ");
tone(buzzer,frequenza,200);
delay (50);
frequenza=frequenza+100;
if (frequenza>3000) {frequenza=700;} }
In questo breve sketch viene mostrato cosa fa il programma quando il terreno risulta asciutto.