HomeChecker in action - quick-read panel and detailed sensor info
Behind the scenes: Flask server and serial bridge
HomeChecker lets you add inexpensive sensors around your house one at a time to get started with home automation.
"Smart home" devices are super cool, but expensive to try out. To get users' feet wet with home automation, HomeChecker provides and manages affordable sensors that can be dropped around the house to monitor temperature, light levels, and more.
What it does
HomeChecker's sensors monitor your house and report back to our server, where you can get a quick status report or long-term trends. For instance, you can use HomeChecker as you leave the house to make sure the lights are all off, or view temperature trends over time.
How we built it
We programmed Arduinos to report light and temperature levels to a central Flask server, and displayed user-friendly data with Bootstrap and Plotly. We didn't have network hardware for the Arduinos, so we also built a "serial bridge" so that a computer could connect them to the internet. Our backend used Postgres/SQLAlchemy for future integration with Google Cloud Platform.
Challenges we faced
With multiple subsystems, it was important to set up straightforward, reproducible build environments so that we were both able to work on any subsystem. We also had problems with the serial bridge subsystem - keeping lag at a minimum was essential, and sparse library documentation made the bridge tricky to build. Additionally, the manufacturer's example code for the temperature sensor we used was faulty, so we had to use simulated data.
Accomplishments that we're proud of
It was a great feeling when the different subsystems and technologies finally "clicked" together. Even though we didn't need it for the amount of data we have to present, we were also successful in coming up with strategies for long-term data storage.
What's next for HomeChecker
- More statistics per sensor.
- A mobile app, to show push notifications when you leave home or let you know when something looks strange.
- Give users more flexibility in viewing graphs.