15
1 ISTITUTO TECNICO AGRARIO G. PRESTA Esami di stato 2014 Alunno: De Santis Kevin Classe V, sez. B Anno scolastico 2013-2014 Realizzazione di un impianto domotico atto al controllo di una serra

Tesi DOMOTICA ARDUINO

Embed Size (px)

Citation preview

Page 1: Tesi DOMOTICA ARDUINO

1

ISTITUTO TECNICO AGRARIO G. PRESTA

Esami di stato 2014

Alunno: De Santis Kevin

Classe V, sez. B

Anno scolastico 2013-2014

Realizzazione di un impianto domotico

atto al controllo di una serra

Page 2: Tesi DOMOTICA ARDUINO

2

Indice

1) Prefazione ……………………………………………………….pag. 3

2) Introduzione……………………………………………………..pag. 4

3) Componenti elettronici ………………………………………….pag. 5

4) Software…………………………………………………………pag. 8

5) Modalità d’uso.………………………………………………….pag. 11

6) Conclusioni………………………………………………………pag. 14

7) Ringraziamenti…………………………………………………..pag. 15

Page 3: Tesi DOMOTICA ARDUINO

3

1. Prefazione

Negli ultimi anni ho coltivato in maniera del tutto autodidatta una improvvisa passione

verso l’informatica. Circa un anno fa scoprii l’esistenza del progetto Arduino che mi

colpii irrimediabilmente. Ordinai su internet un kit definito “starter” contenente la

scheda Arduino UNO e una serie di componenti per iniziare a prendere confidenza

con la stessa. Nei 6 mesi successivi realizzai un piccolo impianto domotico in grado

di controllare alcune lampade, un allarme magnetico, delle ventole e una webcam

all’interno della mia cameretta. Qualche mese fa ero alla ricerca di una tesi da

sviluppare per l’esame di stato, doveva essere qualcosa che mi appartenesse e che

mi avrebbe reso fiero di me stesso. Guardando alcune foto dei precedenti anni

scolastici mi venne in mente il periodo passato presso l’azienda “Jentu” per un

periodo di alternanza scuola-lavoro. Ricordai così di un vecchio computer all’interno

di una stanza minuscola. Cercai da subito di avvicinarmi spinto dalla curiosità per

capire cosa ci facesse un pc tra diversi ettari di serre. Mi colpì un software presente

sul monitor ricchissimo di funzionalità. Chiesi informazioni al tutor aziendale che mi

spiegò che su quel computer era presente un software in grado di ricevere

informazioni sul microclima all’interno della serra e programmare l’irrigazione e la

fertirrigazione. Fui così colpito da un illuminazione: perché non presentare un

modello di serra dotato di un intelligenza artificiale in grado di sostituire o

semplificare l’attività dell’uomo, mantenendo comunque costi ragionevoli e accessibili

a tutti.

Kevin De Santis

Page 4: Tesi DOMOTICA ARDUINO

4

2. Introduzione

Lo scopo principale di una serra è quella di creare al suo interno il microclima ideale

per la coltura che andremmo a coltivare. Per alterarne il microclima ci si avvale di vari

impianti come il riscaldamento e l’irrigazione.

In questa tesi dunque andremo a costruire l’impianto domotico di una serra in

miniatura, in primo luogo andremo a scegliere e a descrivere i componenti elettronici

che sono necessari per dar vita all’impianto utilizzando Arduino Uno come cuore del

progetto. Successivamente andremo a scrivere due software,il primo in C per

programmare il microcontrollore in modo da inviare e ricevere dati e in base a questi

svolgere determinate operazioni, il secondo in Visual Basic per donare un’interfaccia

grafica all’impianto e fornire quelle istruzioni che andranno a costituire l’intelligenza

artificiale della macchina. In ultimo vedremo come interfacciarsi con la serra e in

particolar modo con l’interfaccia grafica per settare i valori chiave del meccanismo di

controllo automatico o semplicemente avviare i vari impianti manualmente.

