In this project I worked with a team of 6 to design and build an interactive decorative water fountain. My contributions were a back-end and communication protocol so users can control the fountain over the internet, some graphic design for the Smrt Watr "brand" and building of the actual water fountain.
This was a design project in our 3rd year of Systems Design Engineering. The only two specifications for our team was that our project needed to connect to the internet in some way and it needed to have something to do with... water.
We looked at several different problems but one that stuck out was water fountains. One of our team members had worked at Sick Kids hospital in Toronto for a co-op and noticed that the water fountains in the lobby of Sick Kids were seldom noticed or appreciated. Today, people are easily more entertained by their smartphones than by a simple water fountain. So we wanted to change that.
Step 1: Collecting User Requirements
So we decided to create a water fountain that was interactive through your smartphone. Before we created the fountain and its controls we decided to create a persona for the primary user. This way we could create a user story to explain how this user would use the fountain and that would determine our design decisions. We named our primary user Timmy.
Step 2: Design Development
Since there were 6 people on our team, we split our roles into different subsystems. I set up the controls subsystem, all the while making sure Timmy's user requirements were met. Using a Raspberry Pi connected to the internet I was able to set up a python server with a built in web socket so a user could go to a website and play a game and each action would immediately trigger a reaction in the Raspberry Pi. This way Timmy could play a game on his dad's phone, making the fountain respond, and the web socket allows for him to play against his sister in real time. Depending on the action the user performed, the Pi would send a signal to a Teensy Arduino and tell it to change the fountain. The Arduino would take the command from the Raspberry Pi and change the lights, rotate the jets with motors and turn the water up or down depending on the command. All this happened immediately following some action the user did on their phone.
This project was a huge success and won our team the award for the best project out of over 15 other projects in our class.