Skip to main content

Soil Moisture Sensor with Arduino Uno

Working of Sensor

The soil moisture sensor consists of two probes which are used to measure the volumetric content of water. The two probes allow the current to pass through the soil and then it gets the resistance value to measure the moisture value.

When there is more water, the soil will conduct more electricity which means that there will be less resistance. Therefore, the moisture level will be higher. Dry soil conducts electricity poorly, so when there will be less water, then the soil will conduct less electricity which means that there will be more resistance. Therefore, the moisture level will be lower.

This sensor can be connected in two modes; Analog mode and digital mode. First, we will connect it in Analog mode and then we will use it in Digital mode.
Specifications
The specifications of the soil moisture sensor FC-28 are as follows:
Input Voltage3.3 – 5V
Output Voltage0 – 4.2V
Input Current35mA
Output Signal
Both Analog and Digital

Pin Out – Soil Moisture Sensor for Analog Pin
The soil Moisture sensor FC-28 has four pins:
  • VCC: For power
  • A0: Analog output
  • D0: Digital output
  • GND: Ground

The Module also contains a potentiometer which will set the threshold value and then this threshold value will be compared by the LM393 comparator. The output LED will light up and down according to this threshold value.
Analog Mode – Interfacing Soil Moisture Sensor and Arduino
To connect the sensor in the analog mode, we will need to use the analog output of the sensor. When taking the analog output from the soil moisture sensor FC-28, the sensor gives us the value from 0-1023. The moisture is measured in percentage, so we will map these values from 0 -100 and then we will show these values on the serial monitor.You can further set different ranges of the moisture values and turn on or off the water pump according to it.

Pin Out – Soil Moisture Sensor for Digital Pin
The connections for connecting the soil moisture sensor FC-28 to the Arduino in digital mode are as follows.

  • VCC of FC-28 to 5V of Arduino
  • GND of FC-28 to GND of Arduino
  • D0 of FC-28 to pin 12 of Arduino
  • LED positive to pin 13 of Arduino
  • LED negative to GND of Arduino
Digital Mode – Interfacing Arduino and Soil Moisture Sensor
To connect the soil moisture sensor FC-28 in the digital mode, we will connect the digital output of the sensor to the digital pin of the Arduino. The Sensor module contains a potentiometer with it, which is used to set the threshold value. This threshold value is then compared with the sensor output value using the LM393 comparator which is placed on the sensor module.The LM393 comparator will compare the sensor output value and the threshold value and then gives us the output through the digital pin. When the sensor value will be greater than the threshold value, then the digital pin will give us 5V and the LED on the sensor will light up and when the sensor value will be less than this threshold value, then the digital pin will give us 0V and the light will go down.

Arduino Code for Analog Pin

/*******
 All the resources for this project:
 https://lihuo.blogspot.com
*******/ int sensor_pin = A0;
int output_value ;

void setup() {

   Serial.begin(9600);

   Serial.println("Reading From the Sensor ...");

   delay(2000);

   }

void loop() {

   output_value = analogRead(sensor_pin);

   output_value = map(output_value,550,0,0,100);

   Serial.print("Mositure : ");

   Serial.print(output_value);

   Serial.println("%");

   delay(1000);

   }

Arduino Code for Digital Pin


int led_pin = 13;
int sensor_pin = 8;

void setup() {

  pinMode(led_pin, OUTPUT);

  pinMode(sensor_pin, INPUT);

}

void loop() {

  if(digitalRead(sensor_pin) == HIGH){

    digitalWrite(led_pin, HIGH);

  } else {

    digitalWrite(led_pin, LOW);

    delay(1000);
  }
}



Comments

Popular posts from this blog

Discrete mathematics

            It's about Discrete mathematics in this book  #Anthony Croft, Engineering Mathematices, 5e (2017)  So i will choose exercise 5.2 #7 #8 #9  to slow everyone: 7 . The sets A, B and C are given by A = {1, 3, 5, 7, 9}, B = {0, 2, 4, 6} and C = {1, 5, 9} and the universal set, E = {0,1, 2, . . . ,9}. (a) Represent the sets on a Venn diagram. (b) State A ∪ B. (c) State B ∩ C. (d) State E ∩ C. (e) State not A. (f) State not B ∩not C. (g) State not (B ∪C). Ans :  a ) Represent the sets on a Venn diagram : The set containing all the numbers of interest is called the universal set, E. E is represented by the rectangular region. Sets A , B and C are represented  by the interiors of the circles and it is evident that 1 ,   3,  5,  7 and 9 are members of A while 0, 2,  4,  and 6 are members of B that 1,  5  and  9 are members of C....

Software Arduino IDE

Arduino is an open source computer hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices and interactive objects that can sense and control objects in the physical world. A program for Arduino hardware may be written in any programming language with compilers that produce binary machine code for the target processor. Atmel provides a development environment for their 8-bit AVR and 32-bit ARM Cortex-M based microcontrollers: AVR Studio (older) and Atmel Studio (newer). IDE The Arduino integrated development environment (IDE) is a cross-platform application (for Windows, macOS, Linux) that is written in the programming language Java. It originated from the IDE for the languages Processing and Wiring . It includes a code editor with features such as text cutting and pasting, searching and replacing text, automatic indenting, brace matching, and syntax highl...

Lab 2 , 3 , 4 Method math in java

Class Teedcalculator: /*  * To change this license header, choose License Headers in Project Properties.  * To change this template file, choose Tools | Templates  * and open the template in the editor.  */ package teedcalculator; import static teedcalculator.Oparetor.tand;// to access all static Tand of a class import static teedcalculator.Oparetor.tan;// to access all static Tan of a class import static teedcalculator.Oparetor.cost;// to access all static Cost of a class import static teedcalculator.Oparetor.cosd;// to access all static Cosd of a class import static teedcalculator.Oparetor.degree2;// to access all static Degree of a class import static teedcalculator.Oparetor.divide;// to access all static divide of a class import static teedcalculator.Oparetor.minus;// to access all static minus of a class import static teedcalculator.Oparetor.modulo;// to access all static modulo of a class import static teedcalculator.Oparetor.multiply;// to acce...