Page 5: Tesi DOMOTICA ARDUINO

5

3. Componenti elettronici

I componenti elettronici di questo progetto non sono molto complessi e neanche

difficili da reperire.

Tuttavia lo scopo di una serra è quello di controllarne e modificarne il microclima

presente all’interno per trarne il massimo profitto dalla coltura scelta, ciò che al

momento è impossibile da fare in pieno campo.

Arduino Uno

Arduino UNO è una scheda elettronica di

piccole dimensioni con un microcontrollore

e circuiteria di contorno, utile per creare

rapidamente prototipi e per scopi hobbistici

e didattici.È un componente di vitale

importanza per questo progetto in quanto

è il cuore dell’impianto domotico, che

riceve e invia dati al pc tramite una

connessione USB.

Alimentatore ATX

Questo genere di alimentatore è quello

utilizzato nei Computer fissi di recente

produzione ed ha la funzione di alimentare

i vari componenti che costituiscono il pc

(Scheda madre, hard disk, schede RAM,

porte USB ecc.). In questo caso,

apportandogli alcune modifiche, lo utilizzeremo come trasformatore di corrente

per alimentare alcuni dei componenti che necessitano un voltaggio di 12V o

superiore.

4 Relay Module

Il relè è un dispositivo elettrico comandato

dalle variazioni di corrente per influenzare

le condizioni di un altro circuito. In

sostanza, il relè è un interruttore che non

viene azionato a mano, ma da un

elettromagnete.Questo modulo è dotato di

quattro relè che utilizzeremo come un

interruttore digitale per aprire e chiudere i

circuiti che collegano i componenti all’alimentatore ATX. In questo caso il modulo

preso è compatibile con la scheda Arduino UNO in quanto per eccitare la bobina

presente all’interno di ogni relè, che quindi aprirà e chiuderà i circuiti, sono

sufficienti i 5V erogati da Arduino.

Page 6: Tesi DOMOTICA ARDUINO

6

DHT11

È un sensore di temperatura e umidità

digitale molto facile da usare, abbastanza

preciso nelle misurazioni, e dalle dimensioni

compatte. Questo componente ci permetterà

di conoscere in ogni momento la

temperatura e l’umidità presente nella serra.

Servomotori

Un Servomotore è un organo meccanico di

potenza, in grado di gestire unmovimento, il

quale è comandato da un segnale logico di

bassa obassissima potenza. Useremo

questi componenti per far aprire e chiudere i

portelloni laterali e quelli al colmo. Questi

saranno alimentati dai 5V erogati da Arduino

UNO, l’angolo di rotazione verrà indicato da

noi attraverso il controllore che invierà un

segnale al componente specificando l’angolo da noi scelto nel software.

Ventole da 120mm

Queste ventole ci serviranno per attuare una

areazione forzata all’interno della serra che

ci permetterà di abbassare la temperatura e

l’umidità all’interno. Queste ventole in genere

si possono trovare in alimentatori ATX di

ultima generazione e hanno il compito di

evitare un surriscaldamento dei componenti.

Richiedono un voltaggio di 12V per poter

funzionare al massimo delle performance

perciò le alimenteremo tramite l’alimentatore

ATX e collegheremo il circuito a uno dei relè

prima citati.

Impianto di Riscaldamento

Quest’impianto in una serra permette di

aumentare la temperatura in caso di un

raffreddamento eccessivo che potrebbe

compromettere la vitalità della pianta o la

produzione della stessa. In questo caso

Page 7: Tesi DOMOTICA ARDUINO

7

useremo una comune stufetta alimentata a 12V che quindi per controllarne il

funzionamento collegheremo a un relè. L’erogazione di aria calda è dovuta a un

leggero cortocircuito che avviene al suo interno e che ne causa il riscaldamento

dei cavi elettrici, una ventola poi spingerà l’aria a passarci attraverso,

scaldandosi.

Illuminazione

In questo caso l’illuminazione ha solo una

