#include <LiquidCrystal_I2C.
h>
LiquidCrystal_I2C lcd (0x27, 16,2);
//INT MEANS INTEGER, IT IS USED TO GIVE DECLARATION TO DIGITAL PINS
//SOIL MOISTURE SENSOR
int soilpin= A0;
//BUZZER
int buzz= 2;
//RGB
int R=9;
int G=10;
int B=11;
void setup()
{
pinMode (buzz, OUTPUT);
pinMode (soilpin, INPUT);
//[Link] USED TO INITIALIZE THE SERIAL MONITOR.
//SYNTAX IS USED TO TURN ON THE BACKLIGHT AND INITIALIZE THE LCD.
[Link](9600);
[Link]();
[Link]();
}
void loop()
{
//THE SYNTAX ANALOGREAD USED TO READ THE ANALOG MEASUREMENT FROM THE SENSOR.
//FLOAT USED TO NAME A DECIMAL VALUE.
int soilmoistureVal= analogRead (soilpin);
float soilmoisturePercen=map(soilmoistureVal, 1023,0,0,100);
[Link]("Soil Moisture");
[Link] (soilmoisturePercen);
[Link]("%" );
delay (1000);
if (soilmoisturePercen <=5)
{
//IF SOIL IS DRY, "SOIL IS DRY" WILL DISPLAY.
[Link](0,0);
[Link]("SOIL IS DRY");
[Link](0,1);
[Link](soilmoisturePercen);
[Link]("%");
delay (2000);
[Link]();
//IF SOIL IS DRY, THE BUZZER WILL MAKE A NOISE.
digitalWrite (buzz, HIGH);
//IF SOIL IS DRY; THE RGB WILL TURN RED.
analogWrite (R, 255);
analogWrite (G, 0);
analogWrite (B, 0);
}
else if (soilmoisturePercen<=50)
{
//IF SOIL IS MOIST, "SOIL IS MOIST" WILL DISPLAY.
[Link] (0,0);
[Link] ("SOIL IS MOIST");
[Link] (0,1);
[Link] (soilmoisturePercen);
[Link] ("%");
delay (2000);
[Link] ();
//IF THE SOIL IS MOIST, THE BUZZER WILL MAKE A NOISE.
digitalWrite (buzz, HIGH);
//IF THE SOIL IS MOIST, THE RGB WILL TURN GREEN.
analogWrite (R, 0);
analogWrite (G, 255);
analogWrite (B, 0);
}
else
{
//IF NO CONDITIONS ARE MET, "SOIL IS WET" WILL DISPLAY.
[Link] ("SOIL IS WET");
[Link] (0,1);
[Link] (soilmoisturePercen);
[Link] ("%");
delay (2000);
[Link] ();
//IF NO CONDITIONS ARE MET, THE BUZZER WILL NOT SOUND.
digitalWrite (buzz, LOW);
//IF THE SOIL IS WET, THE RGB WILL TURN BLUE.
analogWrite (R, 0);
analogWrite (G, 0);
analogWrite (B, 255);
}
}