This shows you the differences between two versions of the page.
pm:prj2025:apredescu:anca.radu2411 [2025/05/24 15:28] 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]] | | + | |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://ardushop.ro/ro/module/601-modul-microfon-senzor-sunet-6427854007254.html?gad_source=1&gad_campaignid=22058879462&gbraid=0AAAAADlKU-41-2czyYDWcrCVAuZSa0kRI&gclid=CjwKCAjw24vBBhABEiwANFG7yxt9lwCaDfzYca1itTxYtCpWX8uSSc2Qk_KkCVpIG13xgoibbPAg3xoCfnkQAvD_BwE|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://www.optimusdigital.ro/ro/memorii/1516-modul-slot-card-microsd.html|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:poza_componente_anca.radu2411.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 |
+ | |||
+ | ''logPeCard()'': | ||
+ | |||
+ | * creează/loghează într-un fișier text cu sunet, temperatură și umiditate | ||
+ | |||
+ | ➤ Python: | ||
+ | |||
+ | ''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 | ||
- | ''logSunet(int valoare)'': | ||
- | * 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 ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | În urma implementării și testării proiectului, a fost realizat un sistem complet funcțional de monitorizare ambientală, capabil să: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | * **Detecteze și semnalizeze zgomotul**: |
- | ===== Download ===== | + | Modulul de microfon analogic detectează nivelul de sunet din încăpere. |
- | <note warning> | + | 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. |
- | 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ă ;-). | + | |
- | </note> | + | * **Salveze date local pe card microSD**: |
+ | Sistemul înregistrează valorile măsurate în fișierul ''log.txt''. | ||
- | ===== Bibliografie/Resurse ===== | + | Informațiile salvate includ: valoarea semnalului sonor, temperatura, umiditatea și momentul detectării (în milisecunde de la pornire). |
- | <note> | + | * **Transmită datele în timp real prin Bluetooth**: |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | 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. | ||
+ | |||
+ | ===== Download ===== | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
+ | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | **Resurse Hardware** | ||
+ | |||
+ | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|ATmega328P Datasheet]] | ||
+ | |||
+ | * [[https://sigmanortec.ro/Placa-dezvoltare-UNO-R3-Arduino-Compatibil-ATmega328p-CH340G-cu-bara-pini-p170362384|Placă de dezvoltare Arduino UNO]] | ||
+ | |||
+ | * [[https://sigmanortec.ro/modul-microfon-senzor-sunet-5v|Modul microfon]] | ||
+ | |||
+ | * [[https://sigmanortec.ro/Modul-MicroSD-p126079625|Modul microSD]] | ||
+ | |||
+ | * [[https://www.emag.ro/card-de-memorie-microsdhd-kingston-4gb-clasa-4-kng4/pd/D0RDW8BBM|Card microSD]] | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Resurse Software** | ||
+ | |||
+ | * [[https://www.arduino.cc/en/software|Arduino IDE]] | ||
+ | |||
+ | * [[https://www.arduino.cc/en/Reference/SD|Librărie SD.h – Documentație oficială]] | ||
+ | |||
+ | * [[https://www.arduino.cc/en/Reference/SPI|Librărie SPI.h – Documentație oficială]] | ||
+ | |||
+ | * [[https://lastminuteengineers.com/sound-sensor-arduino-tutorial/|Documentație generală Arduino UNO + senzori audio]] | ||
+ | |||
+ | ---- | ||
+ | |||