Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Introduzione Serra automatizzata - Tesina
Il percorso di studi di indirizzo elettronico prevede, al terzo anno, lo studio della scheda di sviluppo open-source Arduino per realizzare sistemi automatici. L'interesse personale e una naturale predisposizione a questo argomento mi ha indirizzato verso la costruzione di una serra automatizzata di cui viene controllata la temperatura, l'umidità del terreno, l' illuminazione interna e lo stato della batteria che hpo sviluppato nella mia tesina di maturità. Tutti i dati sono accessibili sia in locale che da remoto. La serra si compone di una parte hardware e di una software. Quella hardware è composta da sensori e finecorsa. I sensori rilevano la temperatura esterna, interna e dell'acqua, l'umidità del terreno, il livello dell'acqua, la presenza di pioggia e la luminosità. Invece i finecorsa rilevano lo stato del tetto e della tenda. La parte software si occupa di acquisire i dati provenienti dai sensori, di convertirli e una volta fatto ciò di elaborarli. A seconda delle soglie, impostabili dall'utente, il programma svolge specifiche azioni e controlli. A fine routine, tutti i dati vengono inviati tramite internet a due WebServer, uno per i dispositivi mobile ed uno per i PC. I due WebServer sono raggiungibili da entrambe le tipologie di dispositivi, ma a secondo della loro destinazione sono state effettuate migliorie e ottimizzazioni soprattutto riguardanti l'interfaccia. Tutti i dati sono salvati sulla microSD; essendo salvati in file .txt standard sono editabili anche da PC. Il modello realizzato per la tesina è da intendersi unicamente come un prototipo, infatti non offre garanzie e sicurezze sufficienti a renderlo commercializzabile.
L' HARDWARE
Schema di principio:
Di seguito verranno elencate le principali caratteristiche dei componenti hardware utilizzati,
tuttavia per informazioni più dettagliate e complete si consiglia la lettura dei datasheet
allegati.
Pag. 5
Arduino Mega 2560
Vista la complessità del sistema realizzato e il discreto
numero di trasduttori ed attuatori impiegati, si è scelto
di usare la scheda Arduino Mega 2560 che offre in
tutto 54 pin digitali e 16 analogici.
Visto che non vengono effettuate operazioni grafiche
(come l'utilizzo di display touch o elaborazione di
immagini) e lo shield wifi non viene utilizzato come
server, la potenza di calcolo richiesta non è
eccessivamente alta, perciò la scelta più oculata ed
economica è proprio l'Arduino Mega 2560.
Shield WiFi
La connessione internet viene affidata ad uno shield compatibile
cc3000, il quale offre un buon livello del segnale e la stabilità
dello stesso è molto buona, a patto che non vengano inviati
ingenti quantità di dati per secondo.
Si è preferito utilizzare uno shield wifi invece di uno ethernet che
offrirebbe maggiore banda utilizzabile perchè, così facendo, si
rende la serra completamente indipendente da qualsiasi struttura.
Valvola idraulica
Invece di utilizzare una pompa d'acqua per l'irrigazione, si è
scelta una valvola idraulica a 12V che offre consumi ridotti e
rende l'assorbimento dell'acqua da parte del terreno più graduale
e costante.
Pag. 6
Striscia RGB
Volendo assicurare un'illuminazione costante anche in
giornate nuvolose, ai lati della serra sono state posizionate
due strisce LED.
Per riprodurre al meglio la luce solare viene fornita alle
piante luce rossa e blu, così facendo si riproduce al meglio lo
spettro luminoso del sole (in allegato l'approfondimento
“ ). Le strisce vengono
Illuminazione artificiale con diodi led”
alimentate a 12V con una corrente totale approssimativa di
circa 1A, per risparmiare spazio i resistori di limitazione della
corrente sono di tipo SMD e saldati direttamente sulla
striscia.
Dispositivi di controllo
Avendo Arduino MEGA una corrente massima di uscita (per pin) pari
a 40mA, il pilotaggio diretto degli attuatori è impossibile, perciò
sono stati utilizzati alcuni MOS-FET per disaccoppiare Arduino dagli
attuatori.
Per il controllo dei led di avviso, del buzzer e dell'LCD invece,
trattandosi di correnti molto ridotte, non sono stati utilizzati
dispositivi di disaccoppiamento.
Infine vista la possibilità che si verifichino problemi di alimentazione, l'intero circuito può
essere spento in qualsiasi momento tramite un MOS-FET.
Per permettere il pilotaggio tramite Arduino tutti i MOS-FET sono pilotati in modalità low-
side (con il source riferito a massa).
Pag. 7
Sensori di temperatura
Per la misurazione della temperatura vengono utilizzati tre
DS18S20.
Questo sensore dispone di tre pin di cui due per l'alimentazione
(+5V e GND) e uno per la trasmissione dati che avviene,
interfacciandolo con Arduino, grazie al protocollo OneWire che
verrà descritto in seguito.
E' stato scelto questo sensore perché restituisce direttamente il
valore numerico della temperatura, bypassando qualsiasi
conversione che introdurrebbe errori indesiderati; inoltre è
impermeabile, il che lo rende perfetto per funzionare in un ambiente come una serra
sottoposta a precipitazioni.
Sensore di umidità del terreno
Il sensore per la misurazione dell'umidità del terreno è costituito
da due parti: la prima parte è costituita da una forca con un
filamento metallico, la seconda da un circuito che trasforma la
variazione della resistenza del filamento in una variazione di
tensione.
Tale circuito presenta 6 pin: 2 collegano la forca, 2 sono usati per
l'alimentazione (+5V e GND) e i rimanenti sono le uscite.
Questo modulo comprende un trimmer a vite che determina la
soglia in base alla quale varia l'uscita digitale, tuttavia per il monitoraggio viene utilizzato il
pin analogico che permette una maggiore rielaborazione del dato.
Sensore di pioggia
Il sensore di pioggia è simile al sensore di umidità, cambia solo la
struttura del rilevatore.
Per perfezionare il rilevamento la forca viene sostituita da una
piastra ricoperta da una serpentina metallica. La scheda per la
conversione della misurazione è esattamente la stessa.
Pag. 8
Sensore del livello dell'acqua
L'unica differenza tra questo sensore e quello per la pioggia è
la larghezza della piastra di rilevamento, per ogni altro aspetto
è completamente identico al sensore di pioggia.
Sensori di luminosità
Per il rilevamento dell'intensità luminosa sono stati sfruttati
4 fotoresistori che costituiscono (insieme a 4 resistori da
10kOhm) dei partitori di tensione per la misurazione da
parte di Arduino.
Finecorsa
Tutti i finecorsa utilizzati sono di tipo optoelettronico.
Sono costituiti da un fotodiodo ad infrarossi che irradia la base di
un fototransistor. Per il corretto funzionamento dei componenti ,
che verranno alimentati entrambi a 5V, sono stati utilizzati due
resistori, uno da 100Ohm collegato all'emettitore del transistor e
uno da 200Ohm collegato all'anodo del fotodiodo.
Si è preferito questo tipo di finecorsa al posto di quelli meccanici
per evitare problemi di ossidazione, inoltre i finecorsa
optoelettronici offrono una velocità di risposta più rapida rispetto
alla controparte meccanica.
Batteria
La batteria che garantisce l'alimentazione di tutto il circuito è al
piombo con tensione a carico di circa 12V e capacità di 9Ah.
Pag. 9
Ricarica della batteria
Il sistema di ricarica della batteria prevede tre componenti: il sistema di controllo, il sistema
di monitoraggio e la fonte di energia.
Il controllo della carica è effettuato tramite un relè comandato da un MOS-FET. Se la
bobina viene eccitata la batteria viene fisicamente distaccata dalla fonte di energia, in caso
contrario la batteria viene caricata.
Per monitorare lo stato di carica della batteria viene semplicemente utilizzato un partitore di
tensione con rapporto dei resistori di 0,25, l'ordine dei resistori è delle decine di Kohm, in
questo modo la corrente assorbita dal partitore è minima, così da ridurne il consumo. La
parte centrale del partitore è collegata all'Arduino che, tramite apposite procedure determina
se interrompere o meno la ricarica.
Si è preferito effettuare la carica solo al raggiungimento di una soglia invece che in modo
continuo per evitare ripetuti mini-cicli di carica/scarica che si tradurrebbero nel decadimento
prematuro della batteria.
La fonte di energia che ricarica la batteria è costituita da due
pannelli solari collegati in serie, secondo diverse misurazioni
fatte, la tensione massima prodotta in caso di piena luce è di 14V,
mentre quella prodotta in caso di scarsa luminosità è di circa
8/9V. La corrente massima prodotta è di circa 500/600 mA. Vista
la variabilità della velocità di ricarica e della corrente richiesta dal
sistema, è impossibile fare una stima utile dell'autonomia della
serra, nel capitolo cinque si proverà a calcolarla.
Pag. 10
Pilotaggio dei motori
Al posto di un ponte ad H, per il controllo dei motori si è
preferito usare due ponti integrati che riducono le dimensioni
finali del circuito, inoltre gli unici due motori in continua
presenti sono molto piccoli e hanno correnti di picco pari a
200mA, di conseguenza l'utilizzo di BJT, MOS-FET o relè è
inutile e superfluo.
Motori in continua
I motori per l'apertura/chiusura di tetto e tenda sono alimentati
a 5V e ridotti. I giri per minuto (RPM) sono molto bassi,
poiché il motore presenta una riduzione del rapporto di
trasmissione e ciò permette un controllo delle parti in
movimento molto preciso. Inoltre grazie alle dimensioni
ridotte la corrente di picco è di soli 200mA, mentre quella a
regime varia, a seconda della forza sviluppata, tra i 100 e i
150mA.
Servo motore
Allo scopo di ottimizzare al massimo la produzione dei pannelli
solari, viene utilizzato un servo motore comandato da Arduino. A
seconda della luminosità rilevata tramite le fotoresistenze, i
pannelli vengono ruotati. La corrente di picco è molto ridotta
(circa 80mA), perciò viene pilotato direttamente da Arduino,
senza interfacce o ponti.
Led di segnalazione
Gli 8 Led di segnalazione sono di colore rosso, giallo e blu.
Per ottimizzare il circuito vengono pilotati da Arduino che gli fornisce una tensione di 5V
che però viene attenuata a circa 2,5V tramite un resistore di limitazione.
Pag. 11
Resistori
Viste le correnti ridotte impiegate in buona parte del circuito, i resistori sono tutti da 1/4 di
W, di conseguenza le loro dimensioni sono ridotte ottimizzando ulteriormente il circuito.
Regolatore di tensione
Per rendere compatibile la batteria principale
con il ponte e con la batteria secondaria è
necessario abbassare la tensione da un valore
minimo di circa 11,7V (batteria al limite della
carica) a 5V, per farlo si può operare in due
modi: realizzare un semplice partitore oppure
utilizzare un regolatore. Per questa applicazione
si è scelta la seconda opzione, infatti il partitore
presenta due criticità:
-Per utilizzarlo con correnti di media entità
servono resistori con potenze dissipabili abbastanza elevate;
-Non si adatta alle variazioni dell'ingresso, perciò l'uscita ne segue l'andamento.
Il regolatore utilizzato (LM7805), indipendentemente dall'ingresso, che può variare tra 7V e
20V, eroga una tensione perfettamente stabilizzata a 5V.
Batteria secondaria
Per assicurare più stabilità possibile al sistema di controllo
(Arduino) e ai sistemi di sensori e di rilevamento, si è scelto di
alimentare quest'ultimi tramite una batteria ausiliaria. La batteria
viene caricata dal regolatore di tensione posto a valle della
batteria principale. Il circuito interno della batteria abbassa la
tensione del regolatore a 3,7V e ricarica una pila ricaricabile; lo
stesso circuito trasforma nuovamente i 3,7V in 5V e li rende
disponibili all'Arduino e a tutti i sensori.
Pag. 12 Cap.4
IL SOFTWARE
Flow chart:
Pag. 13
Vista la complessità della logica di controllo, il programma è diviso in sotto-funzioni, di
seguito verranno analizzate le diverse fasi del sistema:
PRIMA FASE
Come di consueto la prima parte de