Water Metering?

I’ve had ideas on monitoring the Houses water usage for awhile. The method I was thinking, which was severing the mains and putting a flow meter in between, didn’t sound like the best of ideas. The flow meters I have around don’t really look up to snuff for something as hardcore as monitoring the water mains. Per tap is another thing though. I think they would be great at this. It was then when I was reading through some hackaday.com articles when I came across HackersBench project to monitor is own water usage. He had the fantastic idea of monitoring the magnet that spins around inside the mains water metre with a magnetometer! Surely not I thought, can this really be detected? I wasn’t sure if the magnetometer would be able to get close enough to the magnet to pick up anything. It was damn well worth trying out though. I breadboarded up an Arduino nano, A LCD , a battery pack and a MAX3110 magnetometer.20140913_151630

I banged out some quick code to show the readings on the X,Y and Z axis and went out to test. I ended up having to dig out my meter a bit to get to it better. Amazing how much crud builds up in there. I remembered cleaning it out 3-4 years ago.20140913_151641

I turned a tap on and left it running and ran back to the meter. Holding the sensor in place I fired up the Arduino and…. BINGO! It was easy to see the Sine wave of results appearing on the LCD. Up Down Up Down. This was excellent. I was quite excited. I took the contraption I had built inside and over the next few days have been coding and testing a more permanent solution. I added an XBee to the solutions and updated MotherHubs code to accept the new sensors. The code so far seems robust. Its been running most of  the day with no problems. I made a few changes including calibrating how many of the rotations of the magnet meter it takes for a litre of water to be measured. Hopefully its pretty dead on now. the mains meter is a Davis Shephard type. No model number that I can see and I couldn’t find any Specifications on the net. If anybody else is looking I have it as 57.1428 millilitres per turn of the magnet.

Here are some graphs from Xively.com. Not the best but until I get my own web front end up they tide me over 🙂 These are based over 12 Hours.


Water Usage. Litres per minute

Water Usage. Litres per Hour

Water Usage. Litres per Day

This has completely side tracked me from the PowerArdy project but I have enjoyed it thoroughly. Need to get to work on designing a PCB for it! I have the breadboarded unit inside a lunch box by the meter at the moment. Not sure how long the battery can run it as yet. I’ll have to add battery monitoring next 🙂

This entry was posted in Arduino, Electronics, SensorNet and tagged , , , , . Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback.


  1. Marko
    Posted November 27, 2015 at 6:10 pm | Permalink

    Great project. I’ll try to do the same, but I’m not sure which components did you use. The picture shows ADXL326 accelerometer, but in the text there is MAX3110 magnetometer. What is correct? I bought an ADXL345 accelerometer and it’s working when I’m tilting it, but I don’t see any changes when I put the magnet near the sensor. Moving the magnet doesn’t make any changes to x,y,z values. Do you have any suggestions? Thank you.

    • Posted November 27, 2015 at 6:37 pm | Permalink

      Hi Marko! Yes the ADXL I had laying around was not sensitive enough to pick up the water meters magnet so I switched to sparkfuns Max sensor. I have the arduino code on Github if you would like a look and also recently did up a circuit board in Eagle although this has yet to be tested! Aswell as that I built up a low power arduino which GREATLY increased battery life!

      • Marko
        Posted February 20, 2016 at 11:14 pm | Permalink

        Well, I don’t know how I missed your reply. Thank you for those information. I already built the meter following your instructions and it’s working but it’s still not stable. I have to figure it out why it stops working after some time. One of the problem is that Arduino is loosing connection to the sensor – this is probably because there is around 10 meters of wire between sensor and board.

Leave a Reply