While doing everyday things in the household, one of us noticed the amount of water that accidently gets used due to the high water pressure coming out of faucets. We then came up with an idea to help a user control the amount of water that flows in their households, to save water, energy, and money.

What it does

Our device tracks the water consumption of a user using their water meter. It also send the information to a database which is built to pull the data to make analytics graphs showing the user their water consumption.

How I built it

A Hall sensor circuit on the Arduino detects a magnetic field brought about by a spinning magnet underneath a water pressure guage, which is what is used to drive the dial and increment each time a litre of water is used. This signal is amplified and serially sent to a raspberry pi, which uploads the information onto a database, all this using Node.js. Our website then pulls the data and performs simple analytics such as monthly, weekly, daily, hourly water usage, and extrapolation of usage by the end of the month. The user then has a front end method of setting a value for the amount of water consumption they would like to aim for by the end of the month (or what they wants their water bill to be). The arduino can also tighten or loosen a water faucet, which can be used in controlling the amount of water flow in a household.

Challenges I ran into

Communicating the arduino and rpi through Node was extremely difficult, especially when interfacing it with Node.js, as well as the difficulties extracting information from FIrebase as our online database. It was also very difficult to troubleshoot the amplifier and conditioning circuit.

Accomplishments that I'm proud of

I gained heightened ability for circuit design, and learned how to interface the rpi, arduino, and web applications together with Node.js. I also 3D printed my first object, a model of the water guage.

What I learned

I learned how to use Node.js, the effects of magnetic fields due to spinning solid magnets, and how to interface multiple platforms.

What's next for Every Drop Counts

We would like to perfect our extrapolation method by using machine learning algorithms to increase the accuracy of future value predictions. We would also like to be able to allow the user to set their target water usage or water bill, and our device would ensure the target is met through controlling the main water valve.

Share this project: