top of page

Soil Moisture Sensor Interfacing with Arduino UNO

Updated: Mar 2


Overview of Soil Moisture





Soil moisture is basically the content of water present in the soil. This can be measured using a soil moisture sensor which consists of two conducting probes that act as a probe. It can measure the moisture content in the soil based on the change in resistance between the two conducting plates.


The resistance between the two conducting plates varies in an inverse manner with the amount of moisture present in the soil.


For more information about soil moisture sensor and how to use it, refer the topic Soil Moisture Sensor in the sensors and modules section.

 

Connection Diagram of Soil Moisture with Arduino





Measure soil moisture using Arduino Uno


Here, the analog output of soil moisture sensor is processed using ADC.


The moisture content in terms of percentage is displayed on the serial monitor.


The output of the soil moisture sensor changes in the range of ADC value from 0 to 1023.


This can be represented as moisture value in terms of percentage using formula given below.


Moisture in percentage = 100 – (Analog output * 100)


For zero moisture, we get maximum value of 10-bit ADC, i.e. 1023. This, in turn, gives 0% moisture.

 

Soil Moisture Code for Arduino Uno


const int sensor_pin = A1;	/* Soil moisture sensor O/P pin */

void setup() {
  Serial.begin(9600);	/* Define baud rate for serial communication */
}

void loop() {
  float moisture_percentage;
  int sensor_analog;
  sensor_analog = analogRead(sensor_pin);
  moisture_percentage = ( 100 - ( (sensor_analog/1023.00) * 100 ) );
  Serial.print("Moisture Percentage = ");
  Serial.print(moisture_percentage);
  Serial.print("%\n\n");
  delay(1000);
}




7 views0 comments

Comments


bottom of page