rilevamento temperatura con arduino - Silva

annuncio pubblicitario
[Digitare il testo]
I.I.S. G.SILVA M.RICCI – Legnago (VR)
Anno Scolastico 2012/2013
Classe
Sezione
Indirizzo
5a
A
INFORMATICA
PROGETTI di ELETTRONICA
RILEVAMENTO TEMPERATURA
E UMIDITÀ DEL TERRENO
CON ARDUINO
INDICE:
INGLESE
• Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 3
ELETTRONICA
• Situazione di partenza e scopo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 4
• Componenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 4
• Descrizione
o LM35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 5
o LM358. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
o Sensore umidità. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
o Display lcd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
o Arduino UNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
• Schema a blocchi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10
INFORMATICA
• Codice programma ARDUINO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11
STORIA
• Seconda rivoluzione industriale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14
INGLESE
INTRODUCTION
My project is about detecting the temperature and the soil moisture from two
sensors.
The temperature sensor detects the temperature in Celsius, but this value is too
small and so I must use an operational amplifier to amplify the output.
The second sensor is more specific and can detect only the moisture of the soil.
Its output is a percentage value of the amount of water of the soil.
After the determination of the values, this electronic circuit send this value on
Arduino and then, when it has finished processing the data, Arduino print the
temperature and the moisture on a LCD display. The circuit can also control when the
temperature or the moisture are too high or too low and, on the LCD, we can see this
alert messages.
ELETTRONICA
SITUAZIONE DI PARTENZA E SCOPO
Lo scopo del progetto è rilevare la temperatura dell’ambiente e l’umidità del
suolo per controllare con più efficacia la necessità di acqua oppure evitare
l’esposizione a un’elevata temperatura.
Per la realizzazione, dopo un’attenta documentazione su siti Internet e su
riviste elettroniche, si sono cercati alcuni schemi elettrici, con i relativi componenti, e
i sensori per rilevare le grandezze fisiche (temperatura e umidità).
I valori ottenuti dai sensori verranno elaborati da un microcontrollore (µC), nel
nostro caso da Arduino con µC ATMEGA328P-PU, e successivamente visualizzati
su un display LCD. Questi valori potranno essere visualizzati anche su un monitor
collegando Arduino al computer mediante cavo USB.
COMPONENTI
•
•
•
•
•
•
•
•
Sensore di temperatura (LM35)
Amplificatore operazionale (LM358)
Sensore umidità per terreno
Display lcd (DISPLAYTECH 162B)
Arduino UNO
2 resistenze (1KΩ e 8,2KΩ)
2 trimmer (1KΩ e 2KΩ)
Cavi per i collegamenti
DESCRIZIONE
LM35 è un trasduttore di temperatura che converte una grandezze fisica (la
temperatura) in un segnale elettrico (tensione).
Caratteristiche dell’LM35:
•
•
•
•
•
È analogico (la tensione in uscita varia con continuità)
Risponde in tensione (V=K·T, con T in °C e K=10mV/°C - sensibilità)
È lineare
È passivo (richiede l’alimentazione esterna Vcc a 5 V).
Range -55°C a 150°C
LM35
Risposta dell’LM35
Il sensore, in uscita, fornisce 10mV per grado Centigrado, quindi a 20°C avremo
in uscita 0,2 V. Lavorando con tensioni così piccole, risulta molto instabile (le
misurazioni sono molto diverse tra loro e falsano la rilevazione).
Per risolvere questo problema è necessario realizzare un circuito di
condizionamento per il sensore in modo da amplificare l’uscita e avere così un range
di variazione tra 0÷5 V, e a renderla più stabile.
Schema del circuito di condizionamento per l’LM35
Il circuito di condizionamento è stato
realizzato con l’amplificatore operazionale
LM358, ad
alimentazione singola,
in
configurazione non invertente in modo da avere
in uscita (pin 7) un’amplificazione pari a:
Configurazione non invertente classica
Rf è la resistenza di retroazione, nel nostro caso è la serie tra R3 e il trimmer R.
Rs è rappresentata da R2.
Vi è l’uscita del sensore.
Per calibrare il circuito, il trimmer verrà variato in modo da avere Rf=9KΩ
ottenendo un’amplificazione di 10 volte Vi (a una temperatura esterna di 20°C, la
tensione in uscita del circuito è di 2 V).
LM358 è l’amplificatore operazionale che utilizzo nel circuito di
condizionamento dell’LM35. All’interno di questo componente sono presenti due
A.O.
L’LM358 si differenzia dagli altri amplificatori perché è ad alimentazione
singola, è sufficiente mettere il pin 8 a +5V e pin 4 a massa. Questa soluzione è
efficace se non si dispone dell’alimentazione duale, ma in questo caso non potremmo
avere in uscita dall’A.O. tensioni negative.
Il sensore di umidità è specifico per l’umidità
del terreno. È dotato di due placche in metallo per
facilitare l’inserimento nel terreno. Le placche
servono anche per la misurazione. Il sensore invia la
tensione da una piastra all’altra e in base alla
tensione ricevuta calcola la quantità d’acqua
presente (il terreno fa da resistenza, più acqua è
presente nel suolo più è la tensione che riceverà).
In questo caso è già presente un circuito di
condizionamento per questo sensore.
Questo sensore fornisce due tipi di uscite, una
analogica e una digitale. L’uscita analogica restituisce una tensione compresa tra 0 e
5 V ed è molto precisa. L’uscita digitale restituisce solo i due stati logici 0 o 1 (lo
stato commuterà da 0 a 1 quando l’umidità supera un certo valore definito con
l’apposito trimmer).
Il display LCD è del tipo DISPLAYTECH 162B. Questo tipo di LCD
possiede 2 righe su cui è possibile scrivere 16 caratteri (è del tipo 16x2).
I pin del display devono essere collegati rispettando la seguente tabella:
Pin n°
Collegamento
1
5V
2
GND
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GND
5V
TRIMMER
OUT 12 (ARDUINO)
GND
OUT 11 (ARDUINO)
OUT 5 (ARDUINO)
OUT 4 (ARDUINO)
OUT 3 (ARDUINO)
OUT 2 (ARDUINO)
Descrizione
Anodo del led della
retroilluminazione
Catodo del led della
retroilluminazione
Massa
Alimentazione lcd
Contrasto dei caratteri
Controlla dove scrivi i dati
Modalità scrittura
Abilita la scrittura sui registri
Bit dati 0
Bit dati 1
Bit dati 2
Bit dati 3
Bit dati 4
Bit dati 5
Bit dati 6
Bit dati 7
I pin 9-16 sono i pin di dati. In questo caso per la trasmissione vengono
utilizzati solo 4 bit, verranno usati i pin 13-16, i pin restanti non vengono utilizzati e
quindi non verranno collegati (rimarrebbero comunque a 0 V).
Arduino UNO una piattaforma open-source basata su una scheda a
microcontrollore.
La principale caratteristica di Arduino sta nel fatto che il suo sistema è “aperto”
sia nel software e sia nell’hardware: gli schemi elettrici e tutte le altre informazioni
per costruire un clone di Arduino sono reperibili online gratuitamente.
Arduino viene utilizzato in tutto il mondo e viene implementato per realizzare
progetti che vanno dagli strumenti musicali alle installazioni interattive per i musei, ai
prodotti tecnologici come i lettori mp3 e microPC portatili, alla riproduzione di
strumenti da laboratorio ad alto costo (non disponibili a tutti per questo motivo) ed in
molte università e scuole per scopi didattici.
Oltre alla scheda elettronica, Arduino include anche un ambiente di sviluppo
(IDE in inglese) cioè un programma da installare sul PC per scrivere i programmi che
si vogliono caricare sulla scheda Arduino (nello slang di Arduino sono denominati
sketch). Una volta pronto, il programma, attraverso un pulsante viene trasformato in
un eseguibile adatto al processore di Arduino e caricato sulla scheda.
Interfaccia Arduino UNO
SCHEMA A BLOCCHI
INFORMATICA
CODICE PROGRAMMA DI ARDUINO
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float temp=0;
float umid=0;
char grado=223;
void setup(){
Serial.begin(9600);
Serial.println(" Rilevamento\ntemperatura e umidita'\n");
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Rilevare umidita");
lcd.setCursor(0, 1);
lcd.print(" e temperatura ");
delay(2000);
}
void loop(){
//acquisizione della temperatura dal pin A0
temp=0;
temp=analogRead(A0);
temp=((50*temp)/1023)-2;
// acquisizione dell’umidità dal pin A5
umid=0;
umid=analogRead(A5);
umid=(5*umid)/1023;
umid=(100-((umid*100)/5))*2;
if(umid>100)
umid=100;
//controlli
lcd.clear();
if(umid<20 || umid>80 || temp<10 || temp>30){
//controllo dell’umidità
if(umid>20 || umid<80){
if(umid>80){
lcd.setCursor(0, 0);
lcd.print(" TERRENO TROPPO");
lcd.setCursor(0, 1);
lcd.print(" UMIDO !!!");
Serial.println("TERRENO TROPPO UMIDO !!!");
}
else{
lcd.setCursor(0, 0);
lcd.print(" TERRENO TROPPO");
lcd.setCursor(0, 1);
lcd.print(" SECCO !!!");
Serial.println("TERRENO TROPPO SECCO !!!");
}
}
//controllo della temperatura
if(temp<10 || temp>30){
if(temp>30){
lcd.setCursor(0, 0);
lcd.print(" TEMPERATURA");
lcd.setCursor(0, 1);
lcd.print(" ELEVATA !!!");
Serial.println("TEMPERATURA ELEVATA !!!");
}
else{
lcd.setCursor(0, 0);
lcd.print(" TEMPERATURA");
lcd.setCursor(0, 1);
lcd.print(" TROPPO BASSA !");
Serial.println("TEMPERATURA TROPPO BASSA !");
}
}
}
else{
//stampa
lcd.setCursor(0, 0);
lcd.print("Umidita':");
lcd.print(umid);
lcd.print(" %");
lcd.setCursor(0, 1);
lcd.print("Temperat:");
lcd.print(temp);
lcd.print(grado);
lcd.print("C");
Serial.print(" ");
Serial.print(temp);
Serial.print(" C | ");
Serial.print(umid);
Serial.println(" %");
}
delay(2000);
}
STORIA
SECONDA RIVOLUZIONE INDUSTRIALE
La seconda rivoluzione industriale inizia nel 1870 e terminerà nel 1914 con
lo scoppio della Prima Guerra Mondiale. Questo periodo è caratterizzato da un
grande sviluppo industriale in particolar modo conobbero una grande espansione
l’industria chimica, siderurgica, edilizia, automobilistica, aereonautica e della
telefonia.
Con questa rivoluzione si venne a contatto con
nuove fonti di energia, si passò dal carbone
all’elettricità e al petrolio. Queste nuove risorse resero
possibile la realizzazione di importanti innovazioni
tecnnologiche come il motore a scoppio, con cui si
costruirono le prime automobili. Grazie all’elettricità si
inventarono le prime lampadine così, col tempo, si
riuscirono ad illuinare le strade delle città.
Determinante per la realizzazione di queste
nuove invenzioni fu il ruolo della scienza. In
passto le nuove tecnologie erano dovute solo a
intuizioni, adesso invece le invenzioni sono frutto
di accurate ricerche. In questo periodo inoltre si
afferma una nuova figura, quella dell’ingegnere.
L’uso della scienza diventa fondamentale anche
all’interno della fabbriche, ottimizzando il lavoro
di ogni simgolo operaio e introducendo la catena
di montaggio, questa nuova rivoluzione riduceva
di granlunga i tempi di lavoro così da aumentare la
produzione e rendere i nuovi prodotti alla portare di tutti. La catena di montaggio
venne utilizzata per la prima volta nella produzione in serie delle prime automobili.
Scarica