This shows you the differences between two versions of the page.
pm:prj2025:apredescu:anca.radu2411 [2025/05/28 11:54] anca.radu2411 [Descriere generală] |
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 92: | Line 92: | ||
**Bill of Materials** (Lista Pieselor) | **Bill of Materials** (Lista Pieselor) | ||
- | ^ Nr. ^ Componentă ^ Descriere ^ Link / Datasheet ^ | + | ^Nr.^ Componentă ^ Descriere ^ Link / Datasheet ^ |
|1 | Microcontroler ATmega328P | Microcontroller 8-bit AVR | [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet]] [[https://sigmanortec.ro/Placa-dezvoltare-UNO-R3-Arduino-Compatibil-ATmega328p-CH340G-cu-bara-pini-p170362384|ATmega328P]]| | |1 | Microcontroler ATmega328P | Microcontroller 8-bit AVR | [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|Datasheet]] [[https://sigmanortec.ro/Placa-dezvoltare-UNO-R3-Arduino-Compatibil-ATmega328p-CH340G-cu-bara-pini-p170362384|ATmega328P]]| | ||
|2 | Modul microfon LM393 | Senzor zgomot cu comparator LM393 | [[https://sigmanortec.ro/modul-microfon-senzor-sunet-5v|Link modul]] | | |2 | Modul microfon LM393 | Senzor zgomot cu comparator LM393 | [[https://sigmanortec.ro/modul-microfon-senzor-sunet-5v|Link modul]] | | ||
|3 | Modul microSD SPI | Stocare loguri | [[https://sigmanortec.ro/Modul-MicroSD-p126079625|Link modul]] | | |3 | Modul microSD SPI | Stocare loguri | [[https://sigmanortec.ro/Modul-MicroSD-p126079625|Link modul]] | | ||
|4 | Card microSD | Stocare date | [[https://www.emag.ro/card-de-memorie-microsdhd-kingston-4gb-clasa-4-kng4/pd/D0RDW8BBM|Link card]] | | |4 | Card microSD | Stocare date | [[https://www.emag.ro/card-de-memorie-microsdhd-kingston-4gb-clasa-4-kng4/pd/D0RDW8BBM|Link card]] | | ||
- | |5 | LED Roșu | Indicator vizual | - | | + | |5 | Modul DHT22 |Senzor de temperatură și umiditate |[[https://www.optimusdigital.ro/ro/senzori-senzori-de-temperatura/1449-modul-senzor-de-temperatura-i-umiditate-dht22.html?srsltid=AfmBOorscPInU12C0PSdPw5Bj1q8e705ViOvT9nI2UooQvHv5QegZAJA|Link modul]]| |
- | |6 | Breadboard 400 puncte | Placă de prototipare | - | | + | |6 | Modul HC-05 Bluetooth|Comunicare wireless cu laptopul|[[https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html?srsltid=AfmBOopRGBmQNcCXy9I1-GSPXg-1FPDEyjMe3J3_cIaZu7tilHNvDF8o|Link modul]]| |
- | |7 | Cabluri tată-tată | Conectare componente | - | | + | |7 | LED Roșu | Indicator vizual | - | |
- | |8 | Rezistor 220Ω | Protejare LED | - | | + | |8 | Breadboard 400 puncte | Placă de prototipare | - | |
+ | |9 | Cabluri tată-tată | Conectare componente | - | | ||
+ | |10 | Rezistor 220Ω | Protejare LED | - | | ||
+ | |11 | Baterie externă 5V | Alimentare portabilă | - | | ||
** Schema Electrică ** | ** Schema Electrică ** | ||
Line 109: | Line 112: | ||
** Tabel Legături Componente ** | ** Tabel Legături Componente ** | ||
- | ^ Componentă ^ Pin Modul ^ Pin ATmega164A ^ Funcție ^ | + | |
- | | Modul Microfon LM393 | OUT | PA0 (ADC0) | Citire semnal analogic | | + | ^ Componentă ^ Pin Modul ^ Pin ATmega328P ^ Funcție ^ |
- | | | VCC | +5V | Alimentare | | + | | **Modul Microfon LM393** | OUT | A0 | Citire semnal analogic (sunet) | |
- | | | GND | GND | Masă | | + | | | VCC | +5V | Alimentare | |
- | | LED | Anod (+) | D8 | Control LED | | + | | | GND | GND | Masă | |
- | | | Catod (-) prin R 220 Ohm | GND | Masă prin rezistor | | + | | **LED** | Anod (+) | D8 | Control LED zgomot | |
- | | Modul MicroSD SPI | CS | D13 | Select Chip | | + | | | Catod (-) prin R 220Ω | GND | Masă (cu rezistor de protecție) | |
- | | | MOSI | D11 | Date de la ATmega către SD | | + | | **Modul microSD (SPI)** | CS | D10 | Chip Select SPI | |
- | | | MISO | D12 | Date de la SD către ATmega | | + | | | MOSI | D11 | Date de la microcontroller către SD | |
- | | | SCK | D10 | Ceas SPI | | + | | | MISO | D12 | Date de la SD către microcontroller | |
- | | | VCC | +5V | Alimentare | | + | | | SCK | D13 | Ceas SPI | |
- | | | GND | GND | Masă | | + | | | VCC | +5V | Alimentare | |
- | | Alimentare | VCC | +5V | Alimentare pentru toate componentele | | + | | | GND | GND | Masă | |
- | | | GND | GND | Masă comună | | + | | **Modul DHT22** | DATA | D4 | Citire temperatură și umiditate | |
+ | | | VCC | +5V | Alimentare | | ||
+ | | | GND | GND | Masă | | ||
+ | | **Modul Bluetooth HC-05** | TXD | D3 (RX SoftwareSerial) | Date de la modul către microcontroller | | ||
+ | | | RXD | D2 (TX SoftwareSerial) | Date de la microcontroller către modul | | ||
+ | | | VCC | +5V | Alimentare | | ||
+ | | | GND | GND | Masă | | ||
+ | | | STATE / EN | – | (neutilizat în proiectul actual) | | ||
+ | | **Alimentare 5V** | VCC | +5V | Alimentare comună pentru toate modulele | | ||
+ | | | GND | GND | Masă comună | | ||
** 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'' | + | ---- |
- | -> Platformă de dezvoltare compatibilă cu Arduino UNO (ATmega328P) | + | **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. | ||
+ | |||
+ | ➤ 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 zgomot, bazat pe microcontrollerul ATmega328P. Sistemul: | + | * creează/loghează într-un fișier text cu sunet, temperatură ș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 (ex: bătăi din palme, voce, lovituri), 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 secunde, sistemul: | ||
+ | |||
+ | * salvează evenimentul într-o bază separată (complaints.db); | ||
+ | * trimite automat un email de alertă către recepție (ex. ancutza@gmail.com, crinutza@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 zgomot, datele 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 ===== | ||