This is an old revision of the document!


BEEP & Heat – Statia meteo cu alerta sonora si vizuala - Niculici Mihai

Prezentarea pe scurt a proiectului

  • Ce face proiectul:

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.

  • Care este scopul lui:

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.

  • Care a fost ideea de la care am pornit:

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.

  • De ce cred ca este util pentru altii si pentru mine:

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. </note>

Descriere generala

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>

Schema bloc a proiectului

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.

Schema bloc – BEEP & Heat

Descriere hardware si conexiuni

Ca functionalitati, proiectul foloseste urmatoarele concepte studiate in cadrul laboratoarelor:

  • ADC – pentru citirea datelor de la senzorul de temperatura (DHT22).
  • PWM – pentru reglarea intensitatii si a culorii LED-ului RGB, in functie de temperatura.
  • UART – pentru trimiterea datelor catre un terminal serial pe laptop.
  • I2C – pentru comunicarea cu ecranul LCD 16×2.
  • Placa de dezvoltare – Arduino UNO R3

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.

  • Modul LED RGB

Modul cu LED RGB – OptimusDigital

Rol: semnalizare vizuala a temperaturii (albastru – rece, verde – optim, rosu – cald).

  • Senzor de temperatura si Umiditate – DHT22

Modul Senzor de Temperatura și Umiditate DHT22 – OptimusDigital

Rol: masurare temperatura si umiditate si comunicarea acestor informatii cu Arduino.

  • Ecran LCD 16×2 cu interfata I2C

LCD 1602 cu I2C – OptimusDigital

Rol: afisarea in timp real a temperaturii si umiditatii.

  • Buzzer pasiv 5V

Buzzer Pasiv de 5V – OptimusDigital

Rol: alerta sonora cand temperatura depaseste un prag.

  • Placa de prototipare PCB 10×10 cm

Placa PCB – OptimusDigital

Rol: organizarea componentelor hardware intr-un mod curat si stabil.

  • Modul WiFi ESP-03

Modul WiFi ESP-03 – OptimusDigital

Rol: transmite valorile masurate catre un telefon sau alt dispozitiv, prin WiFi.

Schema electrica

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.

  • Ecranul LCD comunica cu Arduino prin magistrala I2C (pinii A4 - SDA si A5 - SCL).
  • Senzorul DHT22 este conectat la pinul digital D7 pentru a transmite temperatura si umiditatea.
  • Modulul WiFi ESP-01 este conectat pe pinii Digitali D4 si D5 ai placii Arduino.
  • Buzzer-ul pasiv este activat printr-un pin digital.
  • LED-ul RGB (catod comun) este controlat prin pinii D9, D10 si D11 folosind semnale PWM.

Schema electrica - BEEP & Heat

Software Design

Pentru implementarea software a proiectului BEEP & Heat – Stația meteo cu alertă sonoră și vizuală, s-a utilizat mediul de dezvoltare Arduino IDE, împreună cu mai multe biblioteci externe pentru controlul senzorilor și perifericelor. Codul este structurat modular și urmărește o logică clară de prelucrare și afișare a datelor, precum și de generare a alertelor.

Funcționalități implementate

  • Citirea temperaturii și umidității (DHT22):

Se folosește biblioteca `DHT.h` pentru a citi valorile senzorului DHT22 conectat la pinul D7. Valorile sunt utilizate atât pentru afișaj, cât și pentru logica de alertă.

  • Afișarea datelor pe LCD (16×2, I2C):

Se utilizează biblioteca `LiquidCrystal_I2C`. Datele sunt afișate pe un ecran LCD conectat prin I2C (pinii A4 – SDA, A5 – SCL). Este inclusă și comutarea între unități de măsură: Celsius, Kelvin și Fahrenheit, printr-un buton extern care generează o întrerupere.

  • Feedback vizual prin LED RGB (PWM + interpolare cu easing):

Culorile se schimbă în funcție de temperatură:

  • Sub 20°C → albastru
  • 20–25°C → tranziție interpolată albastru → verde
  • 25–30°C → tranziție interpolată verde → roșu
  • Peste 30°C → roșu complet + alarmă
  Tranziția este realizată cu funcția `interPolateColor(temp)`, care folosește funcția `smoothstep` pentru easing și aplică un boost de intensitate pentru un efect vizual accentuat.
  • Alertă sonoră (RickRoll):

La temperaturi peste 30°C se declanșează melodia „Never Gonna Give You Up” prin buzzer (funcția `playRickRoll()`), ca metodă de alertă amuzantă. Un flag `alreadyRickRolled` previne repetarea inutilă a melodiei.

  • Comunicare UART:

Valorile măsurate sunt trimise continuu la monitorul serial din Arduino IDE prin `Serial.print()`.

  • Tratarea întreruperilor externe:

Un buton conectat la pinul D2 activează o întrerupere (`attachInterrupt()`), schimbând ciclic unitatea de măsură afișată pe LCD (Celsius → Kelvin → Fahrenheit).

Librării utilizate

Bibliotecă Scop
`LiquidCrystal_I2C` Control LCD 16×2 prin interfață I2C
`Wire.h` Comunicare I2C cu LCD
`DHT.h` Citire temperatură și umiditate (DHT22)

Principii de proiectare și optimizări

  • Codul este modular, fiecare funcționalitate fiind separată logic:
    1. `interPolateColor()` – control LED RGB în funcție de temperatură
    2. `playRickRoll()` – declanșare alarmă sonoră
    3. `setColor()` – scriere valori PWM pentru LED
    4. `ISR_BUTTON()` – tratarea întreruperii externe
  • Se folosește `constrain()` pentru siguranță la generarea valorilor PWM.
  • `smoothstep` este utilizat pentru interpolare non-liniară între culori.
  • Sistemul are un delay de 2 secunde între cicluri pentru a evita congestia de date și a permite răspunsul la întreruperi.

Concluzie

Partea software a proiectului integrează funcționalități de citire senzorială, feedback vizual și auditiv, comunicare serială și control prin întreruperi. Codul este clar, modular și extensibil pentru funcționalități ulterioare.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru. </note>

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/fstancu/mihai.niculici.1748353399.txt.gz · Last modified: 2025/05/27 16:43 by mihai.niculici
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