0% found this document useful (0 votes)
9 views7 pages

Plant Monitoring With SMS Alert

Uploaded by

Kamla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views7 pages

Plant Monitoring With SMS Alert

Uploaded by

Kamla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

instructables

Plant Monitoring With SMS Alert

by saurabhc33

Here I create Plant monitoring with SMS alert. Server is not required for this alert system. It is very cheap and
reliable project.

Plant Monitoring With SMS Alert: Page 1


Step 1: Block Diagram of System

In today’s greenhouses, many parameter SMS status of any kind of data. Here in this project by
measurements are required using SIM900A GSM Module we can keep
information about the effects of climate on plants. The
to monitor and control for the good quality and system shall also demonstrate climatic changes
productivity of plants. But to get the desired results which affect the plant in its productivity and quality
there are some very important factors which come etc. The main purpose of coming up with this project
into play like Temperature, Humidity, Light and Good is to build an Automatic Plant Monitoring in which
Soil, which are necessary for a better plant growth. GSM module sends the information about
Keeping these parameters in mind I have built an Temperature, Humidity, Light intensity, Soil moisture.
Automatic Plant Monitoring System over GSM
module using Arduino. This system is very efficient Because I am the Indian citizen, used SIM900A (A is
for growing good quality plants. The other important stands for Asian network) module but you can used
part of this project is that it is fully automatic and different kind of SIM module as per your country. The
working on low voltage like; 5-12V DC supply. AT codes may differ.

Now a days GSM Module is widely used for sending

Plant Monitoring With SMS Alert: Page 2


Step 2: Component Detail

------------------ I measure four types of parameters, Soil moisture contain is very important for good
which are going growth of plants. Here Soil sensor is used to measure
moisture content in Soil. Using with this sensor we
to discuss below: ------------------ can measure soil data in both way, analog as well as
digital also.
Temperature and Humidity
SMS Notification:
The DHT11 sensor is used for sensing temperature
and humidity. When the temperature and humidity are When value of any of above parameters are exceeds
high the root of plants damaged and growth of plant from a defined level or critical level, the system
not well. automatically send SMS to the owner or the operator
with information of related parameters and when the
Light Intensity value comes in normal range or below the defined
level again the system automatically send SMS to the
Light intensity is an important factor for the plant owner or the operator with information of related data.
growth. For detecting light intensity LDR (Light
dependent resistor) is used. Intensity of light is The notification send only once till the condition not
measured in LUX and therefore for demonstration change so the owner or operator having not getting
100 LUX light is used as defined or threshold level. frequent SMS. Therefore, lower SMS pack required.

Soil Moisture

Plant Monitoring With SMS Alert: Page 3


Step 3: Circuit Diagram

These all parts are easily available at any online shopping site

or with well-known electronics spare parts dealer. All components datasheets are available on web. If any difficulty
feel free to contact on my mail.

Plant Monitoring With SMS Alert: Page 4


Step 4: Working Video and Code File

Final working video of project

https://youtu.be/atv0Kdt1ly0

Download
http://www.instructables.com/ORIG/F6B/ZYMH/JGCJ7RG5/F6BZYMHJGCJ7RG5.rar

Step 5: Code of Programe

#include test1; byte degree[8] = { 0b00011, 0b00011, 0b00000,


0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };
#include
void setup()
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
{ Serial.begin(9600); //Initialise serial to communicate
dht DHT; #define dht_dpin A1 #define LUX A0 with GSM Modem lcd.begin(16, 2); pinMode(soil,
#define soil A3 INPUT); lcd.createChar(1, degree); lcd.setCursor(0,
0); lcd.print("Plant Health"); lcd.setCursor(0, 1);
float volt, lux, value; int output_value ; int lcd.print("Monitering"); delay(1000); lcd.clear();
temperature, humidity; int lightflag = 0; int humflag = lcd.setCursor(0, 0); lcd.print("AGRI PROJECT");
0; int soilflag = 0; int tempflag = 0; int check; int test, lcd.setCursor(0, 1); lcd.print("By S K CHHAYA");

Plant Monitoring With SMS Alert: Page 5