funzione estetica, ma può avere anche

scopi produttivi in quanto può accorciare i

tempi di induzione a fiore di piante

ornamentali. In questo progetto utilizzeremo

delle lampadine che richiedono un voltaggio

di 24V erogati dall’ATX , verranno poi

collegate a un relè che ci permetterà di

chiudere o aprire il circuito.

Impianto d’irrigazione

L’irrigazione ha una grande importanza in

quanto l’acqua è uno dei pochi mezzi che

hanno a disposizione le piante per

assorbire sostanze nutrienti attraverso le

radici. In questo caso useremo una piccola

pompa ad immersione da 10l/minuto

immersa in un serbatoio (in questo caso

una bottiglia di plastica da 2l). Questo

componente richiede un voltaggio di 12V

perciò verrà alimentata dall’ATX e

controllata tramite un relè.

Camera

Ho inserito all’interno della serra una webcam

alimentata tramite porta USB che ci permetterà

di osservare dall’esterno l’andamento della

vegetazione.

Page 8: Tesi DOMOTICA ARDUINO

8

4. Software

In questo caso in realtà non si parla di un solo software bensì di due, il primo è stato

scritto nel linguaggio C, un linguaggio di programmazione ad alto livello molto simile

al linguaggio macchina. Questo è statoinviato nella memoria di Arduino UNO e

presenta tutte quelle istruzioni mirate a inviare un determinato segnale in determinate

circostanze piuttosto che in altre (es. Arduino UNO invierà il segnale

“RiscaldamentoON” quando il riscaldamento verrà avviato) e tradurre in azioni

determinati segnali ricevuti da un altro software presente sul PC (es. Quando

ArduinoUNO riceverà il segnale “A”, si metterà in moto per eseguire tutte quelle

operazioni per arrivare arieggiamento).

Un discorso molto simile si può fare per quanto riguarda il software presente sul pc

scritto in Visual Basic, un linguaggio di programmazione di fascia bassa realizzato da

Microsoft. Tale software contiene tutte quelle istruzioni che compongono una sorta di

intelligenza artificiale in grado di prendere decisioni in base ad alcuni segnali ricevuti

da Arduino. Oltre a ciò è stata curata l’interfaccia grafica rendendola accattivante ma

allo stesso tempo semplice ed intuitiva. È possibile programmare fino a tre irrigazioni

al giorno per un determinato intervallo di tempo espresso in minuti. Attraverso questo

software inoltre è possibile collegarsi con diverse webcam collegate all’interno della

serra (in questo caso solo una).

Software di controllo inviato ad Arduino scritto in C

Ricevere e inviare valori di

temperatura e umidità: Arduino

comunicherà con il sensore DHT11 e

riceverà un segnale elettrico che

verrà convertito in un valore

numerico grazie alle librerie “dht11.h”

messe a disposizione dalla casa

produttrice del sensore. Una volta

ricevuto il segnale lo invierà al

software sul PC.

Attivare o disattivare

l’arieggiamento: Quando Arduino

riceverà il comando “A” invierà un

impulso elettrico ai servomotori

per portare il portellone al colmo

ad un apertura di 90° gradie quello

al lato di 120° gradi, inoltre darà

voltaggio al relè numero 4 facendo

eccitare la bobina che chiuderà il

circuito ATX-Ventolemettendole in

Page 9: Tesi DOMOTICA ARDUINO

9

funzione, inoltre invierà al software PC il risultato “AriaON”. Quando invece riceverà il

comando “B” porterà i servomotori ad una apertura di 0° gradi e interromperà il

voltaggio al relè causando l’apertura del circuito prima citato, inviando il segnale

“AriaOFF”.

Attivare o disattivare il

riscaldamento:Quando

Arduino riceverà il comando

“C” chiuderà il circuito del

relè numero 1 che farà

eccitare la bobina al suo

interno chiudendo il circuito

ATX-Stufa azionando il riscaldamento. Oltre a ciò invierà il segnale

