50% OFF! Hot items selling fast—Grab them before they're gone!
The TB-SEN0021 Capacitive Soil Moisture Sensor V1.2 is an analog plant-soil moisture probe for irrigation control, greenhouse monitoring, classroom experiments, and smart gardening projects. Unlike exposed resistive probes, this capacitive design measures changes in soil moisture without relying on direct electrode corrosion, which makes it better suited for repeated plant-monitoring use.
The module outputs an analog voltage that can be read by a microcontroller ADC, letting software classify soil as dry, damp, or wet. It is easy to prototype with the ELAB Nano V3, the Raspberry Pi Pico W, or an UNO R3 Prototype Expansion Board. For air-climate context around plants, pair it with a DHT22 AM2302 sensor.
For best results, calibrate the probe in the actual soil type and pot depth where it will be installed. Soil composition, salinity, packing density, and watering method can all shift the ADC range, so fixed thresholds should be tuned per application.
| Parameter | Value |
|---|---|
| SKU | TB-SEN0021 |
| Variant | 1x Set |
| Sensor Type | Capacitive soil moisture hygrometer |
| Output | Analog voltage |
| Operating Voltage | 5V DC, per current listing |
| Interface | PH2.0-3P |
| Dimensions | 22 x 97 x 9mm |
| Cable | Approx. 190mm 3-wire cable, per current listing |
| Measurement Principle | Capacitive moisture sensing |
| Host Requirement | Analog input / ADC |
| Applications | Plant watering, irrigation, soil monitoring, agriculture demos |
Read raw analog values to find dry and wet calibration points.
const int soilPin = A0;void setup() { Serial.begin(115200);}void loop() { Serial.println(analogRead(soilPin)); delay(1000);}
Use a relay output when soil becomes drier than the selected threshold.
const int soilPin = A0;const int relayPin = 8;const int dryThreshold = 620;void setup() { pinMode(relayPin, OUTPUT);}void loop() { int soil = analogRead(soilPin); digitalWrite(relayPin, soil > dryThreshold ? HIGH : LOW); delay(2000);}
Convert calibrated ADC readings into a percent moisture estimate.
const int soilPin = 34;const int wetValue = 1200;const int dryValue = 3000;void setup() { Serial.begin(115200);}void loop() { int raw = analogRead(soilPin); int percent = map(raw, dryValue, wetValue, 0, 100); Serial.println(constrain(percent, 0, 100)); delay(2000);}
Log soil readings from a Pico ADC pin.
from machine import ADC, Pinimport timesoil = ADC(Pin(26))while True: print(soil.read_u16()) time.sleep(5)
Q: What does TB-SEN0021 include?
A: It is the 1x Set variant for this capacitive soil moisture sensor page.
Q: Is this analog or digital?
A: It provides analog output.
Q: Why capacitive instead of resistive?
A: Capacitive sensing reduces corrosion because the probe does not depend on exposed resistive electrodes.
Q: Can I use it with Arduino?
A: Yes, connect the output to an analog input.
Q: Does every soil need calibration?
A: Yes, calibrate for your soil type and watering range.
Q: Can the whole board be buried?
A: No, insert only the probe section and keep electronics dry.
Q: Can it run at 3.3V?
A: The current listing states 5V DC, so verify behavior before 3.3V use.
Q: Why do readings change after watering?
A: Water distribution through soil takes time, so readings may settle gradually.