Water pressure sensor for central heating

Hi folks,

Had some damage yesterday on my central heating system. Could have prevented that by checking my water pressure more often, but you know how does things go...

Currently I have this:


To keep an eye on this manually is a bit annoying because:

  • When the heating boiler is cooling down, the water gets colder and shrinks so its pressure will drop.
  • When the heating boiler is warming up, the water gets hotter and expands so its pressure goes upwards.

Which means I only am allowed to inject extra water (manually via a valve), when the pressure is too low AND the water is hot. Because when I do that when the water is cold, pressure might become too high afterwards when the water warms up.

Much too complicated, because without doubts I will forget that again in the future.

I want to read the pressure via Node-RED and do some calculations, and give me a warning automatically...

Does anybody knows a decent & affordable & easy to install water pressure sensor, that can easily be connected to Node-RED running on a Raspberry? And which can read both cold and warm water.

P.S. unfortunately I don't have the time to start learning programming arduino or other boards. So I am looking for an easy to setup solution. And I prefer a wired solution, doesn't matter which protocol as long as it is earsy to setup. Probably it won't exist I assume ...

Thanks a lot!!

1 Like

Does your system have a capacitor fitted? If so then the pressure should not change dramatically when the water heats up.

Mine goes up a few tenths of a bar. If yours is going up a lot that suggests the capacitor needs pumping up. There should be a car tyre valve fitting so you can pump it up. If you push the valve in then air should hiss out. You can pump it up with a car pump, I think mine should be 3 bar.

I have one on the heating system and another on the hot water.

[Edit] I mean it should be pumped up to three bar.

1 Like

Hey Colin,
Yes I have decent capacitors, both for hot and cold water:

But both are 19 years old, and both were broke accidentally at the same time. And the pressure security valve was also broken... Without me noticing all of that.

Anyway doesn't matter at all anymore. I just don't want this to happen again. I want an error in my dashboard when this happens. Too much to do, to keep an eye on all those things manually.

I’m using these sensors for some years:
I’m using them to check my water filters (measure the pressure difference before and after the filter)

Cheap and working reliable. Be aware of electro corrosion if the materials don’t match. It seams to be stainless steel but I’m not sure. Electro corrosion can even eat away stainless steel

But if installed correctly they are reliable and accurate (after calibration)

1 Like

You really should replace those if they are broken, and won't pump up. Something could explode with very bad consequences otherwise. It is false economy not to fix them.

Agreed- the pumps will thank you as you possible avoid pressure hammer effects.
I checked mine and couldn’t find a valve to pump it to different pressure think mine either rely on the bladder or come pre filled

I have three (heating, solar thermal panels and fountain pump)

One of mine has a plastic cover over the valve that you have to pop off. It is not obvious that there is a valve underneath it. Perhaps modern ones are sealed though, I don't know. Mine are 20 years old.

Yes of course, I have ordered 2 new ones immediately afterwards...

Good one!! Will need to check that.
Can you please share some more info: where did you buy those? Do you know the temperature range? And how do you read the values in Node-RED?

You can get them all over the place from aliexpress (8€) to amazon (around 25€ https://www.amazon.de/dp/B07YZKZHNJ/ref=cm_sw_em_r_mt_dp_8F1JCXFJVK306KKVGG4V ) or ebay

The come in different pressure rages ... so 0-5 bar should be best for you. (do your psi calculations right otherwise you might crash into mars)

I connected them to an esp8266 via an 4ch 16bit ADS1115 ad converter like on this board


The sensors run at 5V. so for an raspberry you will probably need a level sifter on your i2c bus. Despite you might read on the net: On an ESP8266 you can run i2c together with the ads1115 powered with 5v.)

I run my own firmware communicating via mqtt following the homie convention (but most orther prebuild firmwares should support the ads1115 too)

Working Voltage: 5.0 VDC

Output Voltage: 0.5-4.5 VDC

Working Current: <=10 mA

Working Pressure Range: 0-1.2 MPa (depends on the model)

The Biggest Pressure: 2.4 MPa

Destroy Pressure: 3.0 MPa

Working TEMP. Range: 0-85 Celsius Degree

Storage Temperature Range: 0-100 Celsius Degree

Measuring Error: +_ 1.5 %FSO

Temperature Range Error: +_3.5 %FSO

Response Time: <=2.0 ms

Cycle Life: 500,000 pcs

1 Like

Hi @Christian-Me,
All the physical troubles in my central heating system are finally solved.
Now time to setup monitoring...
I have some esp32 boards which I would like to start using for this. First time...
Would be nice if you could show me how you have wired all of this! Not used e.g. i2c before...
And why you need function nodes. I read somewhere that you also need to do calibration and stuff like that. Do you do that in your flow?
So all noob level info is welcome to get me started!

