Capacitive Plant Moisture Sensor Corrosion Resistant Grove



Capacitive Plant Moisture Sensor Corrosion Resistant 

The Grove Capacitive Moisture Sensor can be used to detect the moisture of soil. It can be used to decide if the plants in a garden need watering. It can be used in gardens to automate watering plants. It can be used very easily by just inserting the sensor into the soil and reading the output using  an ADC.

This is the Soil Moisture Sensor used in the Smart Garden System.


This product measures soil moisture levels by capacitive sensing, rather than resistive sensing like other types of moisture sensors. It is made of a corrosion resistant material giving it a long service life. 

The product includes an on-board voltage regulator which gives it an operating voltage range of 3.3 ~ 5.5V. It is compatible with low-voltage MCUs (both 3.3V and 5V logic). To make it compatible with a Raspberry Pi, an Analog to Digital Converter is required.

This uses a Grove Analog port.   This product also includes a Gravity cable.

NOTE: This sensor is not hardened against contamination or exposure of the control circuitry to water. It is designed for experimenting and prototyping only. It isn’t well suited to being used outdoors without further sealing and waterproofing.

Check out our article on the Capacitive Moisture Sensor on our blog,




  • Grove compatible interface
  • Easy to use
  • Operating Voltage: 3.3 ~ 5.5 VDC
  • Output Voltage: 1.2 ~ 2.5V
  • Interface: Grove Analog
  • Dimension: 98mm * 23mm (3.86in x 0.905in)
  • Weight: 15g


  • Capacitive Moisture Sensor
  • Grove Cable
  • Gravity Cable

Interpreting the Output 

The final output value for the Arduino (10 bits)  is affected by probe insertion depth and how tight the soil packed around it is. 

For example: Value_1 = 520; Value_2 = 260.
The range will be divided into three sections: dry, wet, water. Their related values are:

  • Dry: (520 430]
  • Wet: (430 350]
  • Water: (350 260]

Software for Arduino

The Arduino has a 10 bit ADC (Analog to digital converter). See specifications above.

// Test code for Grove - Capacitive Moisture Sensor 
int sensorPin = A0; // select the input pin for the moisture sensor
int sensorValue = 0; // variable to store the value coming from the sensor7=

void setup() {
void loop() {
    // read the value from the sensor:
    sensorValue = analogRead(sensorPin);
    Serial.print("sensor = " );

Software for the Raspberry Pi

(using the 4 Channel 16 bit ADC for the Raspberry Pi)

This Python code snippet is taken from SmartPlantPi. This uses a 16 bit ADC.


            if (config.ADS1115_Present):
                Moisture_Raw   = ads1115.readADCSingleEnded(config.moistureADPin, gain, sps)/7 # AIN0 wired to AirQuality Sensor
                state.Moisture_Humidity   = Moisture_Raw/7
                if (DEBUG):
                        print "Pre Limit Moisture_Humidity=", state.Moisture_Humidity
                if (state.Moisture_Humidity >100):
                    state.Moisture_Humidity = 100;
                if (state.Moisture_Humidity <0):
                    state.Moisture_Humidity = 0;