Monitoring soil moisture levels is crucial for any gardener or farmer. Knowing when to water your plants prevents overwatering and underwatering, both of which can damage or kill your plants. Buying a ready-made soil moisture sensor can be expensive, often $50 or more. However, with just a few cheap components, you can make your own DIY capacitive soil moisture sensor for under $5.

In this article, I will walk you through the complete step-by-step process of making your own soil moisture sensor. We will cover:

Materials Needed

To make the soil moisture sensor, you will need:

That's it! These basic electronic components are very affordable. You likely already have some of them on hand too.

How a Capacitive Soil Moisture Sensor Works

A capacitive soil moisture sensor measures the dielectric permittivity of the soil, which is a measure of how well the soil conducts electricity.

Dry soil is a poor conductor of electricity. When the soil is dry, the dielectric permittivity is low, meaning it does not conduct electricity well.

Wet soil conducts electricity much better. When the soil moisture increases, the dielectric permittivity increases, meaning it conducts electricity better.

By measuring the capacitance (ability to store charge) of the soil, the sensor can determine how much moisture is present. Higher capacitance = wetter soil.

Circuit Diagram

Here is the circuit diagram showing how to connect the components:

How to Make a DIY Capacitive Soil Moisture Sensor for Under

Don't worry if this looks complicated! I will explain step-by-step how to connect it up.

Step-by-Step Build Instructions

Follow these steps to build your own capacitive soil moisture sensor:

1. Cut and prepare the probe

Cut a piece of aluminum tape about 5 inches long. This will act as the sensor probe that goes into the soil.

Clean the surface using isopropyl alcohol to remove any residues. This allows for better contact with the soil.

2. Connect the probe to the Arduino

Use jumper wires to connect one end of the aluminum tape to the 5V pin on the Arduino.

Connect the other end of the probe to analog input A0 on the Arduino. This sends the sensor readings to the Arduino.

3. Connect the resistor

Solder a 1 megaohm resistor between the A0 pin connection and the GND pin. This protects the Arduino from short circuits.

4. Connect the capacitor

Solder a 0.1 microFarad ceramic disk capacitor between the 5V pin and GND pin on the Arduino. This filters out unwanted signals.

5. Upload the code

Using the Arduino IDE, upload this example sketch to your Arduino board. This reads the capacitance from the sensor and prints the moisture levels.

6. Take it for a test run!

Upload the code and open the Arduino's serial monitor. Insert the aluminum tape probe into soil and watch the moisture readings change. Wave it in air to see the readings change. It works!

Calibrating Your Sensor

The raw sensor readings you get will be arbitrary. To translate them into meaningful moisture levels, you need to calibrate the sensor.

Here is a simple calibration process:

  1. Take sensor readings in completely dry soil and record the values. This is your lower benchmark.
  2. Take sensor readings in fully saturated wet soil and record the values. This is your upper benchmark.
  3. Interpolate between these lower and upper benchmarks to convert future sensor readings into a % moisture content.

It takes only a few minutes to calibrate but makes your sensor readings much more useful.

Taking Continuous Automated Readings

Manually taking moisture readings by plugging in the Arduino repeatedly is tedious. To automatically log soil moisture over time:

Now you can easily generate graphs and monitor trends in soil moisture over time.


Building your own capacitive soil moisture sensor is simple, cheap, and a great Arduino project for monitoring your plants' health. With just $5 of basic electronic components and this guide, you will have an Arduino-based soil moisture sensor up and running in no time. Happy building!