Table of Contents

SmartThermo – Termometru Smart cu Afișaj, Alertă și Răcire

Nume: Luca Plian
Grupa: 332CA

Introducere

SmartThermo este un proiect creat cu scopul de a transforma citirea temperaturii dintr-un proces simplu și abstract într-o experiență multisenzorială — vizuală, mecanică și sonoră. Cu ajutorul LED-urilor RGB, a unui servo care mimează mișcarea mercurului dintr-un termometru clasic, a unui afișaj LCD, a unui ventilator care se activează automat, a unui buzzer de avertizare pentru praguri critice, dar și a unui modul RTC care resetează zilnic valorile minime și maxime. În plus, două butoane adaugă funcționalitate suplimentară: unul oprește alerta sonoră, iar celălalt comută între afișajul temperaturii curente și informațiile despre data curentă și valorile extreme.

Ideea proiectului a pornit dintr-o nevoie personală: am observat că atunci când temperatura din cameră crește, îmi scade semnificativ capacitatea de concentrare. Astfel, am vrut să creez un sistem care să reacționeze automat la variațiile de temperatură — fără să fie nevoie de intervenția mea.

Funcționalități principale

Descriere generală

Proiectul folosește o plăcuță compatibilă cu Arduino Uno R3 care conține procesorul ATMega328P conectată la un senzor de temperatură digital DS18B20, cu rezistor pull-up de 4.7 kΩ. În funcție de valoarea obținută, LED-ul RGB (catod comun) își schimbă culoarea, un servomotor SG90 mișcă un indicator printr-un mecanism tip crank-slider, iar valorile sunt afișate pe un LCD I²C 1602. Dacă temperatura depășește un prag setat, un ventilator de 5V pornește automat pentru răcire activă. Ventilatorul este controlat cu ajutorul unui tranzistor NPN 2N2222A, protejat cu o diodă flyback 1N4007 și un rezistor de bază. De asemenea, un buzzer activ este declanșat acustic când se atinge un prag critic. Un modul RTC DS3231 resetează valorile minime și maxime zilnic, iar două butoane adaugă funcționalități precum}} comutarea între moduri de afișaj și dezactivarea buzzerului.

Toate componentele sunt montate pe breadboard și conectate cu fire Dupont.

Schema bloc

Hardware Design

Componente utilizate:

Laboratoare relevante

Software Design

Mediu de dezvoltare: Arduino IDE (C/C++)

Librării utilizate:

Algoritmi și funcții:

Hardware Design

Lista de componente (Bill of Materials)

Componentă Model / Detalii Conectare la Arduino UNO Observații
Arduino UNO R3 ATmega328P - Placă principală
DS18B20 Senzor digital temperatură D8, VCC, GND Necesită rezistor de 4.7kΩ între PWM și VCC
Rezistor pull-up 4.7kΩ Între PWM8 și VCC Asigură funcționarea corectă a protocolului 1-Wire
Modul LED RGB RGB, catod comun D9 (B), D10 (G), D11 (R) Control culoare prin PWM
Servomotor SG90 SG90 90° D6 (PWM), VCC, GND Mișcare indicator termometru
Ventilator 5V DC, 3 fire VCC, GND, control prin tranzistor Răcire automată
Tranzistor NPN 2N2222A Bază → A3, Emitor → GND, Colector → GND fan Control ON/OFF pentru ventilator
Diodă flyback 1N4007 Între VCC și GND ventilator Protejează de tensiuni inverse
Condensator 100 µF Între VCC și GND ventilator Filtrare și stabilizare
Rezistor bază 330Ω Între A3 și baza tranzistorului Limitare curent
Buzzer activ Modul simplu A1, GND Alertă acustică
LCD 1602 I²C Afișaj I2C SDA → A4, SCL → A5 Afișează temperatura și stare
Modul RTC DS3231 Real Time Clock SDA → A4, SCL → A5, VCC, GND Pinurile SQW și 32K NU sunt folosite
Buton 1 Tact switch D4, GND Activare mod informații LCD
Buton 2 Tact switch D7, GND Activare / Dezactivare buzzer (mod silențios)

