I grow plants. For a time, I’ve wanted a low-cost sensor that can live in my plants and broadcast information about temperature, light, water, and drainage that I can compare to ideal growing conditions. I’ve set out to build such a device. This post focuses exclusively on the moisture sensor component.
Commercial grade soil moisture sensors are available, but they are cost-prohibitive for placing in dozens of plants, rather large, and sometimes have very high power requirements for a small device. I’ll need to make this component myself.
I have a handful of designs in mind for the sensor. A couple of other hobbyist projects use a variation on the gypsum block sensor:
I’ve elected for a different design because plaster is quick to absorb moisture and slow to dry. As a result, gypsum block sensors may provide a less granular measure and can inaccurately represent the wetness of the surrounding soil (perhaps I should prove this assertion?).
The designs I’m considering generally share a common component: The sensor is a simple design involving a pair of concentric electrodes, sand as a neutral moisture medium, and a plaster disk to filter out salts or impurities that may cause errors in measurement. These parts are assembled inside a 1/2″ plastic tube cap.
This is a resistive sensor that works when an external device applies a voltage across the electrodes. The medium between the electrodes (in this case, sand) acts as a resistor. As the moisture in the medium varies, the voltage carried across the electrodes varies. This voltage can be measured to determine how wet the medium is.
At the start of the test, I arranged the sensors in a pot of sand, then fully saturated the sand with water. The test ran for about three days, sampling (excessively) once every 30 seconds. Below is a plot of the measure taken by the four devices at 15-minute granularity.
While the measurements from the four devices are relatively consistent, there’s room for improvement in both precision (note the poor measurement granularity and flapping) and consistency across devices (I seem to have one “wet” sensor and one “dry” sensor). A few adjustments should offer an improvement.