Sensing water flow in a pipe


I remember my dad yelling at my sister and I since we took long showers.  My sister had the hot water turned off more than once on her although I never did.

Now it is my turn to yell at my two adolescents who like to take hour long showers.  It is summer here, and we have an oil furnace which heats only hot water this time of year, and in three months, they have managed to go through a 220 gallon tank of oil which is just under $900 here. That tank under normal usage in previous years had lasted well into November and maybe even early December.

I have asked nicely that they be reasonable in their hot water usage, and now it is no more Mr. Nice Guy.  So, I want to be able to sense water flowing in a pipe and if the shower is longer than 15 minutes, to turn the hot water off.  I found something that will go on the end of the shower head that would work for $140 but figure I can come up with something cheaper than that.  I have a good idea on how to turn the valve off on my hot water tank (limit switches, a 6v electric screw driver), but what I need help with is sensing when the water is on.

I found this online:

but was unable to get this to work.  I thought it ideal since it requires no plumbing change.  The exact piezo used in the circuit was unavailable so I found another one at Radio Shack so I didn't have to wait for it to arrive.

The piezo worked well with the op amp circuit documented in the tutorial and easily sensed pressure, large vibrations (I used it on my tablesaw and it sensed those vibrations), taps etc, but didn't pick up the low hum of water running in the pipes. 

I had thought about using a temperature sensor on the copper pipe, but I was concerned it might hold heat and erroneously think the water was on longer than it was and not allow hot water to anyone in the house.  The pipes from the back of the shower are in a tiny closet that is always very hot, so in summer it could be 105 degrees in there.  I could use two sensors, one for ambient air and the other attached to the pipe.  A substantial difference in temp indicates hot water is running.  I am not sure if this is a good approach though.

I was thinking of trying some vibration sensors from Sparkfun to see if those would work.  Would anyone else have any suggestions on how best to approach this?  Has anyone done anything like this and what was your approach?  Am I going to have to hire a plumber to put in a water flow sensor?




If you go the route of having someone install something, why not just add an inline electric heater for the hot water? The bonus would be that you could sense when the heater powered up and shut it off after a set time period. :slight_smile:

Ok, besides how to cut the

Ok, besides how to cut the hot water after a specified time frame…how does the next one in the shower resets the whole system to get the hot water running again? I mean cutting is one thing but how to sense that there is another person in the shower now who might want to have hot water.

Using a bandaid to fix a broken leg

The root of the problem is using oil to heat the water in the first place. Tankless / on-demand electric water heaters are pretty advanced these days. If you’re spending roughly $300/month, I think a new water heat will pay for itself in no time (you might want to crunch the numbers, I have no idea how much the are or how efficient they are).

But if you’re doing the project for the heck of it, I really like Yahmez’s idea about using the self-powered shower head. I’m guessing you’d be able to get better accuracy with it rather than temperature sensing.

**LOL Love the metaphor. **

LOL  Love the metaphor.   That is probably good advice.  I should do something about how much I put into hot water.  Back in 2001, when we changed it over from electric, it was a good move. 



All of you guys are awesome!

Thanks for the good advice and suggestions.  Wow, what an overwhelming response.  I am a bit concerned that using temperature might be a problem as Lumi suggested since if someone jumps in immediately after the other it might seem an extra long shower to the controller and the second person gets a dose of cold water.   I probably can sort it though by getting the trend of the ambient temperature versus changes of the pipe temperature.  I will give it a try though and see how it works out.  I will be sure to post some video and pictures of my project as it progresses. 

Thanks again to everyone for the many suggestions, humorous allegations as to what they are doing in there for an hour, etc.  You guys are great.



I have been thinking after

I have been thinking after reading all the suggestions. There are some good technical advises. 

However, i might have found a solution for all your trouble…maybe a bit oversized but i think it’s a fun and educational project approach.

First of all, install a finger print sensor outside the shower to identify the person who wants to shower. 

Second, give that person enough hot water to finish their cleaning/enjoying procedure. You might measure the water flow with a flow sensor combined with a temperature sensor. 

Third (the fun part), after a specified ammount of time there will be a spoken warning message like “Attention, include name of the person, the hot water flow will end in 2 minutes. Please get all the soap and shampoo off your body before because it’s getting freezing cold soon” (depends on your creativity and the sense of humor your family can take ^_^) … After that given amount of time you will stop the hot water flow without further warning. Or maybe two warning messages…

Fourth (and here comes the educational part) will be a record of each persons shower time/temperature/water use etc. which is stored on a SD card or elsewhere. Once per month or the day your oil bill is due you could show the graphs on the computer and reward the person(s) who used the less hot water.