This shows you the differences between two versions of the page.
pm:prj2025:apredescu:anca.radu2411 [2025/05/25 23:17] anca.radu2411 [Download] |
pm:prj2025:apredescu:anca.radu2411 [2025/05/28 12:38] (current) anca.radu2411 [Descriere generală] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Sistem de monitorizare a nivelului de zgomot dintr-o cameră de hotel ====== | + | ====== Monitor ambiental pentru camere de hotel ====== |
===== Introducere ===== | ===== Introducere ===== | ||
- | 📌 **Ce face proiectul:** | + | 📌 **Ce face proiectul**: |
- | Dispozitivul monitorizează nivelul de zgomot dintr-o cameră de hotel și aprinde un LED atunci când se depășește un prag sonor prestabilit. În plus, înregistrează periodic valorile măsurate pe un card SD pentru a permite personalului hotelului să consulte ulterior istoricul zgomotului. | + | Dispozitivul monitorizează condițiile ambientale dintr-o cameră de hotel, măsurând: |
- | 🎯 **Scopul și ideea de la care am pornit:** | + | * nivelul de zgomot |
+ | * temperatura și umiditatea aerului | ||
- | Mi-am propus să ajut hotelurile să îmbunătățească confortul clienților, oferindu-le o soluție simplă de monitorizare și înregistrare a zgomotului, pe care personalul să o poată verifica ușor. | + | Atunci când sunetul depășește un prag prestabilit: |
- | 🤝 **De ce cred că este util:** | + | * se aprinde un LED de avertizare |
- | * Pentru hoteluri, ajută la gestionarea reclamațiilor legate de zgomot și îmbunătățirea serviciilor. | + | * se salvează datele (zgomot + climă) pe un card SD |
- | * Pentru personalul hotelului, oferă o modalitate simplă de verificare a problemelor. | + | * dacă se detectează 3 astfel de evenimente în mai puțin de 1 minut, se consideră o plângere și se: |
+ | * salvează într-o bază de date separată | ||
+ | * trimite automat un email către recepție (sau administrator) | ||
+ | |||
+ | Toate măsurătorile sunt transmise periodic prin **Bluetooth**, pentru a putea fi salvate într-o bază de date și analizate. | ||
+ | |||
+ | 🎯 Scopul și ideea de la care am pornit: | ||
+ | |||
+ | Mi-am propus să ajut hotelurile să îmbunătățească confortul clienților și monitorizarea automată a comportamentului din camere, printr-un sistem accesibil care: | ||
+ | |||
+ | * avertizează discret asupra depășirilor de zgomot | ||
+ | * colectează date climatice | ||
+ | * automatizează notificarea personalului | ||
+ | |||
+ | 🤝 **De ce cred că este util**: | ||
+ | |||
+ | * Pentru hoteluri, ajută la gestionarea plângerilor, păstrarea liniștii și prevenirea abuzurilor. | ||
+ | * Pentru personal, oferă acces la date și alerte în timp real fără intervenție manuală. | ||
+ | * Pentru clienți, contribuie la un mediu mai liniștit și mai controlat. | ||
Line 19: | Line 38: | ||
**Diagrama Bloc** | **Diagrama Bloc** | ||
- | Dispozitivul are următoarele module: | + | Dispozitivul este format din următoarele componente: |
- | * Senzor de zgomot (microfon analogic + comparator) – detectează sunetul și generează un semnal analogic proporțional. | + | |
- | * Microcontroller ATmega328P – citește semnalul analogic prin ADC, îl compară cu un prag și comandă LED-ul și logarea pe card SD. | + | * 🎙️ Modul microfon (analogic LM393) – detectează nivelul de sunet ambiental |
- | * LED de semnalizare – indică dacă pragul de zgomot a fost depășit. | + | * 🌡️ Senzor DHT22 – măsoară temperatura și umiditatea |
- | * Modul SD Card (SPI) – salvează măsurătorile pentru a păstra un istoric. | + | * 💡 LED – se aprinde dacă zgomotul depășește pragul |
- | * Alimentare 5V – sursă de tensiune pentru toate modulele. | + | * 💾 Modul microSD (SPI) – salvează datele local pentru verificare ulterioară |
+ | * 📶 Modul Bluetooth HC-05 – transmite datele către un laptop | ||
+ | * 🧠 ATmega328P – citește toți senzorii, decide acțiunile și comunică cu cardul SD și Bluetooth | ||
+ | * 🔋 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** | ||
- | * Microfonul trimite semnalul la ADC-ul microcontrollerului. | + | **Microfonul** (LM393) trimite un semnal analogic către pinul A0 al microcontrollerului. Acesta este citit prin ADC pentru a detecta dacă sunetul depășește un prag. |
- | * Microcontrollerul decide dacă aprinde LED-ul. | + | |
- | * Microcontrollerul trimite datele către cardul SD prin SPI. | + | **ATmega328P**: |
- | * Toate modulele sunt alimentate din aceeași sursă. | + | |
+ | * compară valoarea semnalului de la microfon cu un prag prestabilit. | ||
+ | * aprinde LED-ul dacă pragul este depășit. | ||
+ | * citește temperatura și umiditatea prin protocol digital de la DHT22 (pe pinul D4). | ||
+ | * trimite periodic toate datele (zgomot, temperatură, umiditate) prin Bluetooth (HC-05). | ||
+ | * salvează aceleași date pe cardul SD prin interfața SPI (pinii D10–D13). | ||
+ | |||
+ | **DHT22**: | ||
+ | |||
+ | * măsoară temperatura și umiditatea aerului. | ||
+ | * trimite datele către ATmega328P o dată la câteva secunde, în format digital. | ||
+ | |||
+ | **LED-ul**: | ||
+ | |||
+ | * este aprins de către microcontroller atunci când sunetul este considerat excesiv. | ||
+ | |||
+ | **Modulul microSD:** | ||
+ | |||
+ | * primește comenzi prin SPI și salvează loguri locale cu valorile măsurate. | ||
+ | |||
+ | **Modulul Bluetooth HC-05**: | ||
+ | |||
+ | * primește date de la microcontroller prin SoftwareSerial (pinii D2 și D3). | ||
+ | * le transmite în timp real către un laptop, pentru afișare și salvare. | ||
+ | |||
+ | **Laptopul**: | ||
+ | |||
+ | * rulează un script Python care citește datele prin Bluetooth (COM4). | ||
+ | * salvează periodic datele într-o bază de date masuratori.db. | ||
+ | * dacă detectează 3 depășiri de zgomot într-un minut, salvează în complaints.db și trimite automat un email de alertă. | ||
+ | |||
+ | **Alimentarea** de 5V (de la power bank) este comună tuturor modulelor și oferă energie pentru întreg sistemul. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 39: | 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 56: | 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 ===== | ||