After I bought my first raspberry, i wanted to do something useful with it, but doable. It wouldn't be realistic to create a first project that is so complex that it would take ages to complete (if ever completed). I wanted to create something practical also. I would be a bit waste of time to create the most useless machine
After some thinking i selected "The Ultimate Alarm Clock" as my first project..
The project goals of this project are:
- Must be based on Raspberry Pi (of course !)
- Alarm clock must be user friendly, stable
- I never want to set the correct time; it must synchronize the time using DCF or NTP
- Wake me up, in a gentile way: volume and light must come up slowly
- I like to see the next wakeup-time without touching any button
- I have kids that love to fiddle with stuff: the volume of a alarm must be fixed (no alarm that goes off while the volume is at 0)
- I want to be able to create alarm schedules just for the working days.
- Must be able to attach two display units to the same Raspberry
- RDS information is nice
- And why not: Get alarm schedule from Google Calendar. Get traffic information from the web (to see if you need to get up early ...)
- Use, if available, IC's that do all the compex stuff. Use the Raspberry to control all the IC -> Use I2C to drive these IC's
- Drive a high power RGB led using PWM (Up to 1A per LED)
- Use FM IC with as little external components as possible (Si4735)
- Use a amplifier that has I2C interface for volume control
- Use a RTC (DS1307) as a backup clock.
- Use a light sensor to dim the background light of the display.
- Use a buffered I2C bus; so that 2 units can be some meters apart.
- Use touch buttons to control the device; these are easier to assemble in the final alarm clock (Using MPR121 as IC)
- Software written in C++11, using STL as much as possible. No char* allowed !