phatduinoa personal home automation technology arduino

Soil moisture sensor

Purpose: Measuring soil moisture of my yucca to know when it has to be watered

Characteristics: The soil moisture sensor is a story of its own... I did not want to spend a lot of money on a proper, digital soil moisture sensor which would give me linear values because of two reasons: They are quite expensive and for me there was no obvious reason to spend much on this kind of "side-feature" This is how the sensor is placed in the pot that was not serving any important purpose regarding the idea of automating my home - there would be no funds to build an automated watering can at last! The second reason is that I always like to do things myself and luckily found an interesting tutorial on which was just what I was looking for.

Finally I built the sensors as described in that article, but instead of straws with a great diameter (you can hardly find them here in Germany) I used PVC tube used in horticulture. After the gypsum dried I cut the tube with a copper cord connected to my soldering iron. (Do not forget to open your windows - the fume is toxic!)

The sensor is placed deep inside the flower pot, ensuring that it would measure the soil moisture right at the roots of my precious yucca.
Anyways, the measure circuit is just the same as that one used with the photocell, the conductance of the gypsum structure increases as it soaks up more and more water. Do not be fooled by the voltage measured - it is not linear to the actual moisture.

Thumbnail of a photoPrimarily I wanted to find out how that curve behaves as moisture changes, I even made an experiment putting the dry gypsum column into a bowl of water and measuring the resulting voltage in the circuit. Unfortunately I did never examine the results in depth, I can only guess that neither the circuit nor the sensors shows a linear behaviour. The diagram of the measurement is shown below.

By the way, reading the sensor value is as easy as taking candy from a baby: You simply use analogRead() to get the voltage from a pin.

Diagram of voltage measured in measure circuit of soil moisture sensor


From: [javascript protected email address]

You use 5/1023 V because of Arduino reference voltage?
From: [javascript protected email address]

Thank you so much for your site! I love the information and the style. I am going to build that soil sensor, too but i cannot find a shop where to buy the galvanized nails. I am also from germany and i already tried at bauhaus, bahr and so on. Do you have any idea? Or a online shop? thank you so much!