Advanced Alarm Clock

We need to get up in the morning.
This will wake us up no matter what.

Similar projects worth following
Uses a variety of sensors and power outputs to make sure we get up in the mornings, on time.

Project Summary

We all need to wake up in the mornings, and I am not that good at it. :D So I need to build my own alarm clock that can get me out of bed on time, even if I stayed up until 4 am building something fun. An Arduino chip will be the brains that reads sensors, and controls displays, sensors, leds, and buzzers that will ensure that I get up and don't abuse the snooze feature, and go off again if I get back into bed.

  • 1 × Amtel atmega328P The main brain.
  • 1 × 4x20 LCD display
  • 5 × LEDs Electronic Components / Misc. Electronic ComponentsVaru
  • 1 × DS3231SN Clock and Timer ICs / Real-Time Clocks
  • 1 × motion sensor

View all 10 components

  • Software

    James Rogers03/29/2016 at 03:08 0 comments

    Write up on my low power scheduling library.

    The library code itself in Github.

    First cut at the clock code using low power scheduling library I wrote.

    The clock code currently only tells the date, time, temperature.

    It also has a task to monitor the motion detector that is running constantly now and just turning on an LED.

    Need to add:

    • Alarm code. Wire up an annoying buzzer.
    • When alarm sounds start task to monitor motion detector.
    • When motion detector senses motion, snooze alarm.
    • Snooze starts at 5 minutes and reduces by a minute each time it goes off. After a minute it drops down to 30 seconds and stays there.

    Typical snooze durations. 5+4+3+2+1+.5+.5+.5 = 16 and a half minutes.

    Right now it is nothing for me to hit a 9 minute snooze button 3 times, for close to a half an hour of snoozing.

  • Hardware

    James Rogers03/28/2016 at 23:04 0 comments

    Battery back up good enough to wake up next morning if power goes out in the night. Turn off features to conserve power until alarm sounds in the morning.

    Arduino on a bread board design for lowest cost and most options.

    3D printed case holds display, battery, and circuit board.

    There is something wrong with the cell in the RTC. It is supposed to charge up and keep the clock on for months, but it only lasts a few minutes right now. Do I need to only charge it so long each week? Did I overcharge it by leaving the charge circuit on all the time? Would it reduce power to only charge it when needed?

    Set up a small lion cell with step up power supply to act as a UPS. Detect when running from battery and switch off everything until we fire off the alarm, or there is user interaction on controls.

  • Advanced functions to add later in dev cycle

    James Rogers03/28/2016 at 23:01 0 comments

    Set alarm for most days, then add in except list of company holidays so that alarm will not sound on those mornings. Web based interface to clock for these advanced options?

    Set time over network. Send instructions to other computers and devices.

    Turn on news and weather report for local area. And/Or read to do list for the day using commands sent to desktop machine.

  • Secondary sensors and outputs to add once core is working

    James Rogers03/28/2016 at 23:00 0 comments

    Pressure sensor under mattress detects if you are out of bed.

    Slowly ramps up a light in the room to full brightness.

    Birds chirping sound to stimulate waking.

  • User Interactions

    James Rogers03/28/2016 at 22:59 0 comments

    LCD that shows time. Light sensor adjusts brightness of back light to room conditions.

    Push button, step rotary adjusts programming of alarms and other features.

    Momentary button. Snooze alarm. Snooze starts at just 5 minutes and decreases by a minute each time.

    Motion sensor detects if you are moving around.

    Annoying buzzing alarm to force awake if other things fail.

  • Settings should be stored in EEPROM

    James Rogers03/23/2016 at 23:11 0 comments

    There is EEPROM storage in both the RTC and the Arduino chip. Various settings should be stored in this memory that survives a power cycle.

    Alarms can be read from their setting in the real time clock. When the alarm goes off it should set a pin high.

    You only need a single alarm set, and the regular expressions to find the next time an alarm will fire.

View all 6 project logs

Enjoy this project?



Dimitri Synodinos wrote 08/06/2016 at 00:16 point


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates