Controlul temperaturii

E-mail: ion_radu.patrascoiu@stud.acs.pub.ro

Introducere

Proiectul își propune rezolvarea prin metode inginerești: primire date de la un senzor, trimitere comanda de ON/OFF asupra unor module, a unei probleme uzuale, controlul temperaturii unei incinte. Principalul obiectiv al aplicației nu îl reprezintă procesul fizic de încălzire/răcire, ci partea de comanda: citirea temperaturii de la senzor, citirea temperaturii dorite de utilizator, analizarea diferențelor si comandarea fie a elementului de încălzire, fie a elementului de răcire. Acestea trebuie sa funcționeze si sa fie oprite, automat, in momentul in care referința primita de la utilizator este egala, într-o toleranta, cu outputul primit de la senzorul de temperatura.

Descriere generală

Descrierea funcționalității:

Placa de dezvoltare Arduino UNO R3 oferă suport complet atât pentru manipularea componentelor fizice cat si pentru realizarea algoritmului de control ce sta in spatele funcționarii componentelor hardware. Pentru comunicarea cu utilizatorul, se propune utilizarea unui afișaj LCD, pe care se vor afla temperatura primita de la senzor, temperatura dorita de utilizator, setata prin doua butoane, unul pentru creșterea valorii iar celălalt pentru scăderea ei, împreuna cu starea curenta a elementelor ce realizează procesul de încălzire/răcire. Pentru a putea comanda componentele active, se vor folosi doi tranzistori cărora li se va pune in evidenta proprietatea de switch. Pentru răcirea incintei, va fi folosit un ventilator iar pentru procesul de încălzire se vor folosi rezistente cu suport de pana la 3W pe fiecare.

Diagrama bloc:

Hardware Design

  • Lista de Componente:
    1. Placuta Arduino UNO, pe care am conectat toate componentele menționate mai sus, folosind atât pinii digitali, cât și pe cei analogici, si pinii de alimentare 5V si masa GND;
    2. Breadboard;
    3. Fire conductoare;
    4. Senzor de temperatură și umiditate DHT11, care are 4 pini dintre care doar 3 sunt folosiți, VCC prin care se face alimentarea la 3V – 5V, GND și DATA pe care l-am conectat pe plăcuța Arduino la un pin digital, datele preluate de către acesta fiind trimise către plăcuță prin intermediul acelui pin. De asemenea, temperatura citita va fi afișata atât pe afișajul LCD cat si trimisa prin comunicare seriala la o instanță Microsoft Excel unde va fi afișată într-un grafic in timp real;
    5. Ventilator DC de 5V si 0.19A, conectat la un tranzistor pentru a putea fi comandat automat;
    6. Doi tranzistori TIP122, fiecare având conectata baza la un pin digital al plăcuței Arduino, prin care se va trimite comanda de ON/OFF, colectorul fiind conectat la partea de GND a elementelor de încălzire/răcire, iar emitorul la GND;
    7. Afișaj LCD si modul I2C, pentru o implementare mai robusta a proiectului, fiind necesari doar 4 pini, dintre care unul conectat la alimentare, unul la GND si doi dintre ei la pini analog ai plăcuței;
    8. Doua butoane pentru a permite utilizatorului introducerea temperaturii de referința;
    9. Trei rezistente de 68 ohmi, cu o putere maxima suportata de 3W pe fiecare. Legate in paralel si conectate la o tensiune de 5V, acestea au o putere de încălzire de 1,1W;
    10. Rezistente de diferite valori folosite pentru tranzistoare, 15K si 17K, si de 10K pentru butoane.

Schema electrica:

Schema electrica Tinkercad:

Software Design

Pentru a putea folosi componentele DHT11 si afisajul LCD cu modul I2C, in mediul de dezvoltare Arduino IDE a fost nevoie si de importarea bibliotecilor SimpleDHT.h, LiquidCrystal_I2C.h, Wire.h. Pentru setarea temperaturii referinta de catre utilizator, pinilor la care au fost conectate butoanele, au fost associate sisteme de intrerupere. Arduino UNO R3 permite sisteme de intrerupere hardware doar pentru pinii digitali 2 si 3.

Variabilele stareA si stareU reprezinta starea in care sistemul se afla la momentul actual, respective starea urmatoare ce este calculata pe baza datelor primate de la sensor. Reglarea se face prin intermediul acestor doua variabile ale caror valori reprezinta 0 – Ambele OFF, 1 – Incalzirea ON; Racirea OFF, 2 – Racirea ON; Incalzirea OFF.

Din cauza limitarilor impuse de senzorul DHT11, care citeste doar valori intregi, pornirea sistemelor de incalzire/racire se face doar in momentul in care temperatura indicata de senzor este cu 2*C mai mica/mare decat cea dorita de client. De aceea, sistemul este fortat sa mearga pana cand senzorul afiseaza o temperature mai mica cu 1*C fata de cea de referinta, din practica observand ca prima trecere a senzorului de la temperature T la T-1 este foarte sensibila, acesta indicand din nou T dupa mai putin de o secunda.

Funcțiile folosite pentru citirea schimbării temperaturii de referință.

Rezultate Obţinute

Proiectul si-a indeplinit scopul, acesta reusind sa incalzeasca/raceasca o incinta de dimensiuni mici(o cutie). Mai jos este prezentata o imagine cu temperaturile citite de la senzorul de temperatura si fluctuatia acestora in raport cu timpul, atunci cand temperatura reala era de 26°C si cea dorita a fost setata la 28°C.

Prezentare:

Concluzii

Controlul temperaturii este un proiect bun si interesant pentru a invata PM. Totodata este si foarte edificator, deoarece iti arata toatalitatea lucrurile care pot sa mearga rau intr-un task simplu, lucruri de care nu s-a tinut cont.

Mentiuni: Senzorul de temperatura nu citeste decat valori intregi, fiind destul de imprecis. Firele sunt de proasta calitate si nu fac bine contact.

Pentru efectuarea prototipului s-au investit: 100 lei + ceva ore de munca ore de munca :)

Download

Jurnal

  • 21.04.2021: Obtinerea acordului asistentului in privinta temei alese.
  • 23.04.2021: Crearea paginii de wiki.
  • 26.04.2021: Au sosit toate piesele de care am nevoie.
  • 20.05.2021: Codul finalizat si testat cu succes.
  • 23.05.2021: Componentele hardware asezate in pozitia lor finala.
  • 29.05.2021: Finalizare documentatie ocw + prezentare youtube.

Bibliografie și Resurse

pm/prj2021/dbrigalda/controlul-temperaturii.txt · Last modified: 2021/06/04 13:33 by ion_radu.patrascoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0