Of course, you could always just use an ESP32 with camera and process the resulting image once a day :sunglasses:

You can run this off of the i2c bus.

MaddyP has developed a node for communicating with all of Atlas-Scientific's EZO sensors over i2c

I don't use this particular device, however I've deployed his node for 8 different kinds of Atlas-Sci EZO circuits/sensors .

1 Like

Hi @SonoraTechnical ,
Thanks for the links! But this is the first time that I am going to measure something via an esp32, instead of my raspberries. So (huge) way out of my comfort zone...

The sensors from @Christian-Me seem to need 5V power supply. As a result the analog signal is between 0 and 4.5 Volt, so out of the range of the 3.3 V DC powered ESP32. So I see a lot of folks on the web using two resistors to build a voltage divider to reduce to range to a 0 to 3 Volt range.

Others reduce the range by configuring an attenuation in software.

So it is not clear to me what is the best way to do it (software and wiring)...

Bart - you need to reduce the input voltage using a resistor divider chain otherwise you'll damage/destroy the ESP32. Here's a very rough sketch of a 2:1 voltage-divider.

I suspect the red and black wires are the supply for the pressure sensor (+5v and ground) and the green wire is an analogue output voltage proportional to the pressure value.

A simple 2:1 voltage-divider should be fine in this situation. It also means the resistor values are easy to calculate as they are the same. I've suggested 4K7 ohm resistors but any resistors should work from 1K to 10K (as long as they are a pair). I would put a 2.7V Zener diode across the input to the ESP32 - just to provide some protection if the input voltage ever went above +3.3V.

I've not used the ESP32 only ESP8266s in the form of Wemos D1 Mini - all flashed with ESPeasy as like Tasmota all the drivers are built-in. Although in this situation you are just using an analogue input.

1 Like

Welcome to the ESP club :wink:

It can be a bit daunting at first, but there are several IOT firmware available for these devices which make using them quite easy, and they offer a lot of flexibility to create your own custom devices for all sorts of uses.

I tried out a few firmware some time ago and decided to stick with tasmota as its very well supported with regular updates. As you probable know its also possible to flash this onto lots of commercial products to allow complete control and customization.

I have every smart device in the house running Tasmota, including power monitoring sockets, light bulbs, RF and IR transceivers and LED light strips etc.

I have also made lots of custom multi sensor devices, which have temperature, humidity, motion sensor, light sensor and LCD displays. I also retrofitted them to other devices eg boiler controls ,making none smart extractor fan smart, even replacing my alarm panel.

So I would suggest look at Tasmota and flashing one of your ESPs. You can then connect it to Wi-Fi and MQTT server and have a play around with some sensors etc.

I'm happy to help you with this :wink:

PS. I'm not on commission I just like Tasmota , as its allowed me to realise lots of ideas I've had !!

1 Like

Hey David,
So to summarize: when I use the ADC converter of the ESP32, then I need to use a voltage divider because the 4,5 V max output of the sensor will damage my ESP32. But if I use (via I2C) an ADS1115 powered by 5V, then I don't need a voltage divider. Correct? I see in this Tasmota

Suppose I flash Tasmota on my ESP32. When reading this issue, it is not quite clear to me how it works. Does this particular device needs to be supported by Tasmota, or can you just read the AD converter input (independent of what is connected to it)?

Noob level info ;-). Just what I needed. Thanks!!
Will need to go to the local electronics shop...

Thats correct yes - the device just outputs a voltage relative to the pressure. So you would get an MQTT message for the analog input.

1 Like

in this discussion they are talking about the same sensor, but they say the A0 (ADC input of ESP32) allows only 1 Volt, so they divide it differently. Is their info not correct then?
So I need to make sure that the maximum voltage of the sensor doesn't exceed my AD converter limit, but on the other hand I should not be too precautious otherwise the resolution of my measurement won't be good enough? I mean with the latter: if I only use part of the range of my AD converter, then I throw away precious bits. Correct?

So I don't need to setup any attenuation or other config for that ADC? It just works out of the box?

And there is also a possibility to send - at regular intervals - http requests (containing commands) to Tasmota, to read the ADC values? Or is that bad practice, compared to MQTT?
To be honest, I didn't have time yet in the past to use MQTT a lot :smiling_face:. How often do you get a measurement via MQTT?

A lot of people use the wemos D1 Mini, this has a limit of 1v but has a built in voltage divder for the analog pin allowing upto 3.2V

ESP 32 can have upto 3.3v on any input pin.

1 Like

You can send a request for info via http request or MQTT. For MQTT the loggin interval can be set from 10 seconds to several hours.

1 Like