Smart Thermometer System
Introducere
Proiectul constă într-un sistem embedded ce măsoară temperatura ambientală folosind senzorul analogic LM35 și afișează valoarea citită pe un LCD 16×2.
Scopul este dezvoltarea unui sistem embedded complet funcțional, cu integrare hardware și software, folosind periferice standard ale unui microcontroller Arduino Uno.
Ideea proiectului a plecat de la necesitatea unui instrument simplu și eficient de măsurare a temperaturii ambientale, integrabil ușor în aplicații casnice sau industriale.
Este un proiect util atât educațional cât și practic, exersând concepte embedded precum GPIO, ADC, LCD, PWM, UART și întreruperi externe.
Descriere generală
Schemă bloc cu modulele hardware și software + descrierea interacțiunii dintre ele.
LM35 convertește temperatura în semnal analogic
ADC0804 convertește semnalul analogic în date digitale pe 8 biți
Arduino Uno citește datele digitale, le interpretează și decide acțiunile
LCD 16×2 afișează temperatura
Buzzer-ul este activat prin PWM când temperatura depășește un prag critic
Ventilatorul este acționat de un motor controlat de Arduino când temperatura e prea mare
Butonul permite resetarea sistemului sau calibrare
UART trimite date seriale către un PC pentru logging
Hardware Design
Listă de componente + datasheet/linkuri
Scheme electrice (urmează a fi realizate)
Diagrame de semnal (ADC + PWM)
Bill of Materials (BOM)
Pini utilizați:
Componentă | Pin Arduino | Funcție |
——————– | ————- | ——— |
LCD 16×2 | D2–D7 | GPIO (D4–D7 + RS, E) |
ADC0804 | D8–D13 | GPIO input |
LM35 | ADC0804 IN | Analog |
UART TX | D1 | Serial out |
UART RX | D0 | Serial in |
PWM buzzer | D9 | Semnal PWM |
Motor ventilator | D10 | Control motor (cu tranzistor) |
Buton | D3 (INT1) | Întrerupere externă |
Software Design
PlatformIO (Arduino Uno)
Biblioteci proprii pentru LCD
Algoritmi: citire periodică ADC, afișare LCD, transmitere UART, PWM alert, control motor, întrerupere reset
Rezultate Obţinute
În prezent se lucrează la partea fizică. Codul software a fost generat și testat în simulator.
Concluzii
Proiectul este în stadiu de dezvoltare. Toate funcționalitățile software au fost scrise și urmează integrarea fizică a componentelor pentru testare și validare.
Codul sursă include:
main.cpp
lcd.c/.h
uart.c/.h
adc.c/.h
pwm.c/.h
delay.c/.h
gpio.c/.h
platformio.ini
GIT - https://github.com/WhyNotZebra/smart-thermometer