SleepGuard
SleepGuard este un dispozitiv integrat pentru monitorizarea calității somnului în timp real, utilizând o serie de senzori specializați. Acesta captează mișcările utilizatorului printr-un accelerometru, detectează zgomote ambientale și sforăitul cu ajutorul unui microfon cu amplificator, afișează temperatura camerei și include un ceas cu alarmă programabilă. La finalul ciclului de somn, oferă utilizatorului un raport informativ prin WiFi pe un dispozitiv extern (telefon, laptop), incluzând recomandări personalizate pentru îmbunătățirea calității somnului.
Scopul proiectului
Proiectul are ca obiectiv susținerea utilizatorului în înțelegerea și optimizarea obiceiurilor de somn prin colectarea unor date relevante (mișcare, zgomot, temperatură ambientală). De asemenea, sistemul declanșează o alarmă concepută pentru a permite o trezire mai naturală și mai eficientă.
Inspirație
Proiectul a fost inspirat din lipsa calității somnului autorului si a importanței sale pentru sănătatea fizică și mentală. Mulți indivizi nu sunt conștienți de calitatea slabă a somnului lor, întrucât aceasta nu este determinată exclusiv de durata somnului, ci și de profunzimea și continuitatea acestuia.
Importanță
SleepGuard reprezintă o soluție accesibilă și ușor de realizat (DIY) pentru monitorizarea somnului, oferind o alternativă viabilă la produsele comerciale de profil. Prin furnizarea unor date clare și acționabile despre obiceiurile nocturne, dispozitivul îi sprijină pe utilizatori în adoptarea unor măsuri concrete pentru îmbunătățirea odihnei, ceea ce are un impact direct asupra stării generale de bine și a productivității zilnice.
Componente hardware:
Funcționalitate software:
Interacțiune componente:
1. ESP32 <-> LCD - status pe parcursul utilizării, oprire LCD când timer-ul este activ 2. Butoane <-> ESP32 - configurare și oprire alarmă, buzzer 3. MPU6050, MAX4466, DHT11 <-> ESP32 - masoară calitatea somnului 4. ESP32 <-> Buzzer - trezire utilizator, oprire senzori 5. ESP32 <-> External Device - trimitere rezultate
Observații design
Alimentare
Dispozitivul este alimentat prin 6 baterii alcaline de 1.5V (total 9V), legate în serie într-un battery holder pack cu DC jack.
Jack-ul este conectat la un breadboard power supply care prin poziționarea a 2 jumpere, distribuie pe rail-urile breadboard-ului 3.3V respectiv 5V.
Astfel pot fi alimentate:
Power Management
Componentă | Consum în IDLE (mA) | Consum în Running (mA) |
ESP32 (WiFi activ) | 80 | 120-150 |
MPU6050 | 0.5 | 3.9 |
MAX4466 | 0.7 | 0.7 |
DHT11 | 0.1 | 0.5 |
LCD 1602 | 1 | 15-20 |
2 Buttons | 0 | 0 |
Buzzer Pasive 3.3V | 0 | 30 |
Total | 82.3 | 170.1 - 205.1 |
Autonomie
6 batterii AA (total 2000-2500 mA)) ⇒
Având in vedere optimizările făcute in cod :
⇒ autonomie efectivă: 24 de ore (3 nopți)
Source code: GitHub Repository
IDE: Visual Studio Code and PlatformIO extension
Dependențe externe:
Structura codului:
Implementarea se bazeaza pe un FSM (Finite State Machine) (utils.h). Device-ul este trecut prin mai multe stări (main):
Adițional, în LCD/ se afișează constant pe display în ce stare e device ul și în Sleep/ sunt parsate datele despre somn:
Total linii de cod: 900 - 1000
Laboratoare folosite:
0. GPIO - input/output componente 1. UART - afișare de mesaje pe serial 2. Întreruperi - butoane: configurare alarmă, oprire alarmă 3. Timere - peste cât timp suna alarma 3. PWM - acționarea asupra buzzer-ului 4. ADC - configurarea microfonului 6. I2C - comunicarea cu lcd-ul si mpu6050 extra. Wi-Fi - ESP32 creează un server web unde afișează rezultatele monitorizate în timpul somnului
Parameter | Deep Sleep | REM Sleep | Light Sleep | Restless Sleep |
Accelerometer | < 0.8 m/s² | < 1.5 m/s² | < 3.0 m/s² | ≥ 3.0 m/s² |
Gyroscope | < 0.25 rad/s | < 0.5 rad/s | < 1.0 rad/s | ≥ 1.0 rad/s |
Noise | 120 units | 122.5 units | 125 units | ≥ 125 units |
SleepGuard este un proiect ce evidențiază importanța calității somnului unui utilizator, indiferent de durata acestuia. Monitorizarea poate fi realizată cu ușurință folosind componente accesibile și un microcontroller ESP32. Printre realizările notabile se numără:
* Consum redus de energie, în ciuda numărului mare de componente hardware utilizate
* Logica complexă a stărilor prin care trece dispozitivul și implementarea acesteia
* Afișarea rezultatelor prin intermediul unei interfețe web, pentru o vizualizare mai clară a datelor
Idei pentru dezvoltări ulterioare:
* Analiză mai detaliată a datelor colectate, în scopul îmbunătățirii calității somnului
* Tonuri de alarmă personalizabile, în funcție de preferințele utilizatorului
* Integrarea într-un ceas digital „SleepWatch”, pentru o portabilitate sporită
* O interpretare a rezultatului mai bună pe baza unor sfaturi medicale
Source code, project details and project images:
GitHub Repository
Github content:
Name | Description | Link | Datasheet |
---|---|---|---|
ESP32-WROOM | Microcontroller ESP32 | Optimus Digital | Datasheet |
MPU6050 | Accelerometer and Gyroscope module | Sigmanortec | Datasheet |
MAX4466 | Microphone with amplifier | Sigmanortec | Datasheet |
Passive Buzzer | Buzzer 3.3V | Optimus Digital | Datasheet |
Buttons | 4 pin Push Buttons | Optimus Digital | Datasheet |
DHT11 | Temperature and Humidity Sensor | Optimus Digital | Datasheet |
LCD 1602 | Liquid Crystal Display | Optimus Digital | Datasheet |
Power Supply | Breadboard Power Supply | Optimus Digital | Datasheet |
Battery holder | 6 AA Battery holder with DC jack | Optimus Digital | Datasheet |
Other | Capacitor, Resistors, Wires male-female/male-male, Breadboard |