Stadiul actual al implementării:

Până în acest moment, am conectat și testat cu succes următoarele componente hardware: senzorul de temperatură DS18B20, LED-ul RGB, servomotorul MG90, buzzer-ul și un ventilator de 5V, care este controlat printr-un tranzistor NPN și un condensator de 100 µF pentru stabilizarea alimentării. De asemenea, afișajul LCD I²C funcționează corespunzător și afișează temperatura în timp real.

Servomotorul este utilizat pentru a mișca un indicator din plastic într-un mecanism de tip crank-slider, simulând urcarea sau coborârea „mercurului” dintr-un termometru clasic, în funcție de temperatura măsurată. Acesta funcționează corespunzător, răspunzând la variațiile de temperatură.

Sistemul reacționează dinamic: dacă temperatura crește peste un prag definit, se activează ventilatorul pentru răcire activă, iar buzzer-ul emite un semnal sonor de avertizare.

Schematic:

Schema electrică prezintă conexiunile dintre componentele proiectului. Pentru a evita aglomerarea și suprapunerile vizuale ale firelor, unele conexiuni nu au fost trasate direct, fiind înlocuite cu etichete explicative (în paranteze), care indică pinul de ieșire corespunzător.

Poze:

Pozele sunt cu scopul de a arată funcționare dispozitivului

Video: https://youtube.com/shorts/4BHMPG3DN1A?si=zHZJEK0EK-5zXnsQ

Rezultate Obținute

În urma implementării proiectului SmartThermo, sistemul funcționează stabil și îndeplinește toate funcționalitățile propuse:

Concluzii

Proiectul SmartThermo demonstrează cum o combinație de componente accesibile și logică bine structurată poate duce la realizarea unui sistem complet de monitorizare și reacție la temperatură. Dispozitivul funcționează în mod autonom, oferind utilizatorului o experiență clară și intuitivă prin afișare, semnale vizuale, acustice și mecanice.

Folosirea unui LED RGB pentru feedback vizual, a unui servomotor pentru simularea termometrului clasic și a unui LCD pentru afișarea valorilor în timp real transformă o funcționalitate simplă într-o interfață prietenoasă și educativă. Integrarea ventilatorului și a buzzerului oferă răspuns automat la condiții de temperatură ridicată, iar modulul RTC asigură gestionarea corectă a valorilor pe termen lung. Cele două butoane oferă un nivel suplimentar de control și personalizare a interacțiunii.

Jurnal

Prima modificare importantă a fost adăugarea unui ventilator controlat automat cu ajutorul unui tranzistor NPN, pentru a activa un mecanism de răcire în cazul temperaturilor ridicate. Ulterior, am înlocuit senzorul analogic LM35 cu DS18B20, un senzor digital care oferă măsurători mai precise și mai stabile.

Pentru o interfață mai intuitivă, am integrat un afișaj LCD I²C, care afișează temperatura în timp real și mesaje contextuale. Am adăugat apoi două butoane: unul pentru a comuta între afișarea temperaturii curente și a altor informații (dată, temperaturi maxime și minime), iar celălalt pentru a dezactiva alerta sonoră (buzzer-ul) în modul silențios.

O contribuție semnificativă a fost integrarea unui modul RTC DS3231, care permite resetarea automată a valorilor maxime și minime ale temperaturii în fiecare zi la ora 00:00, oferind o funcționalitate suplimentară de tip jurnal zilnic.

Proiectul a fost testat în mai multe etape, optimizat pentru funcționare continuă, iar integrarea s-a realizat treptat, cu atenție la alimentare și la stabilitatea software-ului. La final, toate componentele funcționează armonios, iar sistemul este gata de prezentare.

Download

proiect_pm_luca_plian2.zip

Bibliografie / Resurse