As a team passionate about hardware we wanted to try and build something physical during this hackathon. This is how the idea of lumÏ was born.
The idea was to create a smart lamp that will automatically integrate with various aspects of your life to unobtrusively provide you with information and statuses.
What it does
lumÏ integrates with your Google calendar to provide you with visual clues as to its state constantly. It will alert you of an upcoming meeting by changing the colour of the lights. You can also set notifications in your calendar and lumÏ will notify you by blinking.
How we built it
We used an IoT board called LinkIt ONE which is equipped with various communication technologies. The board uses a set of RBG LEDs to control the colour of the lamp.
We used Python and Flask to create a web server that authenticated the user into Google Calendar using OAuth. After authenticating we can now access the upcoming events. The LinkIt communicates with the server by performing GET and POST requests to various endpoints.
The server is deployed on Heroku.
There is also a web interface into lumÏ that allows the user to log in. We used materialize to design the interface.
Challenges we ran into
This hack required us to build everything from scratch, including wiring the individual RGB LEDs into the board and then later on trying to fit everything we have built into a real life lamp.
In order to allow the user to connect to their Google account we had to use OAuth2 for authentication. This has caused us a lot of problems and was very difficult to get right. We ran into multiple issues when trying to use the client code and secrets to authenticate as well as save the authentication details so that the user doesn't need to log in multiple times.
We used hardware we have never used before for this hack. We had to figure out how the hardware operated and behaved and how to connect it to the wi-fi network.
Accomplishments that we're proud of
Working with unknown hardware is never an easy job. You need to find out how to use its IDE and learn the pin layout. We also had to figure out how OAuth works and how to deploy our application to Heroku. All of the above were difficult to achieve.
We're really proud of putting together a hack that fully works end-to-end.
What we learned
We learned a lot along the way. We had to work effectively as a team of 5 and make sure that everyone had enough work to do at any given point in time. We learned how to coordinate our efforts well with half of the team working on the LinkIt side of the software and the other half worked on the server side.
What's next for lumÏ
lumÏ was designed to integrate with not just your calendar but also other services you use frequently in your daily life. The next steps would be to develop integrations for services such as the weather, music and maybe create a remote controller for your lamp.