“RiscaldamentoON”. Nel caso invece del comando “D” il flusso di corrente al relè si

interromperà aprendo il circuito ATX-Stufa ed invierà il segnale “RiscaldamentoOFF”.

Attivare o disattivare

l’irrigazione: Quando

Arduino riceverà il comando

“E” darà corrente al relè

numero 2 chiudendo i circuito

ATX-Pompa azionando

l’irrigazione e inviando il

segnale “IrrigazioneON”. Questa verrà disattivata alla ricezione del comando “F”, il

circuito ATX-Pompa verrà aperto interrompendo l’irrigazione e inviando il segnale

“IrrigazioneOFF”.

Attivare o disattivare

illuminazione: Se Arduino

riceverà il comando “G” darà

corrente al relè numero 3

chiudendo il circuito ATX-luci

e inviando il segnale

“LuciON”. In caso di ricezione

del comando “H”

interromperà la corrente al relè prima citato che aprirà il circuito facendo interrompere

la corrente alle luci e inviando il segnale “LuciOFF”.

Page 10: Tesi DOMOTICA ARDUINO

10

Software del server presente sul pc scritto in Visual Basic .NET

Il software da

installare sul pc

server presenta

un interfaccia

mirata ad essere

molto intuitiva

composta da vari

Button, Label e

Gif per renderla

allo stesso

tempo semplice

e accattivante.

Da questa infatti

è possibile

azionare manualmente tutti gli impianti con la semplice pressione di un button.

Da qui inoltre è possibile attivare il controllo automatico dell’intera serra, cercando di

mettere da parte le imperfezioni dell’uomo e affidando tutta la produzione alla

macchina. Per l’inserimento dei valori di temperatura e umidità ho inserito delle

textbox nelle quali inserire i valori scelti. Inoltre i segnali ricevuti da Arduino vengono

corretti e inseriti in delle Label sull’interfaccia grafica. Ho programmato inoltre una

ListBox nel pannello camera che all’avvio caricherà tutte le webcam connesse al pc e

permetterà di visualizzarle in maniera veloce econ estrema facilità.

Page 11: Tesi DOMOTICA ARDUINO

11

5. Modalità d’uso

Controllo manuale: come già detto in precedenza l’interfaccia grafica è stata

costruita per essere semplice ed intuitiva, infatti già all’avvio del software saremo in

grado di avviare i vari impianti con dei semplici click.

1.Arieggiamento ON; 2. Arieggiamento OFF; 3. Riscaldamento ON; 4. Riscaldamento OFF;

5. Irrigazione ON; 6. Irrigazione OFF; 7. Illuminazione ON; 8. Illuminazione OFF. Inoltre

possiamo leggere in ogni momento e in tempo reale lo stato dell’impianto.

Controllo automatico: Per poter svolgere il suo lavoro è necessario immettere prima

dell’attivazione di tale modalità d’uso i valori di temperatura e umidità minimi, massimi e

ottimali in modo che il software abbia dei riferimenti su quando attuare determinate

operazioni. Ovviamente tali valori cambiano a seconda della coltura scelta.

1.Temperatura minima; 2. Temperatura ottimale; 3. Temperatura massima; 4. Temperatura

corrente; 5. Umidità minima; 6. Umidità ottimale; 7. Umidità massima; 8. Umidità corrente.

Page 12: Tesi DOMOTICA ARDUINO

12

Oltre a tali valori è inoltre necessario impostare quante irrigazioni svolgere nell’arco

della giornata e per quanto tempo. Tenendo come riferimento la pompa utilizzata il

software ci darà subito una stima dei litri di acqua che andremo ad utilizzare.

1. Orario di accensione della pompa; 2. Tempo di funzionamento della pompa; 3. Totale in

litri di acqua erogata secondo le specifiche della pompa e il tempo di funzionamento; 4.

Abilita questa programmazione o meno.

Fatto ciò potremmo attivare la modalità

automatica dando un segno di spunta

sull’apposita CheckBox.