delay(1000); lcd.clear(); } void loop() { output_value = lcd.write(1); lcd.print("C"); delay(1000); lcd.clear();
analogRead(soil); output_value = map(output_value, lcd.setCursor(0, 0); lcd.print("Sending SMS");
550, 0, 0, 100); value = analogRead(LUX); volt = delay(1000); lcd.clear(); tempflag = 0; check = 0; test
(value / 1023.0) * 5; lux = ((2500 / volt) - 500) / 3.3; = 0; delay(10); } } void SendSMS2() { if (humflag ==
delay(10000); //Give enough time for GSM to register 0) { Serial.println("AT+CMGF=1"); delay(500);
on Network DHT.read11(dht_dpin); lcd.clear(); Serial.println("AT+CMGS=\"+919979897404\"\r");
lcd.setCursor(0, 0); lcd.print("Temp"); lcd.setCursor(0, delay(500); Serial.print("Humidity High");
1); lcd.print(temperature = DHT.temperature); // Temp Serial.print(humidity); Serial.println(" %");
data on LCD lcd.write(1); lcd.print(" C"); delay(1000); Serial.println((char)26); lcd.setCursor(0, 0);
lcd.clear(); lcd.setCursor(0, 0); lcd.print("Humidity"); lcd.print("Humidity High"); delay(1000);
lcd.setCursor(0, 1); lcd.print(humidity = lcd.setCursor(0, 1); lcd.print("Humidity ");
DHT.humidity); // Humidity data on LCD lcd.print(" lcd.print(humidity); lcd.print(" %"); delay(1000);
%"); delay(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Sending
lcd.print("Light"); lcd.setCursor(0, 1); lcd.print(lux); // SMS"); delay(1000); lcd.clear(); humflag = 1; check =
Light data on LCD lcd.print(" LUM"); delay(1000); 0; test = 0; delay(10); } }
lcd.clear(); lcd.setCursor(0, 0); lcd.print("Moisture");
lcd.setCursor(0, 1); lcd.print(output_value); // Soil void SendSMS3() { if (humflag == 1) {
data on LCD lcd.print(" %"); delay(1000); lcd.clear(); Serial.println("AT+CMGF=1"); delay(500);
Serial.println("AT+CMGS=\"+919979897404\"\r");
if (temperature < 40) { SendSMS1(); // SMS for Temp delay(500); Serial.print("Low Humidity,"); Serial.print("
low } else if (temperature > 40) { SendSMS(); // SMS Humidity "); Serial.print(humidity); Serial.println(" %");
for Temp high } if (humidity < 40) { SendSMS3(); // Serial.println((char)26); lcd.setCursor(0, 0);
SMS for Humidity low } else if (humidity > 40) { lcd.print("Low Humidity"); delay(1000); lcd.clear();
SendSMS2(); // SMS for Humidity high } if (lux < 100) lcd.setCursor(0, 0); lcd.print("Humidity");
{ SendSMS5(); // SMS for Light low } else if (lux > lcd.setCursor(0, 1); lcd.print(humidity); lcd.print(" %");
100) { SendSMS4(); // SMS for Light high } if delay(1000); lcd.clear(); lcd.setCursor(0, 0);
(output_value == 950) { SendSMS7(); // SMS for Dry lcd.print("Sending SMS"); delay(1000); lcd.clear();
Soil } else if (output_value != 950) { SendSMS6(); // humflag = 0; check = 0; test = 0; delay(10); } } void
SMS for Wet Soil } } void SendSMS() { if (tempflag == SendSMS4() { if (lightflag == 0) {
0) { Serial.println("AT+CMGF=1"); delay(500); Serial.println("AT+CMGF=1"); //To send SMS in Text
Serial.println("AT+CMGS=\"+919979897404\"\r"); Mode delay(500);
delay(500); Serial.print("Temp High,"); Serial.print(" Serial.println("AT+CMGS=\"+919979897404\"\r");
Temp "); Serial.print(temperature); Serial.println(" //Change to destination phone number delay(500);
degree C"); Serial.println((char)26); lcd.setCursor(0, Serial.print("Good LIGHT,"); Serial.print(" Intensity ");
0); lcd.print("Temp High "); delay(1000); lcd.clear(); Serial.print(lux); Serial.println(" LUX");
lcd.setCursor(0, 0); lcd.print("Temperature"); Serial.println((char)26); //the stopping character
lcd.setCursor(0, 1); lcd.print(temperature); Ctrl+Z lcd.setCursor(0, 0); lcd.print("Good light ");
lcd.write(1); lcd.print("C"); delay(1000); lcd.clear(); delay(1000); lcd.clear(); lcd.setCursor(0, 0);
lcd.setCursor(0, 0); lcd.print("Sending SMS"); lcd.print("Intensity"); lcd.setCursor(0, 1); lcd.print(lux);
delay(1000); lcd.clear(); tempflag = 1; check = 0; test lcd.print(" LUX"); delay(1000); lcd.clear();
= 0; delay(10); } } void SendSMS1() { if (tempflag == lcd.setCursor(0, 0); lcd.print("Sending SMS");
1) { Serial.println("AT+CMGF=1"); delay(500); delay(1000); lcd.clear(); lightflag = 1; check = 0; test =
Serial.println("AT+CMGS=\"+919979897404\"\r"); 0; delay(10); } } void SendSMS5() { if (lightflag == 1) {
delay(500); Serial.print("Temp Low,"); Serial.print(" Serial.println("AT+CMGF=1"); delay(500);
Temp "); Serial.print(temperature); Serial.println(" Serial.println("AT+CMGS=\"+919979897404\"\r");
degree C"); Serial.println((char)26); lcd.setCursor(0, delay(500); Serial.print("LOW LIGHT,"); Serial.print("
0); lcd.print("Temp Low "); delay(1000); lcd.clear(); Intensity "); Serial.print(lux); Serial.println(" LUX");
lcd.setCursor(0, 0); lcd.print("Temperature"); Serial.println((char)26); lcd.setCursor(0, 0);
lcd.setCursor(0, 1); lcd.print(temperature); lcd.print("Low light "); delay(1000); lcd.clear();

Plant Monitoring With SMS Alert: Page 6


lcd.setCursor(0, 0); lcd.print("Intensity"); lcd.print("Sending SMS"); delay(1000); lcd.clear();
lcd.setCursor(0, 1); lcd.print(lux); lcd.print(" LUX"); soilflag = 1; check = 0; test = 0; delay(10); } } void
delay(1000); lcd.clear(); lcd.setCursor(0, 0); SendSMS7() { if (soilflag == 1) {
lcd.print("Sending SMS"); delay(1000); lcd.clear(); Serial.println("AT+CMGF=1"); delay(500);
lightflag = 0; check = 0; test = 0; delay(10); } } void Serial.println("AT+CMGS=\"+919979897404\"\r");
SendSMS6() { if (soilflag == 0) { delay(500); Serial.print("Wet Soil,"); Serial.print("
Serial.println("AT+CMGF=1"); delay(500); Moisture "); Serial.print(output_value); Serial.println("
Serial.println("AT+CMGS=\"+919979897404\"\r"); %"); Serial.println((char)26); lcd.clear();
delay(500); Serial.print("Dry Soil,"); Serial.print(" lcd.setCursor(0, 0); lcd.print("Wet Soil"); delay(1000);
Moisture "); Serial.print(output_value); Serial.println(" lcd.clear(); lcd.setCursor(0, 0); lcd.print("Moisture");
%"); Serial.println((char)26); lcd.setCursor(0, 0); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print("
lcd.print("Dry Soil"); delay(1000); lcd.clear(); %"); delay(1000); lcd.clear(); lcd.setCursor(0, 0);
lcd.setCursor(0, 0); lcd.print("Moisture"); lcd.print("Sending SMS"); delay(1000); lcd.clear();
lcd.setCursor(0, 1); lcd.print(output_value); lcd.print(" soilflag = 0; check = 0; test = 0; delay(10); } }
%"); delay(1000); lcd.clear(); lcd.setCursor(0, 0);

Good idea. With a system like this I might actually be able to keep a few plants alive.

Plant Monitoring With SMS Alert: Page 7

You might also like