Proiectul meu este o statie meteo de interior realizata cu Arduino, care masoara temperatura si umiditatea folosind un senzor DHT11. Valorile sunt afisate pe un ecran LCD, iar sistemul ofera feedback vizual printr-un LED RGB si alerta sonora cu un buzzer daca temperatura devine prea mare. Datele sunt transmise si prin UART catre un PC.
Scopul proiectului este sa monitorizez in timp real conditiile de mediu dintr-o camera si sa fiu avertizat rapid in caz de temperatura ridicata, folosind componente simple, dar integrate eficient.
Am vrut sa creez un proiect aplicat, care sa combine mai multe concepte din laboratoarele de PM intr-un mod functional si vizibil. Ideea a pornit de la nevoia de a avea un sistem de monitorizare ambientala usor de realizat si util in viata de zi cu zi.
Este un proiect educativ si practic – oricine vrea sa urmareasca confortul termic dintr-un spatiu inchis poate beneficia de el. Pentru mine, este o ocazie buna sa exersez integrarea senzorilor cu microcontrollerul si sa aplic in mod concret cunostintele din curs si laboratoare.
Proiectul utilizeaza urmatoarele componente hardware, conectate pe o placa de prototipare PCB 10×10 cm. Interconectarea se face prin fire cu pas de 2.54 mm, iar alimentarea se realizeaza prin cablul USB conectat la placa Arduino. </note>
Aceasta este schema bloc a sistemului, care ilustreaza modul in care componentele hardware interactioneaza cu placa Arduino UNO. Arduino actioneaza ca unitate centrala de control, colectand date de la senzori si controland perifericele de afisare si alerta.
Ca functionalitati, proiectul foloseste urmatoarele concepte studiate in cadrul laboratoarelor:
Arduino UNO R3 – OptimusDigital
Rol: unitatea centrala care gestioneaza senzorii, afisajul, LED-ul RGB si buzzerul. De asemenea, transmite informatii prin UART catre un monitor serial.
Rol: semnalizare vizuala a temperaturii (albastru – rece, verde – optim, rosu – cald).
Modul Senzor de Temperatura și Umiditate DHT22 – OptimusDigital
Rol: masurare temperatura si umiditate si comunicarea acestor informatii cu Arduino.
LCD 1602 cu I2C – OptimusDigital
Rol: afisarea in timp real a temperaturii si umiditatii.
Buzzer Pasiv de 5V – OptimusDigital
Rol: alerta sonora cand temperatura depaseste un prag.
Rol: organizarea componentelor hardware intr-un mod curat si stabil.
Componenta | Cant. | Link produs | Datasheet | Pret (RON) |
---|---|---|---|---|
Arduino UNO R3 | 1 | OptimusDigital | Arduino UNO Rev3 | 54.37 |
Senzor DHT22 | 1 | OptimusDigital | DHT22 Datasheet | 23.12 |
LED RGB (catod comun) | 1 | OptimusDigital | RGB LED Common Cathode | 1.00 |
LCD 16×2 + I2C | 1 | OptimusDigital | LCD 1602 | 16.34 |
Buzzer pasiv 5V | 1 | OptimusDigital | Buzzer | 1.00 |
Buton 6×6 mm | 1 | OptimusDigital | Tact Switch 6x6 | 0.36 |
PCB 10×10 cm | 1 | OptimusDigital | - | 5.00 |
Rezistente (220Ω, 10kΩ) | 3–4 | OptimusDigital | Yageo CFR | 0.50 |
Pret total estimativ: 101.69 RON
Aceasta este schema electrica a proiectului BEEP & Heat – Statie meteo cu alerta sonora si vizuala. Schema prezinta modul in care sunt interconectate componentele principale: Arduino UNO, senzorul DHT22, modulul WiFi ESP-01, buzzer-ul pasiv, LED-ul RGB si ecranul LCD 1602 cu interfata I2C.
Aceasta schema electrica (Fisierul EAGLE 9.X Compatible Schematic File .sch) poate fi descarcata din sectiunea Downloads.
Acestea sunt cateva imagini diferite componente ale proiectului:
Pentru implementarea software a proiectului BEEP & Heat – Statia meteo cu alerta sonora si vizuala, s-a utilizat mediul de dezvoltare Arduino IDE, impreuna cu mai multe biblioteci externe pentru controlul senzorilor si perifericelor. Codul este structurat modular si urmareste o logica clara de prelucrare si afisare a datelor, precum si de generare a alertelor.
Se foloseste biblioteca `DHT.h` pentru a citi valorile senzorului DHT22 conectat la pinul D7. Valorile sunt utilizate atat pentru afisaj, cat si pentru logica de alerta.
Se utilizeaza biblioteca `LiquidCrystal_I2C`. Datele sunt afisate pe un ecran LCD conectat prin I2C (pinii A4 – SDA, A5 – SCL). Este inclusa si comutarea intre unitati de masura: Celsius, Kelvin si Fahrenheit, printr-un buton extern care genereaza o intrerupere.
Culorile se schimba progresiv in functie de temperatura:
Tranzitiile sunt realizate **doar daca temperatura s-a modificat**, prin interpolare intre valorile anterioare si cele noi. Functia `interPolateColor()` face aceasta animatie cu pasi intermediari calculati prin `for()`, folosind o functie de easing (`smoothstep`) si un boost de intensitate pentru efect vizual.
La temperaturi peste 30°C se declanseaza melodia “Never Gonna Give You Up” prin buzzer (functia `playRickRoll()`), ca metoda de alerta amuzanta. Un flag `alreadyRickRolled` previne repetarea inutila a melodiei.
Valorile masurate sunt trimise continuu la monitorul serial din Arduino IDE prin `Serial.print()`.
Un buton conectat la pinul D2 activeaza o intrerupere (`attachInterrupt()`), schimband ciclic unitatea de masura afisata pe LCD (Celsius → Kelvin → Fahrenheit).
Biblioteca | Scop |
---|---|
`LiquidCrystal_I2C` | Control LCD 16×2 prin interfata I2C |
`Wire.h` | Comunicare I2C cu LCD |
`DHT.h` | Citire temperatura si umiditate (DHT22) |
Partea software a proiectului integreaza functionalitati de citire senzoriala, feedback vizual animat si auditiv, comunicare seriala si control prin intreruperi. Codul este clar, modular si extensibil pentru functionalitati ulterioare, oferind in acelasi timp o experienta vizuala placuta si interactiva.
Functionalitatile Proiectului pot fi urmarite pe Youtube: https://youtu.be/yKRfma8m8SQ
Proiectul a fost implementat cu succes, integrand toate componentele hardware si functionalitatile software. Sistemul afiseaza temperatura si umiditatea in timp real, ofera feedback vizual si sonor, iar comutarea unitatilor functioneaza corect.
Proiectul BEEP & Heat reprezintă o aplicație practică și educativă, care integrează concepte esențiale din proiectarea cu microprocesoare: senzori, comunicare serială, afișare I2C, control PWM și întreruperi externe. Sistemul a fost conceput pentru a monitoriza în timp real temperatura și umiditatea dintr-un spațiu închis și pentru a oferi feedback instant prin LED RGB și buzzer.
Prin implementarea tranzițiilor de culoare cu interpolare și easing, proiectul oferă un feedback vizual elegant și intuitiv. De asemenea, alerta sonoră de tip RickRoll adaugă o notă creativă și unică, transformând o simplă notificare într-o experiență interactivă și memorabilă.
Pe parcursul realizării proiectului am reușit:
Proiectul este ușor de replicat, util în contexte educaționale și poate fi extins ușor pentru aplicații IoT (de exemplu, integrarea cu un server web prin modulul WiFi). Pentru mine, acest proiect a fost o oportunitate excelentă de a integra în mod creativ mai multe noțiuni studiate și de a construi un sistem funcțional și util.
Mai jos se regasesc fisierele rezultate in urma realizarii proiectului BEEP & Heat – Statia meteo cu alerta sonora si vizuala:
Schema electrica (.sch): schematic.zip
Cod sursa Arduino (.ino): source_code.zip
Acest jurnal documenteaza etapele de dezvoltare ale proiectului BEEP & Heat – Statia meteo cu alerta sonora si vizuala, evidentiind progresul, problemele intalnite si solutiile aplicate.