L’intelligenza artificiale creata seguirà questa logica:

Se la temperatura corrente è minore o uguale della temperatura minima

azionerà il riscaldamento;

Se la temperatura corrente è maggiore o uguale alla temperatura massima

azionerà l’arieggiamento;

A raggiungimento della temperatura ottimale il riscaldamento o

l’arieggiamento verranno interrotti;

Se l’umidità corrente è minore o uguale all’umidità minima azionerà

l’irrigazione;

Se l’umidità corrente è maggiore o uguale all’umidità massima azionerà

l’arieggiamento;

Al raggiungimento dell’umidità ottimale l’irrigazione o l’arieggiamento verranno

interrotti;

Se all’ora corrente è programmata un irrigazione verrà azionata l’irrigazione;

Se il tempo d’irrigazione è terminato l’irrigazione verrà interrotta.

Page 13: Tesi DOMOTICA ARDUINO

13

Il diagramma di flusso sottostante illustra sinteticamente tutto il pensiero

dell’intelligenza artificiale alla ricezione di alcuni dati.

Page 14: Tesi DOMOTICA ARDUINO

14

6. Conclusioni

Abbiamo scelto e descritto i vari componenti da utilizzare, abbiamo visto come programmare

il software da inviare ad Arduino e quello da installare sul pc ed abbiamo visto come

utilizzare l’interfaccia grafica del software. A questo punto non resta che realizzare una serra

dove inserire l’impianto ed il gioco è fatto. Nel mio caso ho progettato e costruito una serra

con capriata, realizzata in compensato e rivestitacon un telo in PVC semitrasparente. A

questa ho inserito all’interno tutti i componenti prima descritti ad esclusione del alimentatore

ATX, Arduino UNO e i 4 relay module poiché tali componenti non hanno la necessità di

lavorare all’interno della stessa.

Poiché la struttura è stata costruita sopra una base in compensato non ho potuto realizzare

uno strato di terra direttamente su

questo in quanto avrebbe causato un

alterazione dello stesso e inoltre ci

sarebbe stato un problema riguardante il

ristagno idrico favorendo l’inserzione di

malattie prevalentemente fungine. Per

cui ho piantato la coltura in un vaso in

plastica dotato di sottovaso al quale ho

inserito un tubo flessibile che, grazie ad

una quasi impercettibile pendenza,

convoglia l’acqua in eccesso in un

recipiente che potrebbe essere lo stesso

dove è immersa la pompa per

l’irrigazione creando un riciclo dell’acqua evitando gli sprechi.

Per quanto riguarda l’arieggiamento, nel

progetto erano previste ben 12 ventole

posizionate due per ogni interasse sui

lati lunghi della serra e 8 servomotori

posizionati due per i lati lunghi della

serra e sulle due pendenze del tetto. In

questo caso ho utilizzato solo due

ventole e due servomotori

semplicemente per una questione

economica.

Tutto sommato il lavoro ha dato i suoi

frutti è questo progetto è stato chiuso

cercando di ridurre al minimo le spese e

magari riciclando alcuni componenti, in questo caso le luci e il tubo d’irrigazione.

Page 15: Tesi DOMOTICA ARDUINO

15

7. Ringraziamenti

I miei genitori per avermi permesso di studiare in questi anni e per aver sostenuto questa

mia passione verso l’informatica e l’elettronica in genere.

Martina Gabriele per avermi dato qualche spunto per quanto riguarda l’automatizzazione

della serra e per avermi procurato qualche metro di tubo gocciolante

Tarantino Jacopo per avermi aiutato nella realizzazione della struttura.

Prof. Mello Vincenzo per avermi fornito i valori ottimali di microclima per la pianta di

pomodoro.

NiktorTheNat dal quale, grazie alle sue guide su YouTube, ho imparato una buona parte di

tutto ciò che so sulla programmazione.

Staff del forum Arduino.cc sezione Italiana per aver chiarito ogni mio dubbio riguardo Arduino

e i suoi componenti