Why I started this project
Last November in 2015, I started an IoT project which simulates a sunrise event at a scheduled time. I really wanted a practical project which I can use in my daily life to enhance the quality of my life.
While researching for viable solutions, Philips Hue smart LED bulb, LIFX LED bulb, and various choices were found. I did not choose either of these choices for few reasons. To use a Philips smart bulbs, you require a central hub which allows you to connect to it for controlling all the smart bulbs. LIFX has integrated wi-fi module built into the bulb. Both choices were too expensive to start with, and I didn’t want something that is already built out of the box. I wanted more hands on action which would give me a full control of my soon-to-be sunrise alarm.
After few weeks of researching, I decided to use a Raspberry Pi as my web-server which controls a connected RGB LED light strip. Following technology were used for this project
- Raspberry Pi: ARM based linux computer
- Adafruit RGB LED strip: controllable via GPIO on Raspberry Pi
- NGINX: web server
- Gunicorn: WSGI proxy web server
- Django: alarm web application
- MySQL: record keeper
- Bootstrap: UI design
The github repository for this code is provided here.
This youtube clip shows a sped-up version of the sunrise simulation for the demo purpose.
A simple authentication page is present to limit other users from triggering or scheduling my alarm.
Currently, it shows past scheduling history for a development purpose.
Simple alarm configuration page is displayed.
To be added
Even though this IoT is still usable, I would like to add few more features into the application.
- For the user to configure multiple alarms.
- Display only active alarms on the status page.
- Allow the user to delete/deactivate selected alarm.
- NGINX and Gunicorn to auto-start at an event of a crash.
- Web scrap newsfeed and voice it out over a speaker when the alarm triggers.