- Settings for each day of the week
- Sleep cycle alignment system for setting alarms aligned with REM cycles
- Sound file and Pandora based alarms
- Configuration web interface with responsive design and automatic configuration saving
- 3D printed case and button and speaker configuration
Simply clone the repository and run install.sh
, which will install dependencies (in requirements.txt
) and configure pianobar, the Pandora streaming system.
To start up the daemon (backend/alarmpi.py
) and webserver (backend/server.py
) automatically, add a command to run one of the included start scripts to /etc/rc.local
:
bash /home/pi/AlarmPi/start.sh
or python /home/pi/AlarmPi/start.py
The scripts will automatically run the application as the pi user to keep logfiles from being written as root.
To change the password for the web interface, generate the SHA-256 hash of your desired password using a tool such as this one, and then set LOGIN_PASSWORD_HASH
in server.py
to that hash.
I suggest you launch the web interface to get a better sense of the configuration and features of the project.
The AlarmPi requires several physical add-ons to the Pi:
- Three buttons ('dismiss,' 'snooze,' and 'sleep now' for using the cycle-aligned alarm)
- A small speaker and a headphone cable (I got these from a pair of old headphones)
- A small 3W amplifier to boost the speaker
- (Optional) A buzzer or LED to give feedback for button presses
I have also created a 3D-printed case (hosted on OnShape) for housing a Raspberry Pi 2 with all these required components.
Unfortunately, I do not have more extensive documentation on the physical assembly, but if you are interested in more help feel free to contact me at [email protected].