We're big fans of Internet of Things (IoT) devices, from Raspberry Pis to smart light bulbs to home security/safety sensors. However, sometimes even for tech-savvy individuals, it can be difficult to develop the necessary networking and scripts to actually automate certain tasks with their devices. So, as fearless Terps, we sought to build a better solution: An IFTTT (If This Then That) For IOT.
What it does
IOTooEasy is both an expandable and contractable platform in that it lets users simplify or complexify their IoT desires as necessary. Users can add virtual devices like light bulbs and temperature sensors at the click of a button, and physical devices on the same network are automatically added. Then, users can add scripts (similar to IFTTT, except for any device) that rely on a trigger, input device, and module, and output a certain action in an output device. The example we implemented for demoing purposes is wirelessly turning on a lamp at the click of a physical button anywhere in the house. Another is calling a friend when in need at the touch of a button.
How we built it
We built the platform using a lot of Python! Our front-end is served by a Flask web app (HTML/CSS/JS + Python), and our back-end uses Flask as a RESTful API tool. We wanted to simplify and streamline things as much as possible.
Challenges we ran into
Unfortunately, networking projects need a solid network; put lightly, Bitcamp's WiFi was not exactly the best network out there. However, we were able to move back to our dorm rooms, use the Internet there, and create a local network at Bitcamp for demoing. Also, building our own API platform was something new to all of our team members. We had to figure out the various endpoints to use, what kind of data to exchange, and what the best and simplest way to implement it.
Accomplishments that we're proud of
It works! We built our own API and that was pretty cool. We also learned a lot of the ins and outs of Flask along the way.
There are various real-world applications of our project in different settings. First, of course, is in-home automation for IOT novices, intermediates, and experts. Another is wellness in the home; one of the modules we're working on is calling or texting a designated friend or hotline just by pressing a physical button. We also think that if developed enough, the API could be helpful in education by helping kids learn to use IOT devices in a more streamlined fashion.
What's next for IOTooEasy
Next, we'd like to expand the API but adding more modules (triggers, actions, etc.), scheduling recurring events, adding your own code (we built the API to allow for this in the future), and a more robust UX.