UNIVERSITATEA POLITEHNICA BUCUREȘTI
FACULTATEA DE TRANSPORTURI
Sistem automat pentru
menținerea temperaturii în seră
Profesor Îndrumător: Student:
[Link]. Angel Ciprian Cormoș Marian-Cătălin Pîrvulescu
Grupa:8314
Cuprins
[Link]…………………………………………………………………………………………….… pag.2
[Link] bloc a senzorului…………………………………………………………………...... pag.3
[Link] de automatizare………………………………………………………………………… pag.4
3.1 Schema electrica…………………………………………………………………….... pag.4
3.2 Descrierea componentelor…………………………………………………………. pag.5
3.3 Cablajul imprimat……………………………………………………………………… pag.9
[Link] de afisare……………………………………………….………………………………… pag.12
4.1 Schema electrica…………………………………………………………………….. pag.12
4.2 Descrierea componentelor………………………………………………………. pag.13
4.3 Cablajul imprimat……………………………………………………………………. pag.15
[Link] logica a programul sistemului de automatizare……………………. pag.18
[Link] sistemului de automatizare……………………………………………….. pag.19
[Link] logica a programului sistemului de afisare…………………………… pag.20
[Link] sistemului de afisare…………………………………………………………. pag.21
[Link] de functionare si mentenanta………………………………………………….. pag.24
[Link]………………………………………………………………………………………… pag.25
1
1. Introducere
Monitorizarea temperaturii si umiditatii este esentiala pentru cresterea
productivitatii, scaderea consumului de energie, cresterea eficientei si diminuarea
pierderilor de productie sau depozitare. In depozitele frigorifice, depozitele de
legume-fructe, ciupercarii, sere, etc, este necesara mentinerea unei anumite
temperaturi.
Neavand un control asupra acestor parametri exista riscul sa pierdem banii
investiti si chiar putem ajunge la faliment, in functie de natura si dimensiunea
afacerii.
In acest caz apare necesitatea utilizarii unui sistem de monitorizare de la
distanta, sistem care ofera instantaneu date despre temperatura din incinta. Sa
presupunem ca avem o sera in care temperatura este vitala pentru cresterea
plantelor.
Se pot programa limite minime si maxime pentru temperatura astfel incat
atunci cand acestea sunt depasite sa se activeze sistemele de incalzire respectiv
racire. Chiar daca suntem la birou, intr-o calatorie de afaceri sau in vacanta, vom
stii sigur ca sistemul functioneaza corect, deci nu este necesar sa ne contactam
angajatii.
Un astfel de sistem elimina erorile factorului uman, cheltuielile suplimentare
cu personalul, aduce aport de timp ce-l puteti utiliza in dezvoltarea afacerii si va
prezenta cu obiectivitate starea de depozitare (camere frigorifice de carne, lactate,
preparate, sere, depozite de legume-fructe etc). Daca va doriti un asemenea
sistem, ar fi bine sa luati in considerare ceea ce este prezentat mai jos. Afisajul
sistemului poate fi pus oriunde doriti sau poate fi inlaturat, totul dupa dorinta
dumneavoastra. Temperatura va fi mentinuta intre limitele dorite culturile
dumneavoastra neavand de suferit. Daca v-am starnit curiozitatea, puteti incerca
fiabilitatea si simplitatea produsului descris in paginile urmatoare.
Avantalele acestui senzor
Un mare avantaj al acestui ansamblu este simplitatea si posibilitatea de a
adauga sau nu circuitul de afisare, deoarece, sistemul de automatizare funtioneaza
independent. Un alt mare avantaj este posibilitatea de a adauga mai multe intrari si
iesiri pentru actionari diverse: pompa de apa..Un dezavantaj este prezenta a doua
microcontrolere, deoarece creste costul de proiectare. Desi pretul este crescut,
avantajul celui de-al doilea microcontroler (din circuitul de afisare) constituie
posibilitatea de amplasare a acestuia la distanta fata de primul controler (din
sistemul de automatizare).
2
[Link] bloc a senzorului
Blocurile de alimentare impreuna cu blocurile Vcc si GND (masa)-> Asigura
energia electrica necesara funtionarii la parametrii optimi a intregului sistem.
Senzorul de temperatura-> Are rolul de a citi valoarea temperaturii din mediul
inconjurator si de a o transmite mai departe pentru a fi interpretata si afisata.
Porturile C-> Asigura legatura cu blocurile de alimentare si cu senzorul de
temperatura.
Convertorul analog digital-> Are rolul de a converti datele oferite de senzorul
in limbaj masina.
Porturile D-> Asigura comunicarea intre componentele sistemului.
Porturile B-> Asigura legatura cu sistemele de incalzire, racire si cu afisajul.
Blocurile de actionare a incalzirii si racirii -> Acestea fac legatura cu sistemele
de incalzire si racire. Ele raspund comenzilor blocului Port B.
Blocurile Oscilator-> Acestea au rolul de a mentine frecventa de tact ridicata.
Blocul Afisare-> Are rolul de a afisa valoarea temperaturii in grade Celsius
3
[Link] de automatizare
3.1 Schema electrica
Sistemul de automatizare este format din: senzorul de temperatura si
sistemul de masura.
Senzorul de temperatura este format dintr-un senzor LM35 care se
conecteaza la sistemul de masura prin intermediul unui conector tata cu 3 pini.
Sistemul de masura este format din: microcontrolerul ATmega328, sistemul
de alimentare, oscilatorul extern, LED-urile care indica actionarea sistemelor de
racire sau incalzire, releele care actioneaza aceste sisteme, rezistentele care au rol
de limitare a curentului, tranzistoarele, care au rol de actionare a bobinei fiecarui
releu, conectorul mama cu 3 pini care face legatura cu senzorul LM35, conectoarele
de putere care fac legatura cu sistemele de incalzire si racire si conectorul cu 2 pini
4
care va realiza transmisiunea [Link] intre senzor si microcontroler se va
face printr-un cablu cu mufa mama si tata.
3.2 Descrierea componentelor
Senzor de temperatura LM35
LM35 sunt senzori de temperatura a caror tensiune de iesire este direct
proportionala cu temperatura in grade Celsius. LM35 nu necesita calibrare externa
pentru a furniza o precizie de ±0.25°C la temperatura de 25°C si de ± 0.75°C pe
tot domeniul de temperatura. Impedanta de iesire scazuta , ieşirea liniara şi
calibrarea interna fac din LM35 un circuit usor de conectat cu alte circuite de citire
sau de control. In plus, daca se doreste afisarea in grade Fahrenheit se utilizeaza
circuitul din aceeasi serie, LM36.
Caracteristici:
Calibrare directa în grade Celsius (°C)
Gama de masurare de la -55 ° C la +150°C
In aplicatia noastra, senzorul masoara doar temperaturi intre 0-110oC. Pentru a
mari gama este nevoie de un montaj suplimentar
Potrivit pentru aplicaţiile de la distanţă
Tensiune de alimentare de la 4V la 20 V
Curentul consumat 60 μA
Auto-încălzire in timpul functionarii 0.08 °C (capsula aflata în aer)
Tensiunea de iesire a senzorului este proportionala cu 10mV/oC <=>
Vout=10mV/ oC
5
Graficul Tensiune de iesire-Temperatura LM35
(pentru sistemul prezentat)
1200
1000
800
Vout(mV)
600
400
200
0
0 20 40 60 80 100 120
Temperatura oC
Temperatura Valoare in Binar Valoare in Hexazecimal
25°C 00000000 00110010 0032 h
10,5°C 00000000 00010101 0015 h
0,5°C 00000000 00000001 0001 h
0°C 00000000 00000000 0000 h
-0,5°C 11111111 11111111 FFFF h
-24,5°C 11111111 11001111 FFCF h
-25°C 11111111 10010010 FF92h
6
Rezultatul conversiei Interpretare
Octet Octet
superior inferior
00000000 00010101 - Octetul superior, 00h ne arata ca valoarea citita
este pozitiva,deci octetul inferior se citeste direct.
-Bitul 0 din octetul inferior ne arata daca se
adauga 0,5°C. Deoarece el are valoarea 1, il vom
aduna la final.
- Din octetul inferior se retin doar bitii 1-7, bitul 0
primind valoarea 0, adica: 00001010=10
- In final, temperatura interpretata va fi 10°C
+0,5°C= 10,5°C
11111111 11001111 - Octetul superior este FFh, deci temperature este
negative, iar octetul inferior se citeste in
complement fata de doi (fiecare bit din octetul
inferior va primi valoarea lui inversa: 1 devine 0 si
0 devine 1)
- inainte de a face complementarea, scadem
1(adica valoarea 0000001 in binar), pentru a
pastra intact bitul 0 intact.
- Dupa ce am efectuat complementarea obtinem
00110001
- Bitul 0 este 1, deci vom adauga 0,5°C la final.
- Din noua valoare a octetului inferior pastram
bitii 1-7, bitul 0 primind valoarea 0, adica
00011000=24
- In final, temperatura interpretata va fi -24,5°C.
Microcontroler ATmega328
Caracteristici tehnice:
Tensiune de alimentare: 1.8V - 5.5V;
Frecvență de funcționare: până la 20MHz;
Are rol de codor si decodor.
Tensiune de referinta interna-> 1.1V
Microcontrolerele sunt dispozitive ce conțin o unitate de procesare și alte
periferice ce au rolul de a controla circuite [Link]-ul
ATmega328p-PU se programează în mod inițial cu ajutorul unor dispozitive
hardware adiționale, numite programatoare prin pinii ICSP (In-Circuit Serial
Programming).
7
Acesta are rolul de a primi informatiile din exterior si a decide daca este cazul
sa activeze vreun sistem. In plus acesta transmite valoarea temperaturii la al doilea
microcontroler, care face legatura cu afisajul.
Tensiunea de referinta a microcontrolerului este 1,1V. Daca impartim 1.1V la
1024 (numarul de perioade de tact), fiecare pas convertit din analog in digital este
0,0010742V=1,0742mV. Daca un grad Celsius este reprezentat de 10mV, atunci
10mV/1,0742mV= 9,31. In concluzie, pentru fiecare schimbare cu un grad Celsius
a temperaturii, avem o schimbare de 9,31 a valorii analogice.
LED-urile
Au rolul de a indica daca este comandat sistemul de incalzire respectiv cel de
racire. Ele au un diametru de 3mm si o greutate de 0.02g, avand distanta dintre
terminale de 2.54mm. In plus, functioneaza la o tensiune intre 2.6V- 3.2V.
Releele
Au rolul de a actiona sau nu sistemele de incalzire sau racire. Aceste relee
consuma 360mW la un current de 72mA. Contactele suporta un current maxim de
8A la 30V in current continuu sau 10A la 240V in current alternative. Timpul de
operare este de 10ms. Domeniul de temperatura in care functioneaza este de -
40oC-85oC.
Tranzistoarele
Au rolul de a controla , adica de a transmite comanda de la microcontroler la
releu. Ele au curentul emitor-colector de maxim 40V. Curentul de colector este de
600mA si puterea disipata este de 625mW, avand o carcasa tip TO92.
Cristalele de cuart si condensatoarele
Aceste componente formeaza blocurile oscilator care asigura frecventa de
tact a microcontrolerelor. Pentru fiecare microcontroler s-au folosit un cristal de
cuart de 16MHz si cate doua condensatoare de 22pF.
8
Rezistente
Rezistentele de 1kΩ/0.125W au rolul de a limita curentul in baza
tranzistorului, iar rezistentele de 270Ω/0.125W si de a limita curentul trecut prin
LED-uri pentru a evita deteriorarea acestora.
Conectoarele de putere si cele cu 2 sau 3 pini
Conectoarele de putere au rolul de a face legatura intre sistemul de incalzire
respective racire cu releele de comanda. In plus mai au rolul de a asigura
alimentarea intregului sistem.
Conectoarele cu 2 si 3 pini au rolul de a asigura legatura intre cele doua
microcontrolere respective intre primul microcontroler si senzorul LM35.
3.3 Cablajul imprimat
Cablaj sistem automatizare
9
Este un cablaj dublu placat, ce contine piesele necesare sistemului de
automatizare. In aceasta imagine scara este 1:1.
Cablaj top layer (scara 1:1)
10
Cablaj bottom layer(scara 1:1)
Dimensiunile gaurilor necesare pentru realizarea cablajului sunt:
1. Microcontroler (U1)-> 0,81mm
2. Conectroare de putere (PowerConn, PowerConn1, PowerConn2)-> 1,65mm
3. Conectorul Mama (jp1)-> 0,91mm
4. Conector RX-TX (jp2)-> 1,01mm
5. Cristal de cuart (X1)-> 0,5mm
6. Leduri (U4,U5)-> 0,79mm
7. Tranzistoare NPN (Q1, Q2)-> 0,72mm
8. Relee (RL1, RL2)-> 1,65mm
9. Rezistente si Capacitoare (R1, R2, R3, R4, C1, C2)-> 0mm. Acestea se
monteaza la suprafata, deoarece sunt SMD (prescurtare provenita din
engleza,care inseamna surface mounted device)
11
[Link] de afisare
4.1 Schema electrica
Acest circuit contine: microcontrolerul care comanda afisarea pe un display de
tip LCD1602, potentiometrul care regleaza contrastul, oscilatorul care este de
acelasi tip cu cel din sistemul de automatizare, conectorul de putere pentru
alimentare si conectorul Rx-Tx prin care se face transmisia intre cele doua circuite.
Legatura se realizeaza prin intermediul unui cablu cu 2 mufe tata identice.
12
4.2 Descrierea componentelor
Microcontroler ATmega328 (vezi descrierea precedenta)
Caracteristici tehnice:
Tensiune de alimentare: 1.8V - 5.5V;
Frecvență de funcționare: până la 20MHz;
Are rol de codor si decodor.
Tensiune de referinta interna-> 1.1V
Acesta microcontroler transmite valoarea temperaturii pe care o primeste de
la primul microcontroler si face legatura cu afisajul.
Potentiometrul R1
Acest potentiometru are rolul de a regla contrastul display-ului LCD prin gasirea
tensiunii la care ecranul are contrastul cel mai bun pentru ochiul utilizatorului.
Conectorul de putere si cel cu 2 pini
Conectoarele de putere au rolul de a face legatura intre sistemul de incalzire
respective racire cu releele de comanda. In plus mai au rolul de a asigura
alimentarea intregului sistem.
Conectorul cu 2 pini are rolul de a asigura legatura cu primul microcontroler.
Cristalele de cuart si condensatoarele
Aceste componente formeaza blocurile oscilator care asigura frecventa de
tact a microcontrolerelor. Pentru fiecare microcontroler s-au folosit un cristal de
cuart de 16MHz si cate doua condensatoare de 22pF.
13
Display-ul LCD
Caracteristici tehnice:
Tensiune de alimentare: 5V;
Curent consumat de LCD: 1.1mA;
Tensiune de alimentare a luminii de fundal: 4.2V;
Curentul luminii de fundal: 100mA.
Dimensiuni: 80mm x 36mm x 12mm.
Modulul este ideal pentru proiecte de electronica ce trebuie sa afișeze
informatii către exterior. LCD-ul este foarte bun atat pe lumina cat și pe întuneric,
având iluminare de fundal galben-verde, cu contrast ajustabil.
Un afișaj LCD se prezintă sub forma unui ecran afișor (display) care este
comandat electronic printr-un decodificator de caractere numerice și alfabetice.
Este folosit frecvent în construcția ceasurilor digitale (ceasuri care au în locul acelor
arătătoare un afișor de tip LCD), la afișările de date la mașini CNC, mașini de uz
casnic, inscripții și semnalizări electronice.
Fiecarui caracter de pe ecran ii corespunde o locatie prestabilita din memoria
RAM pentru afisare. Pentru un afisor cu doua randuri a cate 16 caractere,
corespondenta intre memoria RAM si pozitia caracterului pe ecran este prezentata
in tabelul de mai jos.
14
4.3 Cablajul imprimat
Cablaj circuit de afisare
Este un cablaj dublu placat, ce contine piesele necesare circuitului de afisare.
In aceasta imagine scara este 1:1.
15
Cablaj top layer (scara 1:1)
16
Cablaj bottom layer (scara 1:1)
Dimensiunile gaurilor necesare pentru realizarea cablajului sunt:
1. Microcontroler (U1)-> 0,81mm
2. Conectroare de putere (PowerConn1)-> 1,65mm
3. Conector RX-TX (jp2)-> 1,01mm
4. Cristal de cuart (X1)-> 0,5mm
5. Potentiometrul (R1)-> 0,76mm
6. Display LCD(X2)-> 0,79mm
7. Capacitoare (C1, C2)-> 0mm. Acestea se monteaza la suprafata, deoarece
sunt SMD (prescurtare provenita din engleza,care inseamna surface mounted
device)
17
[Link] logica a programul sistemului de automatizare
Start
Initializare registrii
Transmisie date
Receptie date
Citire temperatura
(Schema 2)
Temperatura Temperatura
>30oC? <25oC?
Da Da
Nu
Activare racire
Activare incalzire
Nu
18
[Link] sistemului de automatizare
#include <SoftwareSerial.h>
float tempC;
int reading;
int tempPin = 0;
int led1Pin = 10;
int led2Pin = 9;
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
[Link](57600); // Deschide portul serial de comunicare si asteapta sa
fie comandat
while (!Serial) // Asteapta conectarea portului serial
{ ; }
}
void setup1()
{
analogReference(INTERNAL);
[Link](9600);
[Link]("Temperatura este");
[Link](4800); // seteaza rata de transfer a datelor
[Link](tempC);
}
void loop() { // bucla care se repeta la nesfarsit
if ([Link]()) {
[Link]([Link]());
}
if ([Link]()) {
[Link]([Link]());
}
reading = analogRead(tempPin);
tempC = reading / 9.31;
[Link](tempC);
delay(1000);
if (tempC <25)
{
digitalWrite(led1Pin, HIGH);
delay(1000);
}
if (tempC >30)
{
digitalWrite(led2Pin, HIGH);
}
if (tempC>=25 or tempC<=30)
{digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
delay(1000);}}
19
[Link] logica a programului sistemului de afisare
Start
Initializare registrii
Transmisie
date
Schema 1 Receptie date
Afisare
20
[Link] sistemului de afisare
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
float tempC;
int reading;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
[Link](57600); // Deschide portul serial de comunicare si asteapta sa
fie comandat
while (!Serial) // Asteapta conectarea portului serial
{;}
}
void setup1()
{
analogReference(INTERNAL);
[Link](9600);
//[Link]("Temperatura este");-> a
call set_ram ; seteaza prin r17 display-ul la adresa 0x00
ldi r17, 'T'
call put_char
ldi r17, 'e'
call put_char
ldi r17, 'm'
call put_char
ldi r17, 'p'
call put_char
ldi r17, 'e'
call put_char
ldi r17, 'r'
call put_char
ldi r17, 'a'
call put_char
ldi r17, 't'
call put_char
ldi r17, 'u'
call put_char
ldi r17, 'r'
call put_char
ldi r17, 'a'
call put_char
ldi r17, ' '
call put_char
21
ldi r17, 'e'
call put_char
ldi r17, 's'
call put_char
ldi r17, 't'
call put_char
ldi r17, 'e'
call put_char
ldi r17, ':'
call put_char
set_ram:
cbi ctrl2, rs
mov r16,r17
andi r16, 0xF0
out PORTB, r16
sbi ctrl,e
nop
nop
cbi ctrl,e
mov r16,r17
andi r16,0xF0
swap r16
out PORTB, r16
sbi ctrl,e
nop
nop
ret
put_char:
sbi ctrl2, rs
mov r16,r17
andi r16, 0x0F
out PORTB, r16
sbi ctrl,e
nop
nop
cbi ctrl,e
mov r16,r17
andi r16, 0x0F
swap r16
out PORTB, r16
sbi ctrl,e
nop
nop
cbi ctrl,e
ret
22
[Link](4800); // seteaza rata de transfer a datelor
[Link](tempC);
}
void loop() // bucla care se repeta la nesfarsit
{
if ([Link]())
{
[Link]([Link]());
}
if ([Link]())
{
[Link]([Link]());
}
delay(1000);
}
23
[Link] de functionare si mentenanta
Senzorul de temperatura LM35 se monteaza la inaltime de 1m deasupra
solului. Acesta citeste valoarea temperaturii si o transmite microcontrolerului care
face legatura cu sistemele de incalzire si racire. Daca temperatura se afla in
intervalul 25 oC -30oC atunci nu se actioneaza sistemele. Daca temperatura este sub
25oC se va aprinde LED-ul rosu si va porni sistemul de incalzire, iar daca
temperatura este peste 30oC se va aprinde LED-ul albastru si va porni sistemul de
racire. Informatiile vor ajunge la al doilea microcontroler printr-o transmisie serial
Rx-Tx. De la acest microcontroler informatia ajunge la ecranul LCD prin legaturi
directe. Contrastul ecranului se poate regla cu ajutorul potentiometrului amplasat in
apropierea lui. De asemenea, cristalele de cuart atasate suplimentar ofera o
frecventa de tact superioara, deci o viteza de lucru mai mare.
Pentru o utilizare indelungata trebuie ca tot ansamblul sa fie ferit de
umezeala, de actiuni mecanice externe, precum si de expunerea directa la razele
solare, deoarece pot fi deteriorate componentele interne. (exemplu: display-ul LCD,
cristalele de cuart etc.).
Pretul unui asemenea senzor este de 150 de lei.
24
[Link]
1. [Link]
history#SNIS1593436
2. [Link]
pdf/241077/ATMEL/ATMEGA328P/153/1/[Link]
[Link]://[Link]/datasheets/[Link]?_ga=2.225990298.14316
2917.1516048508-325294768.1509290720
4. [Link]
5. [Link]
6. [Link]
7. Laboratoarele facute in cadrul cursului de microcontrolere
25