Project Report
Project Report
CHAPTER 1
INTRODUCTION
Developing plants has turned out to be innovative test in light of the fact that the field and
strength of the plants are vital parameter now a day either for cash crops or food crops. One of
the significant issues in the present agriculture is the less learning of the agriculture parameters,
and less information about the developing innovations.
In the past agribusiness structure our people of old avoid the use of a specific development for
specific plant growth, they rather used regular marvel for all plants. The technological change in
the agriculture can develop plants under uncommon normal natural conditions, also this develops
specific plants under specific condition which in turn help to get more yield and less compost.
Presently the advancement of precision agriculture in green house, for plant development has
turned out to be prominent on account of less cost innovations for the agriculturists to re-arrive
yield. The greenhouse is a house like a structure covered with a transparent material, which can
keep up controlled temperature, required moistness level, light infiltration and so on, for the
healthy plant growth.
The precised agriculture framework going towards its improvement, in light of the innovative
progression in Wireless Sensor Networks (WSN) that is nothing but an IoT. The irregular
climate conditions for the plants in greenhouse will influence the development of the plants, and
less yield toward the end of the cultivation. So, that it is necessary to control and monitor the
greenhouse parameters, for example, CO2, soil moisture, temperature, light and so on.
This issue can be solved by adapting an IoT innovation in precision agriculture, which
incorporates the précised application for particular greenhouse parameters, for instance
controlled temperature range, water flow control, light radiation and so on for the good plant
growth.
1.1 PROBLEM DEFINITION
Greenhouses in India are being deployed in the high-altitude regions where the subzero
temperature up to -40° C makes any kind of plantation almost impossible so we are developing
this project. Complexity involved in monitoring climatic parameters like humidity, soil moisture,
temperature, etc. which directly or indirectly govern the plant growth. Investment in the
automation process are high, as today’s greenhouse control systems are designed for only one
parameter monitoring to control more than one parameter simultaneously there will be a need to
buy more than one system. High maintenance and need for skilled technical labor. The modern
proposed systems use the mobile technology as the communication schemes and wireless data
acquisition systems, providing global access to the information about one’s farms. But it suffers
from various limitations like design complexity, inconvenient repairing and high price. Also the
reliability of the system is relatively low, and when there are malfunctions in local devices, all
local and tale data will be lost and hence the whole system collapses. Moreover farmers in India
do not work under such sophisticated environment and find no necessity of such an advanced
system, and cannot afford the same. Keeping these issues in view, an IOT based monitoring and
control system is designed to find implementation in the near future that will help Indian farmers.
1.2 PROJECT OVERVIEW
The precision agriculture is a framework which incorporates detecting, measuring, and
responding. It is a technique for recognizing greenhouse climate, at that point identified data is
sent to the cloud and afterward required action taken by the agriculturist in view of the received
data. This can be expert by the present advancement called Internet of Things (IoT), it is the
innovation which is interface with everything or every contraption by techniques for web.
The precised agriculture framework going towards its improvement, in light of the innovative
progression in Wireless Sensor Networks (WSN) that is nothing but an IoT. The irregular
climate conditions for the plants in greenhouse will influence the development of the plants, and
less yield toward the end of the cultivation. So, that it is necessary to control and monitor the
greenhouse parameters, for example, CO2, soil moisture, temperature, light and so on.
This issue can be solved by adapting an IoT innovation in precision agriculture, which
incorporates the precised application for particular greenhouse parameters, for instance
controlled temperature range, water flow control, light radiation and so on for the good plant
growth.
CHAPTER 2
LITERATURE SURVEY
CHAPTER 3
SYSTEM ANALYSIS AND DESIGN
3. Security Requirements
• Availability
• Flexibility
• Reliability
• Maintainability
• Correctness
expansion boards or Breadboards (shields) and other circuits. The boards feature serial
communications interfaces, including Universal Serial Bus (USB) on some models, which are
also used for loading programs from personal computers. The microcontrollers are typically
programmed using a dialect of features from the programming languages C and C++. In addition
to using traditional compiler tool chains, the Arduino project provides an integrated development
environment (IDE) based on the Processing language project.
GSM MODULE
moist soil. Excessive levels of soil moisture, however, can lead to anaerobic conditions that can
promote the growth of plant and soil pathogens.
• LIGHT SENSOR (LDR)
digital signal on the data pin (no analog input pins needed). Its fairly simple to use, but
requires careful timing to grab data. The only real downside of this sensor is you can only get
new data from it once every 2 seconds, so when using our library, sensor readings can be up
to 2 seconds old.
• SMOKE SENSOR(CO)
Fig.3g. CO Sensor
A carbon monoxide detector for the Arduino-based DIY security system. The carbon monoxide
detector is a semiconductor gas sensor tuned to detect carbon monoxide. It is in the same family
of devices as the smoke detector sensor, measuring the change in surface conductivity of tin
dioxide in the presence of carbon monoxide. This sensor has a high sensitivity and fast response
time. The sensor's output is an analog resistance.
LCD DISPLAY
devices and circuits. These modules are preferred over seven segments and other multi
segment LEDs.
The reasons being: LCDs are economical; easily programmable; have no limitation of displaying
special & even custom characters (unlike in seven segments), animations and so on.
A 16x2 LCD means it can display 16 characters per line and there are 2 such lines. In this LCD
each character is displayed in 5x7 pixel matrix. This LCD has two registers, namely, Command
and Data.
The command register stores the command instructions given to the LCD. A command is an
instruction given to LCD to do a predefined task like initializing it, clearing its screen, setting the
cursor position, controlling display etc. The data register stores the data to be displayed on the
LCD. The data is the ASCII value of the character to be displayed on the LCD. Click to learn
more about internal structure of a LCD.
RELAY
Fig.3i. Relay
The relay logic circuit commonly used to control output devices with respect to input signals. It
is a low powered electrical network with required input and output. The input to the relay logic
circuit may be control relay or a switch. Here, in our proposed scheme it is used to control DC
motor direction in clockwise
se and anticlockwise direction.
TRANSFORMER
Fig.3j. Transformer
One of the main reasons that we use alternating AC voltages and currents in our homes and
workplace’s is that AC supplies can be easily generated at a convenient voltage, transformed
(hence the name transformer) into much higher voltages and then distributed. The reason for
transforming the voltage to a much higher level is that higher distribution voltages implies lower
currents for the same power and therefore lower I2R losses along the networked grid of cables.
These higher AC transmission voltages and currents can then be reduced to a much lower, safer
and usable voltage level where it can be used to supply electrical equipment in our homes and
workplaces, and all this is possible thanks to the basic Voltage Transformer.
Temperature Smoke
Sensor Sensor
Soil Light
Moisture Sensor
Sensor
Sensors
Actuators Control
Sense
Green Uses
House Arduino
Send Uploaded
LCD Display
Information
SMS Thingspeak
Fig.3k. DFD
• Test Steps
1. Usability:
• We need to make sure the usability of each of the device used here.
• The equipment should be smart enough to push not only the notifications but also the
error messages, warnings etc.
• The system should have an option to log all the events to provide clarity to the end users.
If it is not capable of doing that, the system should push those as well to a database to
store it.
• The notifications should be shown and handling of the display should be done properly in
the devices [computers/mobile devices].
• Usability in terms of displaying data, processing data, pushing job tasks from the devices
should be tested thoroughly.
2. Connectivity:
• The system has to be available all the time and should have seamless connectivity with
the stakeholders.
• As per connectivity, two things are very important to test;
• Connectivity, transfer of data, receiving job tasks from the devices should be seamless
when the connection is UP and running.
• The other condition is the connection down scenario. Doesn’t matter how robust is the
system and the network, there are chances that the system will go offline.
3. Performance:
• Need to make sure the system performs the same even though the added data is
propagated.
• We should also test the monitoring utility to display the system usage, power usage, etc.
4. Security:
• It is important to validate user via authentication, have data privacy controls as parts of
security testing
LiquidCrystal lcd(2, 3, 4, 5, 6, 7 );
#include <SoftwareSerial.h>
boolean DEBUG=true;
#define DHTPIN 10 //define as DHTPIN the Pin 3 used to connect the Sensor
float t=0;
float h=0;
int r1 = 8;
int r2 = 9;
int r3 = 11;
int count=0;
int smoke=0;
int soil=0;
int thur=0;
int ldr=0;
int web=0;
int a1 =0;
int b1 =0;
int c1 =0;
int d1 =0;
int e1 =0;
int f1 =0;
int sol=0;
int smk=0;
int light=0;
void setup()
dht.begin();
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("GREEN HOUSE");
Serial.begin(9600);
pinMode(r1, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(r3, OUTPUT);
pinMode(bzr, OUTPUT);
digitalWrite(r1,LOW);
digitalWrite(r2, LOW);
digitalWrite(r3, LOW);
lcd.print("CONNECTING WIFI");
espSerial.begin(9600);
showResponse(3000);
showResponse(8000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WI-FI CONNECTED");
delay(3000);
lcd.clear();
long t=millis();
char c;
while (t+waitTime>millis())
if (espSerial.available())
c=espSerial.read();
if (DEBUG) Serial.print(c);
cmd += "\",80";
espSerial.println(cmd);
if (DEBUG) Serial.println(cmd);
if(espSerial.find("Error"))
return false;
getStr += apiKey;
getStr +="&field1=";
getStr += String(value1);
getStr +="&field2=";
getStr += String(value2);
getStr +="&field3=";
getStr += String(value3);
getStr +="&field4=";
getStr += String(value4);
getStr += "\r\n\r\n";
cmd = "AT+CIPSEND=";
cmd += String(getStr.length());
espSerial.println(cmd);
if (DEBUG) Serial.println(cmd);
delay(100);
if(espSerial.find(">")){
espSerial.print(getStr);
if (DEBUG) Serial.print(getStr);
else
espSerial.println("AT+CIPCLOSE");
// alert user
if (DEBUG) Serial.println("AT+CIPCLOSE");
return false;
return true;
void data()
if (DEBUG) Serial.println("S1="+String(t)+"");
if (DEBUG) Serial.println("S2="+String(sol)+"");
if (DEBUG) Serial.println("S3="+String(smk)+"");
if (DEBUG) Serial.println("S4="+String(light)+"");
delay(10000);
void loop()
smoke = analogRead(smok);
soil = analogRead(soil2);
thur = analogRead(thur2);
ldr = analogRead(ldr2);
// Serial.println(smoke);
if(t>=40)
digitalWrite(r1, HIGH);
if(a1==0)
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
Serial.println("TEMPRATURE IS HIGH");
delay(200);
Serial.write(0x1A);
delay(200);
a1=1;
else
a1=0;
digitalWrite(r1, LOW);
if(soil>=500)
sol=1000;
digitalWrite(r2, HIGH);
delay(1000);
lcd.clear();
if( b1 == 0 )
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
Serial.println("SOIL DRY");
delay(200);
Serial.write(0x1A);
delay(200);
b1=1;
else
b1=0;
sol=0;
digitalWrite(r2, LOW);
delay(1000);
lcd.clear();
if(smoke>=150)
smk=1000;
digitalWrite(bzr, HIGH);
if( c1 == 0 )
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
Serial.println("SMOKE DETECTED");
delay(200);
Serial.write(0x1A);
delay(200);
c1=1;
else
c1=0;
smk=0;
digitalWrite(bzr, LOW);
light=0;
f1=0;
digitalWrite(r3, HIGH);
delay(1000);
lcd.clear();
if( d1 == 0 )
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
delay(200);
Serial.write(0x1A);
delay(200);
d1=1;
else
d1=0;
delay(1000);
lcd.clear();
if( e1 == 0)
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
delay(200);
Serial.write(0x1A);
delay(200);
e1=1;
else
e1=0;
light=1000;
digitalWrite(r3, LOW);
delay(1000);
lcd.clear();
if( f1 == 0 )
Serial.print("AT\r");
delay(200);
Serial.print("AT+CMGF=1\r");
delay(200);
Serial.print("AT+CNMI=2,2,0,0,0\r");
delay(200);
Serial.print("AT+CMGS=");
delay(200);
Serial.print('"');
delay(200);
Serial.print("9860080676");
delay(200);
Serial.print('"');
delay(200);
Serial.write(0x0D);
delay(200);
delay(200);
Serial.write(0x1A);
delay(200);
f1=1;
if(web>20)
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Uploading.....");
data();
web=0;
lcd.clear();
web++;
Fig.3m.Types of testing
UNIT TEST:
Unit testing is a software development process in which the smallest testable parts of an
application, called units, are individually and independently scrutinized for proper operation.
Unit testing can be done manually but is often automatically
Working of Sensors
Sensors should sens the greenhouse environment and send the data to Arduino
Test Steps
1. Connect all the sensors to Arduino board.
2. Embedded programmed with same pin we have used to connect to the Arduino board.
3. Provide power supply to the Arduino board.
4. Use serial monitor to see the output.
Expected Result: Everyone of the sensor should sens the information and get the greenhouse
condition and give it to the Arduino board.
Actual Result: Everyone of the sensor should sens the information and get the greenhouse
condition and give it to the Arduino board.
INTEGRATION TESTING:
Integration testing is a level of software testing where individual units are combined and tested
as a group. The purpose of this level of testing is to expose faults in the interaction between
integrated units.
Integration of Sensors
Sensors should sens the greenhouse environment and send the data to thinkspeak.
Test Steps
1. Connect all the sensors to Arduino board.
2. Remove the connection for Tx and Rx to the Arduino board.
3. Embedded programmed with same pin we have used to connect to the Arduino board.
4. Connect the Tx and Rx again to the Arduino board.
5. Provide power supply to Arduino board.
6. Login to the thinkspeak to check the working.
Expected Result: Data sensed by the sensor is getting update on the thinkspeak server.
Actual Result: Data sensed by the sensor should be update on the thinkspeak server.
SYSTEM TESTING
System testing is a level of software testing where a complete and integrated software is tested.
The purpose of this test is to evaluate the system’s compliance with the specified requirements.
ACCEPTANCE TESTING
Acceptance testing is a level of software testing where a system is tested for acceptability. The
purpose of this test is to evaluate the system’s compliance with the business requirements and
assess whether it is acceptable for delivery.
CHAPTER 4
RESULTS
4.1 Snapshots:
CONCLUSION
IoT is widely used in connecting devices and used to gather information. The system is designed
to remotely monitor the greenhouse parameters such as CO2, soil moisture, temperature, and
light, this information can be collected by the farmers with the help of cloud account and internet
connection. There is also controlling action taken automatically that is greenhouse windows/
doors roll on/off based on the soil moisture levels. Thus, the system will help the farmers to
avoid physical visit to the field, and increase the yield with the maintenance of précised
parameters such as CO2, soil moisture, temperature, and light in the greenhouse with the help of
IoT. The project is carried out with the help of IoT kit and internet connection.
The results are analyzed for the greenhouse parameters such as CO2, soil moisture, temperature,
and light for bell pepper plant with the help of graphical representation based on the practical
values taken by the IoT kit. The comparative result shows the effectiveness of the proposed
work.
REFERENCES
BIBLIOGRAPHY
Name of project guide:
1. Name: Prof. A. A. Daptardar
Email id: [email protected]
Contact No:+919620851002