-
Software
03/29/2016 at 03:08 • 0 commentsWrite 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
03/28/2016 at 23:04 • 0 commentsBattery 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
03/28/2016 at 23:01 • 0 commentsSet 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
03/28/2016 at 23:00 • 0 commentsPressure 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
03/28/2016 at 22:59 • 0 commentsLCD 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
03/23/2016 at 23:11 • 0 commentsThere 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.