For quite a while I am monitoring temperature and humidity in each single room of my apartment. I was inspired by several Raspberry projects, featuring a “Garden Pi“, to monitor my house plants as well, using a probe to measure moisture level of soil.
On the net, one can find many low-cost sensors which are compatible with Arduino or Raspberry Pi. They usually consist of simple PCBs with two electrodes which are pushed into the earth. Moisture is determined by measuring conductivity of the soil which isn’t very reliable for long-term measurements. Cheap sensors are often affected by heavy corrosion, so that Copper ions will leach out and might poison your plants.
In contrast, sensors measuring soil moisture levels by capacitive sensing rather than resistive sensing are much more suitable, because they are made of corrosion resistant material which gives them an excellent service life.
On the net one can find only few sensor shields compatible with Arduino/ Raspberry Pi, which make use of capacitive sensing:
- Giess-O-Mat ( about 6 € )
- DFRobot ( about 9 $ at Amazon or Aliexpress )
- Capacitive Dipole Sensor (DIY Sensor)
I2C Soil moisture sensor (13 $ on Tindie)
A general problem of all capacitive sensors is their accuracy and sensitivity against various interfering factors (soil composition, salt content etc.). Most sensors come coated with a moisture resistant varnish for electronics. Though sometimes it just does not work, probably because of different soil composition. Waterproofing was heavily discussed on the German Raspberry Pi Forum and Zentris Blog.
A short review of the DFRobot Capacitive Soil Moisture Sensor (SKU:SEN0193)
I purchased a DFRobot Capacitive Soil Moisture Sensor with an operating voltage range of 3.3 ~ 5.5V. Since it sends an analog output signal of 0 ~ 3.0 VDC, an ADC (e.g MCP3008) is required for operating it on a Raspberry Pi.