Water Pressure Sensing
This project came about after a discussion on Twitter. It got me thinking about using automotive pressure senders (as used on my Fisher Fury R1) to measure water pressure. As well as measuring mains water pressure, the approach could also be used to measure the depth of water in a tank.
Pressure senders like this are used on cars to measure oil pressure. Typically they measure pressure from 0-80psi but, you can get ones that measure much lower and higher pressures. This one has a resistance that varies from 10 to 180Ω with an accuracy of around 5% full scale. It is a hang-over from British car manufacturing that they use an odd thread size of 1/8"-27 NPT. These senders vary quite a lot in price but we have ordered one on eBay for around £11.
The odd thread size means that we need to use an adaptor and we have chosen one that is 1/8" NTP to 1/2" BSP. This provides a lot of flexibility in connecting the sensor. Obviously, this is specific (I think) to the UK plumbing systems. We bought this one on eBay for less than £5.50 delivered. It is very well made! A very nice piece of anodised aluminium.
It is easy to connect the sender to standard hose fittings.
It is easy to connect through a tank wall.
It is easy to connect to 15mm pipes using compression fittings.
We are interested to monitor mains water pressure generally, to understand how it varies. We also see it being a source of presence information and also think we can use this to detect leaks.
The key design challenge here is to interface the analogue sender to our smart home. It can be done in a binary fashion, such that it triggers at a pre-set pressure or it can be interfaced using an analogue interface board.
Our preference is to use the AB Electronics Raspberry Pi I2C analogue input board to capture measurements. We are currently desiginign a suitable circuit to provide the required signal conditioning.
Using pressure senders to measure water tank levels has a different set of problems because the pressure variations are quite small. A tank with 1m depth of water will generate a pressure of just 0.1bar. Pressure changes on this scale occur naturally in the atmosphere, so any sensor used must compensate for atmospheric air pressure changes. Typically this means it exposed to the atmosphere and measures the differential pressure change. This is usually referred to as barometric pressure compensation.
Sensor 1 - 0 to 80psi, 10 to 180Ω
Our initial testing showed the pressure sender showing a resistance of 9.6Ω when not connected to the water supply. We then connected it to the outside hose and slowly turned on the tap. The resistance rose but the sensor went open circuit. It looks like the mains water pressure is over-loading the sender. This was surprising as 80psi is 5.515bar.
After a short while we realised we were connecting the sensor wrongly. This sensor actually has two functions. The first is as an analogue sensor and the resistance should be measured from the metal case to the 'G' terminal. The 'WK' terminal is for the second function and drives a switched 'low oil' pressure warning light at a fixed pressure.
We then re-tested it and it works as expected.
Sensor 2 - 0 to 10bar, 3 to 160Ω
We bought another pressure sender thinking the first one was faulty. This one is rated at 0 to 10bar. It has two terminals and the resistance is measured across them.
With both sensors we get similar readings of water pressure at around 2bar. The is some discrepancy between them though and best results would come from some calibration. Interestingly, it is clearly possible to see taps being used and appliances like the washing machine in oepration.
This is a project in progress. We are now focussing on the electrical signal conditioning circuit to enable these devices to be conencted to our smart home.