I bought one of these off AliExpress (the thing in the photo below, not the warship). I thought it would be fun to have a fiddle around with it and work out how to connect it to my hydraulic car jack. Yeah, I am not sure why either – mainly just ‘because I have a car jack’ and ‘because I came across it on AliExpress’
What is it?
It measures the pressure of a fluid. The one the I have is a produced by Sendo in China, model S302+ (now model S312, see below). Sendo’s sensors may well be a knock-off of somebody else’s: for instance, it looks remarkably similar to these by WIKA, a German company. I do not know. For what it is worth, the unit I have feels and looks pretty robust. I cannot vouch for its accuracy, materials or longevity. Not sure I would be wanting to use it anywhere critical without further scrutiny though.
Sendo’s website actually has quite of bit of info, in English, on various pressure sensors, which would give me some confidence, but I got this out of the WIKA operating instructions:
The prevailing pressure is measured at the sensor element through the deformation of a diaphragm. By supplying power, this deformation of the diaphragm is converted into an electrical signal. The output signal from the pressure transmitter is amplified and standardised. The output signal is proportional to the measured pressure.https://www.wika.co.nz/upload/OI_S_20_en_de_fr_es_49147.pdf
I have bolded the last sentence because it was the missing information I was after when I emailed Sendo about what I was supposed to do with the damned thing!
6000psi is a lot. 40+MPa in metric.
According to the internet, water mains pressure around 30 – 80psi. It varies quite a bit.
You pump regular bike tyres to around 35psi (so around mains pressure – that’s interesting)
As a guide concrete’s compressive strength is in the 3000-5000psi range (~25-40MPa). My sensor goes beyond that. That is a lot, and not without its issues, such as how on earth does one test it?
I would have to go down to the depth of the USS Indianapolis wreckage in the Pacific ocean (5.5 km down). A third of the depth of the Marianas Trench. Incidentally, the trench is not a great distance away from the wreckage: the dark crescent to the east on the map.
Where did 6000psi come from
I have ended up with the 6000psi model because, by my calculations, this was about what the oil pressure is in the jack when there is a 3-tonne load on it. Based on the last section, I am beginning to doubt my numbers. Again, 6000psi is A LOT.
Incidentally II and III (an aside)
II. The USS Indianapolis was carrying bits meant for the Hiroshima atomic bomb. It got sunk by the Japanese torpedos. 2 of them.
III. The story of the sinking of the ship is quite frightful:
- There were 1195 crew.
- The ship went to its watery grave in 12 minutes along with 300 men.
- Of the 900 crew set adrift, only 300 survived.
- There were a lot of sharks involved
IV. On a lighter note: I wanted to know what 6000psi (18000ft) was in Jules Verne-esque ‘leagues under the sea’. 6000psi is just over only one metric-league (which is exactly 4km). Jules Verne’s title, Twenty-Thousand Leagues under the Sea, refers to the distance travelled (around twice the circumference of the earth), not the Nautilus’s depth.
So there we are.
Really straightforward. Its essentially works like an analogue potentiometer. It has 3 wires:
- signal (0.5 – 4.5V)
- power (5V)
I ordered a version specifically with these parameters in terms of power and signal, so I could wire it to an Arduino.
There is a fourth ‘earth’ pin on the DIN 175301-803 A connector my model came with. You do not connect this to anything.
The circuit I am starting with is as per the potentiometer tutorial Arduino circuit.
Arduino code for sensor pressure
I emailed Sendo for some parameters: “How do I get pressure from voltage?“. They got back to me the next day, but they did not really give me an answer, just pointed me towards the datasheets. I get the impression the answer is obvious to them or someone who knows what they are doing. They did usefully tell me that the model I have is now called the S314, as of Jan 2020. No longer the S302+.
So I have basically assumed it is as it says on the tin in terms of range, and I am assuming that the pressure is linearly proportional to the signal as per the WIKA datasheet.
Arduino analog inputs have 1024 levels (10-bit), from 0 (zero) to 5V (1023), so the voltage is related to level as follows:
The transducer model I have produces a voltage range of 0.5 – 4.5V which corresponds to 0 – 6000psi of pressure (relative to atmospheric).
This means that when wired as per the last section, zero pressure ought to read 100 as a signal level (i.e 0.5V) and 6000psi would give a level of 1023.
Code above does not take full advantage of the Arduino’s 10-bit resolution here, I am only using 820 levels of them, so ~7.3psi(50kPa) per level.
There are a couple of ways one could increase the resolution to use using the full 10-bits but it’s still not really enough. I think I will end up using an external ADC – a 16-bit one would give me 65,536 levels. I will do this another time.
The blow test
With the above code up and running I used the nearest ‘high pressure’ tool at hand by blowing as hard as I could into my sensor. Nothing, just stayed at 0Mpa, despite nearly wet myself.
Disappointing (since I still don’t know if the thing is working) but not that surprising:
- According to this paper, an adult male’s maximum expiratory pressure varies from 60-100 cmH₂0 (60-100Pa) so three orders of magnitude out from registering a reading.
- This paper suggests a human might be able to produce 1 PSI (7kPa) by holding a sneeze. The number was arrived at by computer simulation – you might kill someone otherwise.
I would guess my forcefully blowing into my sensor until-my-eyes-were-about-to-pop is somewhere between the two. Now I am intrigued 😉