Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:apredescu:anca.radu2411 [2025/05/28 12:03]
anca.radu2411 [Hardware Design]
pm:prj2025:apredescu:anca.radu2411 [2025/05/28 12:38] (current)
anca.radu2411 [Descriere generală]
Line 48: Line 48:
   * 🔋 Alimentare 5V (USB sau power bank) – pentru toate modulel   * 🔋 Alimentare 5V (USB sau power bank) – pentru toate modulel
  
-{{:​pm:​prj2025:​apredescu:​diagarama_ancaradu_new.png?200|}}+{{:​pm:​prj2025:​apredescu:​diagrama_finala_ancaradu.png?300|}}
  
 **Interacțiuni între module** **Interacțiuni între module**
Line 139: Line 139:
 ** Componentele Hardware conectate ** ** Componentele Hardware conectate **
  
-{{:​pm:​prj2025:​apredescu:​imagine_proiect_ancaradu.jpg?300|}}+{{:​pm:​prj2025:​apredescu:​hardware_ancaradu.jpg?​200|}} 
 +{{:​pm:​prj2025:​apredescu:​design_ancaradu.jpg?300|}}
  
  
 ===== Software Design ===== ===== Software Design =====
  
 +**Mediul de dezvoltare**
  
-**Mediu de dezvoltare**+  ​* **Arduino IDE** – pentru programarea microcontrollerului ATmega328P. 
 +  * **Python 3** – pentru prelucrarea datelor primite prin Bluetooth și gestionarea bazelor de date + trimitere email.
  
-''​Arduino IDE''​+---- 
 + 
 +**Librării și surse 3rd-party** 
 + 
 +➤ Pe partea de Arduino: 
 + 
 +      * SPI.h – pentru comunicarea SPI cu modulul SD card 
 +      * SD.h – pentru logare fișiere text pe card microSD 
 +      * DHT.h – pentru citirea temperaturii și umidității de la senzorul DHT22 
 +      * SoftwareSerial.h – pentru comunicarea cu modulul Bluetooth HC-05 pe pini digitali 
 + 
 +      Toate aceste librării sunt standard sau pot fi adăugate ușor prin Library Manager în Arduino IDE.
  
--> Platformă ​de dezvoltare compatibilă cu Arduino UNO (ATmega328P)+➤ Pe partea ​de Python:
  
 +      * serial (pyserial) – pentru citirea datelor prin Bluetooth
 +      * sqlite3 – pentru salvarea datelor în fișiere .db locale
 +      * smtplib și email.message – pentru trimiterea automată a emailurilor când se detectează zgomot excesiv
  
 ---- ----
  
 +**Algoritmi și structuri implementate**
  
-**Librării și surse 3rd-party**+➤ În microcontroller (Arduino):
  
-''​SPI.h''​ — pentru comunicare SPI cu modulul SD+Se citesc:
  
-''​SD.h''​ — pentru lucrul cu fișiere pe cardul microSD+      * valoarea analogică a zgomotului (analogRead(A0)) 
 +      * temperatura ​și umiditatea prin DHT22
  
--> Ambele librării sunt standard în Arduino IDE și nu necesită instalare externă.+Dacă sunetul depășește un prag (> 100):
  
-----+      * se aprinde LED-ul 
 +      *se salvează valorile într-un fișier log.txt pe cardul SD
  
-**Algoritmi și structuri implementate**+    La interval de 5 secunde, se trimit prin Bluetooth valorile actuale
  
-  * Se citește valoarea analogică de la microfon (prin ''​analogRead(A0)''​). +➤ În scriptul Python (PC/​laptop):​ 
-  Valoarea este comparată cu un prag stabilit ​pentru ​a decide dacă este considerat zgomot relevant+ 
-  ​* ​Dacă valoarea depășește pragul și nu a mai fost deja înregistrat un eveniment+Se deschid două baze de date SQLite: 
-  * Se aprinde LED-ul (conectat la pinul D8) + 
-  Se salvează un mesaj în fișierul ''​log.txt''​ de pe cardul SD (conținând valoarea și momentul detectării). +      masuratori.db – pentru ​salvarea temperaturii și umidității 
-  Este utilizat ​un flag logic (''​evenimentInregistra''​t) pentru a preveni logări multiple cât timp semnalul rămâne peste prag.+      * complaints.db – pentru evenimentele de tip „noise complaint” 
 + 
 +Se analizează fluxul de date din Bluetooth 
 +Dacă în decurs de 60 secunde se primesc 3 mesaje cu zgomot > prag
 + 
 +      se loghează evenimentul într-o bază separată 
 +      *se trimite automat ​un email de avertizare
  
 ---- ----
  
 **Surse și funcții implementate** **Surse și funcții implementate**
 +
 +➤ Arduino:
  
 ''​setup()'':​ ''​setup()'':​
  
