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.
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:
Schema electrica:
Schema electrica Tinkercad:
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ță.
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:
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 :)
https://www.alanzucconi.com/2016/08/02/arduino-heater-1/?fbclid=IwAR1A00LWQi4LMSfXOgEJZWcXhcqJRJW8LrSozPOqWIIDfrDQ-2XEICB93oE https://www.alanzucconi.com/2016/08/02/arduino-heater-2/?fbclid=IwAR3h9cIclc97ERXzzpuoJI1-fMXCq1S2xl8Z1eECgCxn5UipBV47oT5tjgI
Documentația în format PDF
https://ocw.cs.pub.ro/courses/pm/prj2021/dbrigalda/controlul-temperaturii