Sleep Tracking using an Arduino

Background and motivation

This project was motivated by two things: my almost complete inability to get out of bed in the morning, and my fondness for recording data from routine activities and making graphs with that data.

Sleep Tracking with Arduino

My main problem with waking up in the morning is that feeling of grogginess along with an intense desire to sleep more. However, I’ve noticed that sleeping without an alarm clock, and just waking up whenever I wake up, helps. And I’ve also noticed that sometimes when I wake up I am dramatically more refreshed than usual. Reading about sleep on the web led me to learn more about sleep cycles. One interesting page (“The power of the Sleep Cycle”) claimed that it wasn’t the amount of sleep one gets, but the part of the sleep cycle we wake up in. The author suggested that, because we sleep in cycles about 90 minutes long, we should aim to wake up in the transition between sleep cycles, since the brain is more alert and refreshed at that time. He quotes from the Center for Applied Cognitive Studies:

“Studies show that the length of sleep is not what causes us to be refreshed upon waking. The key factor is the number of complete sleep cycles we enjoy. …A person who sleeps only four cycles (6 hours) will feel more rested than someone who has slept for 8 to 10 hours but who has not been allowed to complete any one cycle because of being awakened before it was completed…. ”

Here’s another paper of which I have since learned, that describes a “wearable interface for controlling the awakening time” based on this hypothesis:
Biorhythm-Based Awakening Timing Modulation


The length of the sleep cycle varies for each person, and averages about 90 minutes. I wanted to try to measure the length of mine, without having to wake up and check a clock. I also wanted to get an idea of how much I naturally move around during the night, and what patterns I might find therein.

Sleep Tracking with Arduino diagram


To investigate this, I outfitted myself with sensors that would help me determine how my position changes over the course of a night’s sleep. I used three accelerometers as tilt sensors, placed on three different places on my body: my forehead, my forearm, and my upper leg.

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]Arduino[/box]

For more detail: Sleep Tracking using an Arduino

Scroll to Top
Scroll to Top