Nume: Boari Ioana-Ruxandra
Grupa: 331CD
GitHub Repo: https://github.com/IoanaBoari/earthquake-vibration-detector
Proiectul reprezintă un sistem de detecție a vibrațiilor, similare celor produse de un cutremur. Atunci când sunt detectate astfel de mișcări, sistemul declanșează alerte sonore, vizuale și afișează un mesaj pe un ecran LCD.
Scopul este de a oferi un semnal de atenționare în timp util, astfel încât utilizatorul să poată interveni pentru a proteja obiectele fragile aflate în apropiere.
Ideea proiectului a pornit de la interesul personal pentru fenomenul cutremurelor și din dorința de a găsi soluții simple pentru a fi cât mai precaută în astfel de situații. Consider util un astfel de dispozitiv deoarece poate oferi un avertisment imediat la apariția vibrațiilor, oferind timp pentru a reacționa și a evita eventuale pagube materiale.
În proiect se utilizează un senzor MPU6050 care transmite către Arduino date de accelerație prin interfața I2C. Arduino compară valorile citite cu valorile de repaus stabilite la calibrare. Dacă diferența depășește un prag predefinit, sistemul consideră că s-a produs o vibrație semnificativă și declanșează o alertă: activează un buzzer controlat prin semnal PWM, aprinde alternativ două LED-uri și afișează un mesaj de avertizare pe un ecran LCD 1602 prin I2C. Alarma va fi resetată printr-un buton conectat la un pin configurat cu întrerupere, iar o nouă apăsare va reactiva sistemul, reluând procesul de calibrare și monitorizare. În plus, sistemul trimite în timp real datele de accelerație prin interfața UART, permițând vizualizarea grafică a acestora în Serial Plotter.
Listă de piese:
- Arduino Uno
- Accelerometru MPU6050
- LCD 1602
- Buzzer pasiv
- 2 LED-uri
- Buton tactil
- 2 Rezistente 220ohm
- Breadboard
- Cabluri de conectare
Schema electrica:
BOM:
Componenta | Procurare | Datasheet |
---|---|---|
Arduino Uno | Optimus Digital | Datasheet |
Accelerometru MPU6050 | Emag | Datasheet |
LCD 1602 | Optimus Digital | Datasheet |
Buzzer pasiv | Optimus Digital | Datasheet |
LED rosu | Optimus Digital | Datasheet |
Buton tactil | Optimus Digital | Datasheet |
Rezistenta 220ohm | Optimus Digital | |
Breadboard | Optimus Digital | |
Cabluri de conectare | Optimus Digital |
Descrierea în detaliu a funcționalității hardware
1. Arduino UNO
2. MPU6050 – Senzor de accelerație și giroscop
3. LCD 1602 cu interfață I2C
4. Buzzer pasiv
5. LED-uri
6. Buton tactil
7. Breadboard + cabluri jumper
Proiectul a fost dezvoltat folosind mediul de dezvoltare Arduino IDE, în limbajul C++, și utilizează funcționalități precum: comunicație I2C, UART, semnal PWM, GPIO și întreruperi externe.
Sistemul are trei stări:
Trecerea între stări se realizează folosind o variabilă globală `systemState` și un flag `buttonPressed` setat printr-o întrerupere externă.
accX_ref = sumX / 100; accY_ref = sumY / 100; accZ_ref = sumZ / 100;
int deltaX = abs(accX - accX_ref); if (deltaX > threshold) { // declanșează alerta }
Serial.print(accX); Serial.print("\t"); Serial.print(accY); Serial.print("\t"); Serial.println(accZ);
attachInterrupt(digitalPinToInterrupt(buttonPin), onButtonPress, FALLING);
for (int j = 0; j < 20; j++) { readAccel(); sumX += accX; delay(50); }
În urma realizării proiectului, am reușit să dezvolt un sistem funcțional de detectare a vibrațiilor cauzate de mișcări bruște, care declanșează o alertă sonoră și vizuală și poate fi controlat printr-un buton.
Sistemul funcționează stabil și a fost testat în mai multe scenarii de simulare a unui cutremur prin lovirea mesei pe care este așezat. Se poate observa clar declanșarea alertei și revenirea la modul standby, confirmând buna integrare a componentelor hardware și logica software.
Mi s-a părut un proiect interesant, care mi-a oferit ocazia să explorez mai multe moduri de a semnala o alertă relevantă pentru oricine, atât vizual, cât și auditiv.
Resurse Hardware
Resurse Software