Hi,
I implemented a ‘Sleep Monitoring’ device based on the great Seeed nRF52840 Sense board and the code is developed in the Arduino environment / IDE. It measures breathing rate, sleep positions, movements, suspected sleep apnea events by measuring low‑frequency micro‑movements of the human body.
It also measures audio noises to detect snoring.
Alerts can be triggered in case of position on the back that favors apneas and snoring.
Snoring volume can also trigger vibration alerts.
The project is designed mostly for experimentation, and my wife is the real life and happy tester, as she suffers apneas, only when she sleeps on the back. Some vibrations when she is ont eh back and… she moves to the side ![]()
The software is Arduino based, in C. The user interface generating graphics is written in Python.
Its available on Github, with some level of documentation: GitHub - midibody/Sleep_monitor: Sleep-monitoring wearable for breathing, apnea, and snoring detection with vibration alerts
It works quite well, but I would be happy to get some advices regarding the power consumption: I use the IMU and even when switching to system off (NRF_POWER->SYSTEMOFF = 1), it still burns aound 570uA. If I remove the calls to UMI functions, it falls to mostly 0uA. So, the LSM6DS3.h library included in the Arduino nRF52 package seems to force something up (I dont use the BLE firmware as I dont use Blutooth).
Any idea , code in this environment is welcome ![]()