-  * inițializează pinul LED +  * configurează pini I/O 
-  * începe comunicația serială +  * inițializează ​senzorii, Bluetooth-ul și cardul SD
-  * inițializează cardul SD și verifică funcționalitatea+
  
 ''​loop()'':​ ''​loop()'':​
  
-  * monitorizează ​continuu ​semnalul audio +  * citește ​continuu ​datele și trimite periodic valorile prin Bluetooth 
-  * controlează LED-ul ​și decide când să logheze evenimente+  * detectează evenimente de zgomot ​și le salvează pe SD
  
-''​logSunet(int valoare)'':​ +''​logPeCard()'':​
-  * deschide fișierul log.txt pe cardul SD +
-  * scrie un mesaj de forma: ''​Sunet detectat: 248 la 15204''​ +
-  * mesajul include valoarea analogică a sunetului și timpul în milisecunde +
-===== Rezultate Obţinute =====+
  
-În urma implementării proiectului,​ a fost realizat ​un sistem funcțional de monitorizare a nivelului de zgomotbazat pe microcontrollerul ATmega328P. Sistemul:+  * creează/loghează într-un fișier text cu sunettemperatură și umiditate
  
-  * detectează în timp real sunetele cu ajutorul unui modul de microfon analogic; +➤ Python:
-  * aprinde un LED de semnalizare atunci când intensitatea sunetului depășește un prag definit în cod; +
-  * salvează evenimentele de depășire a pragului într-un fișier (log.txt) pe un card microSD; +
-  * fiecare înregistrare include valoarea semnalului și momentul apariției (în milisecunde de la pornirea sistemului).+
    
-Proiectul ​a fost testat ​cu succes ​și a reacționat corect ​la zgomote ​(exbătăi din palmevocelovituri), atât în funcția de semnalizare vizualăcât și în cea de logare ​pe cardul SD.+''​trimite_email()'':​ 
 + 
 +  * trimite notificare pe mail folosind contul Gmail configurat 
 + 
 +''​while True'':​ 
 + 
 +  * citește datele primite 
 +  * salvează în baza masuratori.db 
 +  * dacă se depășește pragul sonor de 3 ori în 60 secunde, salvează în complaints.db și trimite email 
 + 
 + 
 +===== Rezultate Obţinute ===== 
 + 
 +În urma implementării și testării proiectului, ​a fost realizat un sistem complet funcțional de monitorizare ambientală,​ capabil să: 
 + 
 +  * **Detecteze și semnalizeze zgomotul**:​ 
 + 
 +Modulul de microfon analogic detectează nivelul de sunet din încăpere. 
 + 
 +Când se depășește un prag predefinit, un LED de alertă se aprinde și evenimentul este salvat pe cardul microSD, împreună ​cu temperatura ​și umiditatea curente. 
 + 
 +  * **Salveze date local pe card microSD**:​ 
 + 
 +Sistemul înregistrează valorile măsurate în fișierul ''​log.txt''​. 
 + 
 +Informațiile salvate includ: valoarea semnalului sonor, temperatura,​ umiditatea și momentul detectării (în milisecunde de la pornire). 
 + 
 +  * **Transmită datele în timp real prin Bluetooth**:​ 
 + 
 +La fiecare 5 secunde, dispozitivul trimite date către un laptop sau alt dispozitiv conectat prin Bluetooth ​(HC-05). 
 + 
 +Datele includ nivelul sunetului, temperatura și umiditatea. 
 + 
 +  * **Proceseze și analizeze datele în Python**: 
 +Pe laptop, un script Python preia datele prin Bluetooth și le salvează într-o bază de date locală (masuratori.db). 
 + 
 +La detectarea a 3 niveluri ridicate de zgomot într-un interval de 60 de secundesistemul: 
 + 
 +  * salvează evenimentul într-o bază separată (complaints.db);​ 
 +  * trimite automat un email de alertă către recepție (ex. ancutza@gmail.comcrinutza@gmail.com), notificând depășirile. 
 + 
 +---- 
 + 
 +==== Validare ==== 
 + 
 +Sistemul a fost testat cu succes în condiții reale. 
 + 
 +LED-ul se aprinde corect ​în funcție de zgomotdatele sunt salvate corect ​pe cardul SD, valorile sunt transmise prin Bluetooth, iar emailurile de alertă se trimit automat conform regulii definite.
  
-Prin intermediul acestui sistem, pot fi monitorizate și înregistrate evenimente sonore într-un mediu interior, cum ar fi o cameră de hotel sau o sală de studiu, oferind o soluție simplă pentru verificarea nivelului de zgomot în absența supravegherii directe. 
 ===== Download ===== ===== Download =====
  
pm/prj2025/apredescu/anca.radu2411.1748422993.txt.gz · Last modified: 2025/05/28 12:03 by anca.radu2411
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