Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 44

IoT based Intelligent Plant Watering System

By

Umber Sultana
(17-Arid-1589)

Muhammad Tariq Jamal

(17-Arid-1540)

Nadir Khan

(17-ARID-1556)

Supervisor
Dr. Muhammad Aqib

UNIVERSITY INSTITUTE OF INFORMATION TECHNOLOGY,


PMAS-ARID AGRICULTURE UNIVERSITY,
RAWALPINDI
2021
Bachelor of Science in Computer Science (2017-2021)

As a candidate we confirm that the work submitted is our own and appropriate
credit has been given where reference has been made to the work of others.

DECLARATION

We hereby declare that this software, neither whole nor as a part has been copied out from
any source. It is further declared that we have developed this software documentation and
accompanied report entirely on the basis of our personal efforts. If any part of this project is
proved to be copied out from any source or found to be reproduction of some other. We will
stand by the consequences. No Portion of the work presented has been submitted of any
application for any other degree or qualification of this or any other university or institute of
learning.

Umber Sultana Muhammad Tariq Jamal Nadir Khan

--------------------------- --------------------------- ---------------------------

II
CERTIFICATE OF APPROVAL

It is to certify that the final year project of BS (CS) “IoT based Intelligent Plant Watering
System” was developed by “Umber Sultana, 17-ARID-1589”, “Muhammad Tariq
Jamal, 17-ARID-1540” and “Nadir Khan, 17-ARID-1556” under the supervision of
“Dr. Muhammad Aqib” and that in their opinion; it is fully adequate, in scope and quality
for the degree of Bachelor of Science in Computer Science.

---------------------------------------
(Dr. Muhammad Aqib)
Supervisor

---------------------------------------
(Mr. Zeeshan Javed)
External Examiner

---------------------------------------
Administrator UIIT

III
Executive Summary
In daily operation related to watering the plants are the most important cultural practice and
the most labor-intensive task. No matter whichever weather it is, either too hot and cold or
too dry and wet it is very crucial to control the amount of water reaches to the plants. So, it
will be effective to use an idea of IoT based Intelligent Plant Watering System which
provide water to plants when they need it. An important aspect of this project is that: “when
and how much to water”. To reduce manual activities for the human to watering plant, an
idea of plant watering system is adopted. The method employed to monitor the soil moisture
level continuously and to decide whether watering is needed or not, and how much water is
needed in plant’s soil.

To prevent all these problems from prevailing, the IoT based Intelligent Plant Watering
System is developed. It is a surveillance system, which provides solution to many of these
problems. It water plant by using Arduino Uno after checking the moisture, temperature and
humidity level. Its application “Blynk” notifies its users about the need of plants if their
level of humidity or moisture is low.

IoT based Intelligent Plant Watering System works on sensing moisture level, humidity
level and temperature level. When the moisture level is low the application will work and
send user about the need of water to a particular plant.

It is an IoT based Intelligent Plant Watering System consisting of Windows operating


system and also supportive for Macintosh Operating System with running mobile
application, also needs a water pump, Node Mcu, Relay, moisture, DHT11 sensor and LED
light and finally water the plant according to its need.

IV
Acknowledgement

All praise is to Almighty Allah who bestowed upon us a minute portion of his boundless
knowledge by virtue of which we were able to accomplish this challenging task.

We are greatly indebted to our project supervisor “Dr. Muhammad Aqib” for personal
supervision, advice, valuable guidance and completion of this project. We are deeply
indebted to him for encouragement and continual help during this work.

And we are also thankful to our parents and family who have been a constant source of
encouragement for us and brought us the values of honesty & hard work

Umber Sultana Muhammad Tariq Jamal Nadir Khan

--------------------------- --------------------------- ---------------------------

V
Abbreviations

IoT Internet of things


MCU Micro Controller Unit

VI
Table of Contents
Chapter 1: Introduction.......................................................................................................1
1.1. Brief............................................................................................................................1
1.1.1. Project work..........................................................................................................1
1.1.2. Outcome................................................................................................................1
1.1.3. Tools......................................................................................................................1
1.1.4. Technologies.........................................................................................................2
1.2. Project Background………………………………………………………………….2
1.3. Literature Review.....................................................................................................2
1.3.1. Automated Expedient Watering System For Small Plants..................................3
1.3.2. AWP Application Based on Android and Web Using REST Protocol................3
1.4 Methodology and Software Lifecycle for This Project.........................................3
1.5 Rationale behind Selected Methodology...................................................................3
Chapter 2: Problem Definition...........................................................................................5
2.1. Problem Statement....................................................................................................5
2.2. Deliverables and Development Requirements..........................................................5
2.3. Current System (if applicable to your project)..........................................................5
Chapter 3: Requirement Analysis.....................................................................................7
3.1. Use Cases..................................................................................................................7
3.1.1. Table Register.....................................................................................................7
3.1.2. Use Cases for Login............................................................................................9
3.2. Functional Requirements...........................................................................................9
3.3. Non-Functional Requirements................................................................................10
3.3.1. Usability...........................................................................................................10
3.3.2. Communication................................................................................................10
3.3.3. Accuracy...........................................................................................................10
3.3.4. Performance......................................................................................................10
3.3.5. Cost...................................................................................................................11
Chapter 4: Design and Architecture................................................................................12
4.1. System Architecture................................................................................................12

VII
4.2.1 Activity Diagram............................................................................................12
4.2.2 State Machine .................................................................................................13
4.2.3. Sequence Diagram...........................................................................................14
4.2.4. Class Diagram..................................................................................................15
4.2.5. Circuit Diagram...............................................................................................16
4.2.6. Deployment Diagram.........................................................................................16
Chapter 5: Implementation...............................................................................................18
5.1. Network and Protocol Choice.................................................................................18
5.2. Choice of Object Middleware.................................................................................18
5.3. User Interface..........................................................................................................18
Chapter 6: Testing and Evaluation..................................................................................22
6.1. Verification..............................................................................................................22
6.2. Validation................................................................................................................22
6.3. Usability Testing.....................................................................................................23
6.4. Module / Unit Testing.............................................................................................23
6.5. Integration Testing..................................................................................................26
6.6. System Testing........................................................................................................26
6.7. Acceptance Testing.................................................................................................26
6.8. Stress Testing..........................................................................................................27
6.9. Hardware Configuration for Testing.......................................................................27
6.10. Evaluation................................................................................................................28
6.6.1. Process evaluation..........................................................................................29
6.6.2. Impact evaluation...........................................................................................29
6.7. Deployment.............................................................................................................30
6.8. Maintenance............................................................................................................30
Chapter 7: Conclusion and Future Work.......................................................................31
7.1. Conclusion...............................................................................................................31
7.2. Future Work............................................................................................................31
References............................................................................................................................32

VIII
List of Figures
Figure 2.1: Watering plant using Arduino.......................................................................................6
Figure 3.1: Use Case........................................................................................................................7
Figure 4.1: System Architecture....................................................................................................12
Figure 4.2: Activity Diagram.........................................................................................................13
Figure 4.3: State Diagram..............................................................................................................14
Figure 4.4: Sequence Diagram.......................................................................................................15
Figure 4.5: Class Diagram.............................................................................................................15
Figure 4.6: Circuit Diagram...........................................................................................................16
Figure 4.7: Deployment Diagram..................................................................................................17
Figure 5.1: Splash Screen..............................................................................................................18
Figure 5.2: Login Screen................................................................................................................19
Figure 5.3: Main Page....................................................................................................................20
Figure 5.4: Notify User..................................................................................................................21
Figure 5.5: Hardware interface......................................................................................................21

IX
List of Tables
Table 3.1.Register:...........................................................................................................................7
Table 3.2.Login................................................................................................................................9
Table.6.1.Functionalities testing of the watering device...............................................................24
Table 6.2.Testing the soil moisture with initial soil moisture 0%.................................................24
Table 6.3.Testing the soil moisture with reference soil moisture 30% – 35%..............................25
Table.6.4.Blynk apps functionalities.............................................................................................25

X
Chapter 1: Introduction

1.1. Brief

1.1.1. Project work:

Arduino based Automatic Plant Watering System with a built in pump and a water tank.
This system is useful especially for user’s who have a day job and travel a lot as this system
can water plants only when necessary without any human intervention. The IOT Based
Intelligent Automatic Plant Watering System, a moisture sensor is attached to the soil of the
plant and when the reading of the sensor is below the pre-set value, the pump will be
activated. On the other hand, when the reading of the sensor is above the pre-set value, the
pump will be deactivated. The pump will pump water from a built in water tank. Node Mcu
connects to the internet and allows the integrating of data from the Arduino board using the
Bylnk platform. The Bylnk platform is a platform which is compatible for any Internet of
Things (IoT) and can collect and store data from various sensors and microcontrollers. The
user will be updated about the status of the system via emails.

1.1.2. Outcome:

The Automated Plant Watering System with IOT is feasible and cost effective for
optimizing water resources for agricultural production. Using the Automated Plant Watering
system we can prove that the use of water can be reduced for different agricultural usage.
The Automated Plant Watering System provide only required amount of water to plants. An
Automated Plant Watering System was developed to minimize water use for garden plants.
The system has a distributed wireless network of soil moisture and Temperature sensor
placed in the root zone of the plants and water level sensor is placed in tank for monitoring
the water level in tank. An algorithm was developed with threshold value of temperature,
soil moisture and water level that was programmed into a micro-controller based on that
motor is operated with the help of Arduino node MCU.
1.1.3. Tools
 Arduino Uno

 Moisture and Temperature Sensor

 Node Mcu

XI
 Water Pump

 Jumpers

1.1.4. Technologies

 Arduino IDE

 Blynk

1.2. Project Background


In daily operation related to watering the plants are the most important cultural practice and
the most labor-intensive task. No matter whichever weather it is, either too hot and cold or
too dry and wet it is very crucial to control the amount of water reaches to the plants. So, it
will be effective to use an idea of IOT based Intelligent Plant Watering System which
provide water to plants when they need it. An important aspect of this project is that: “when
and how much to water”. To reduce manual activities for the human to watering plant, an
idea of plant watering system is adopted. An abundant amount of water quantity is vital for a
plant to grow. People are unable to water the plants when they go on vacations or regularly
fail to remember to water plants, which results into damaging the plants. Giving water to
plants is one of the most significant practice and overall a labor demanding work. Automatic
Plant Watering System reduces the responsibility of watering the plants when there is a
requirement. The two major part of watering method is to know when and how much to
water the plants. In this project, a system is implemented such that it will sense the soil
moisture content of the plant and turn the motor ON to water the plant when needed. This
system makes the plant more self-reliant by watering itself.

1.3. Literature Review


The era of manual system is over. Now user want to have a better planting system and want
the best and quality based modern automated plants watering system. Current manual
system is not able to provide an exact quantity of water that needs plants every day. No
matter how perfect an experience of any manual system provides, the user did not forget to
water their plants. The new automated plant watering system must be introduced as an
important step in enhancement of plant watering in irrigation system. In the age of advanced
technology and electronics, the life style of the human should smart, simpler, easier and
much more convenient. So, therefore; there is a need for many automated systems in
human’s daily life routine to reduce their daily activities and jobs. Here an idea of one such
system named as IOT based Intelligent Plant Watering System is very useful. As many

XII
people are facing a lot of problem watering the plants in the garden, especially when they
away from the home and they did not too much knowledge about the plants. This model uses
sensor technologies with microcontroller in order to make a smart switching device to help
millions of people.

1.3.1. Automated Expedient Watering System For Small Plants:

Proper watering is exigent for the plants and trees which are grown in containers. Many
people surmounted to take good care of expensive plants or trees like Bonsai because of
improper timing or lack of watering. An automated system which is capable of perceiving
the proper situation of watering plants can be convenient

1.3.2. AWP Application Based on Android and Web Using REST Protocol:

Motivated by the problem and previous researches, APA system has been designed.
Running on the web and mobile with cloud integration, the system functions to monitor the
watering of plants. Adopting IOT (Internet of Things) concept, the APA’s devices can
understand commands that are transmitted via APA’s gateway by utilizing REST protocol.

1.3.3. Automatic Plant Watering System:

The integration of offline automatic plant watering system and the online IOT system. This
is system is the beginner level of IOT system, which data are uploaded online to
FAVORIOT platform and displayed in graphs form and send a notification to the user for
any unusual condition or emergency case happened.

1.4 Methodology and Software Lifecycle for This Project


An incremental Process Model will be used for the development of IOT based Intelligent
Plant Watering System. We have chosen this incremental model because requirements are
divided into multiple standalone modules of the software development cycle, and each
module goes through different phases, and each phase will have a specific duration. This
model allows us to add more functions and modules to the project later if needed. Partial
systems are built to produce the final system but first tackled the highest priority
requirements. During this testing, faulty elements of the hardware can be quickly identified
because few changes are made within any single iteration.

XIII
1.5 Rationale behind Selected Methodology
IoT intelligent based Plant Watering System project has a lengthy development schedule on
that basis incremental model will be the best methodology according to its nature. The IOT
Intelligent Based Plant Watering System project will go through different stages or
sometimes iteration will need, this model provides us iteration base phases like
requirements, design, coding, and testing. The incremental methodology will allow us to
utilize our IoT intelligent based Plant Watering System project partially and avoids long-
term development time. Using this strategy allows us to add more features and modules to
the project later if needed. Each subsequent release of the system adds function to the
previous release until all designed functionality has been implemented. Following are some
benefits that Incremental Process Model will offer
Generates working software quickly and early during the software life cycle.
 More flexible and less costly to change scope and requirements.

 Each iteration can easily manage milestones.

 Such a model is used in web applications and product-based companies. Once the
requirement is developed, requirement for that increment are frozen. It is flexible and
less expensive to change requirements and scope.

XIV
Chapter 2: Problem Definition

2.1. Problem Statement


In busy schedule of day to day life, many time people forget to water their plants and due to
this plant suffer many disorders and ultimately died. In addition, the world's biggest problem
in modem society is the shortage of water resources; agriculture is a demanding job to
consume large amounts of water. It is very essential to utilize the water resources in proper
way. During day to day many people often forget to water their plants and thus it becomes
challenging for them to keep their plants healthy and alive. Also it is a challenge for farmers
to maintain their fields and manage watering of plants during shortage of water and less
knowledge about the plants type which plants get how much water daily. In previous
system, the major drawback is “if water level is low in the tank the motor get damage, due to
excessive of heat and the other problem is if the users are going out-door they never check
the condition of plants.

2.2. Deliverables and Development Requirements


The requirement of this project is to provide users an interactive way to visualize the plant
watering system in real time using the application. They can be able to check the condition
of the plants, level of moisture and temperature using Android Application. This project can
also provide the functionality to get the notification via email when water is supply to the
plants. The user can be able to turn on and off the motor.
The project deliverable page are:
 Login Screen
 Main Screen
 Check Moisture level
 Check Temperature or Humidity
 On/OFF Motor Button
 On/Off LED Light
 Set Timer
 Check Notification

XV
2.3. Current System (if applicable to your project)
There are several appliances that are working on Arduino Uno in which a Robotic Arm, one
of the most famous 3D Polar Teddy that use Arduino Uno technology for entertainment
purposes. There are several Arduino platforms that are using their system but they are not
providing real time experiences to its users. For example, Most of automated plant watering
system does not allow users to check the condition of the plants and level of moisture or
temperature at the same time; user did not get the notification when the plant get water and
user are able to switch ON and OFF Motor.

Figure 2.1: Watering plant using Arduino

XVI
Chapter 3: Requirement Analysis

3.1. Use Cases


Use case diagram is one of the UML diagrams which show the behavior of the system. In
use case diagram each use case represents an event to be performed.

Figure 3.1: Use Case

3.1.1. Register

Table 3.1: Register

Use Case ID: Uc-1


Use Case Name: Register
Actors: User
Description: User of the Application must have to Register himself to use the

XVII
application and then will move to login to perform operations
Trigger: User can use Application by Registering himself
Preconditions: 1. User must have knowledge that how to register on the application
2. Customer have Application installed in his mobile phone

Post conditions: 1. Customer can Login to application to see the present state of
Plant moisture and can access the watering system by sitting
anywhere through Internet Connection.
Normal Flow: 1. Application First Establish Wifi Connection
2. User Register Himself
3. User Login to Properly use the application
4. Node UNO send notification to user about the Present condition
of Plant and water tank.
5. Then On the basis of Condition user will decide whether He/she
has to Switch on the system or not.
6. If Plant need water the User will Touch the button in application
to water Plant.
7. Through wifi the instruction will be send to Node UNO.
8. Node UNO will give order to Arduino to Switch on the Motor
pump.
9. Arduino will give order to Relay.
10. Relay will Turn the motor on
11. Sensor will continuously sense the moisture level
12. If the moisture level reach the desire then Sensor will give
instruction back to Arduino.
13. Arduino will send notification back to Application through
Node UNO.
Alternative In Step 3 Node UNO send notification about present condition of
Flows: Plant and water tank.
[Alternative 1. If the Water tank have not sufficient water in it then user have
Flow 1 – Not in to manually fill up the water tank for watering the plant.
Network] 2. Use case resume on stage 4.
Exceptions: In step 2 of the normal flow, if the user enter invalid Password

XVIII
1. Application will notify user that Id or Password is incorrect
2. Use Case resumes on step 2 of normal flow]
Assumptions: The User has knowledge about watering Plant system
Notes and 1. What is the maximum size of the PIN that user can have
Issues: 2. What will be the cost of Hardware in this Project
3. What if there is no Electricity in the house to Power on the motor

1.3.4. Login

Table 3.2: Login

Use Case ID: Uc-2


Use Case Name: Login
Actors: User
Description: User of the Application must have to Login himself to use the
application and then will move to main screen to perform operations
Trigger: User can use Application by login himself
Preconditions: 3. User must have knowledge that how to login on the application
4. Customer have Application installed in his mobile phone

Post conditions: 2. Customer can Login to application to see the present state of
Plant moisture and can access the watering system by sitting
anywhere through Internet Connection.
Normal Flow: 14. Application First Establish Wifi Connection
15. User Register Himself
16. User Login to Properly use the application
17. Node UNO send notification to user about the Present condition
of Plant and water tank.
18. Then On the basis of Condition user will decide whether He/she
has to Switch on the system or not.
19. If Plant need water the User will Touch the button in
application to water Plant.

XIX
20. Through wifi the instruction will be send to Node UNO.
21. Node UNO will give order to Arduino to Switch on the Motor
pump.
22. Arduino will give order to Relay .
23. Relay will Turn the motor on
24. Sensor will continuously sense the moisture level
25. If the moisture level reach the desire then Sensor will give
instruction back to Arduino.
26. Arduino will send notification back to Application through
Node UNO.

3.2. Functional Requirements


What the system should do:
 Arduino work with the moisture, temperature sensors, Node Mcu and Relay.
 The soil moisture sensor senses the moisture content present in the soil.
 If the soil is dry it sends a high signal to node Mcu which intern switches ON the
water pump via the relay.
 User get notification when plant get water and update the plant condition
 If the soil gets enough wet then the sensor sends a low signal to Node Mcu, hence
the water pump gets turned OFF automatically.
 This system makes the plant more self-reliant by watering itself.

3.3. Non-Functional Requirements

3.3.1. Usability:
Usability is a quality attribute used to assess how easy the interface is to use. Usability is the
ease of use. It tells how user-friendly the interface is. It includes memory-ability, learn-
ability, and satisfaction. Our hardware interface has all the above qualities. Any kind of user,
whether he/she is a novice user or technical user they can easily understand the interface.
The system will be designed in such a way that it will be easily understandable by the users.
It is Android app project so it can be accessed only if a user has an internet connection.

XX
3.3.2. Communication:
WIFI connected to system and real time clock to take all data from prototype to mobile
application.

3.3.3. Accuracy:
The reading of all data should be in details because it will be saved in SD card for analysis
and research

3.3.4. Performance:
The system must work at real time Operational: this system is work automatically and it is
connected to mobile application so user must download the application on their mobile to
control their system.

3.3.5. Cost:
The cost of this system must be not too expensive because we aim to decrease the worker
which mean decrease the amount of money in plant watering process and solve the main
problem (reduce the water consumption) at the same time.

XXI
Chapter 4: Design and Architecture

4.1. System Architecture


A system architecture is the conceptual model that defines the structure, behavior, and more
views of a system .A system architecture can consist of system components and sub-system
developed, that will work together to implement the overall system.

Figure 4.1: System Architecture

4.2.1 Activity Diagram


An activity diagram portrays the control flow from a start point to a finish point showing the
various decision paths that exist while the activity is being executed. Describe dynamic
aspects of the system. Activity diagram is essentially an advanced version of flow chart that
modeling the flow from one activity to another activity.

XXII
Figure 4.2: Activity Diagram

4.2.2 State Machine:

A state diagram is a type of diagram used in computer science and related fields to describe
the behavior of system. State diagram require that the system described is composed of a
finite number of states.

XXIII
Figure 4.3: State Diagram

4.2.3. Sequence Diagram:

A sequence diagram shows object interactions arranged in time sequence. It depicts the
objects involved in the scenario and the sequence of messages exchanged between the
objects needed to carry out the functionality of the scenario.

XXIV
Figure 4.4: Sequence Diagram

4.2.4. Class Diagram:

A class diagram in the unified modeling language (UML) is a type of static structure
diagram that describes the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among objects. Data modeling can
also be done using class diagram.

Figure 4.5: Class Diagram

XXV
4.2.5. Circuit Diagram:
A circuit diagram is a graphical representation of an electrical circuit .A pictorial circuit
diagram uses simple images of components.

Figure 4.6: Circuit Diagram

4.2.6. Deployment Diagram:

A deployment diagram in the unified modeling language models the physical deployment of
artifacts on nodes. To describe a web site, for example, a deployment diagram would show
what hardware components exist, what software components run on each node, and how the
different pieces are connected.

XXVI
Figure 4.7: Deployment Diagram

XXVII
Chapter 5: Implementation

5.1. Network and Protocol Choice


A network protocol is a set of established rules that dictate how to format, transmit and
receive data so that computer network devices can communicate.
So here in our project we are using Wi-Fi network protocol to communicate between
hardware (wireless system) and app.

5.2. Choice of Object Middleware


RMI vs. CORBA vs. DCOM etc.

5.3. User Interface

XXVIII
Figure 5.1: Splash Screen

Figure 5.2: Login Screen

XXIX
Figure 5.3: Main Page

XXX
Figure 5.4: Notify User

Figure 5.5: Hardware interface

XXXI
Chapter 6: Testing and Evaluation
Testing is one of an important phase in the development of the project. This phase works to
test the system or application whether it fully function or vice versa. It can also be stated as
the process of validating and verifying that a software program or application or product.
Meets the business and technical requirements that guided its design and development.

6.1. Verification
Verification is the process of checking that software achieves its goal without any bugs. It is
the process to ensure whether the product that is developed is right or not. It verifies whether
the developed product fulfills the requirements that we have, So here we are going to check
either Arduino works properly or not for which it is designed. Like when humidity level
goes down then sensor will respond either it needs water or not. On the other hand, when the
reading of the sensor is above the pre-set value, the pump will be deactivated. The pump
will pump water from a built in water tank. Node MCU connects to the internet and allows
the integrating of data from the Arduino board using the Bylnk platform. The Bylnk
platform is a platform which is compatible for any Internet of Things (IoT) and can collect
and store data from various sensors and microcontrollers. The user will be updated about the
status of the system via emails.

6.2. Validation
Validation is the process of checking whether the software product is up to the mark or in
other words product has high level requirements. It is the process of checking the validation
of product i.e. it checks what we are developing is the right product. it is validation of actual
and expected product.

The designed system is useful for the plant lovers. May be sometimes people feel fever or
something else so they have to go on field for irrigation purpose, to make sure that water
does not get overflow from field . It causes a huge time loss for them, and also may cause
health problem, as it may be a very sunny day or severe cold. May some of them die due to
dehydration or sun stroke? To overcome these accidents and make their life and work easier,
this model is proposed, i.e. IOT based Intelligent Plant Watering System.
The system works as, the soil moisture sensor senses the moisture content in soil and send
the data to microcontroller unit, if the moisture content is less than the limit we have fixed,
the microcontroller send command to relay to on the pump, and irrigates until the moisture
content is reached till the permissible limit. Once the limit is achieved the moisture sensor
sends the data to microcontroller unit, and microcontroller commands the relay to off the
motor pump.

XXXII
6.3. Usability Testing
Usability testing also known as User Experience (UX) testing is a testing method for
measuring how easy and user-friendly a software application is. A small set of target end-
users, use software application to expose usability defects.

Using NodeMCU-8266, soil moisture content sensor, DHT11 temperature and humidity
sensor, relay module and motor, the programming is done on Arduino IDE software. All the
system is integrated in such a way that it monitors field temperature, humidity and soil
moisture and also monitors the time period till motor is running.
This system is user friendly and easy to use. No need of a huge knowledge regarding the
software but hardware. It not only provides comfort but also reduce energy, efficiency and
time saving. Agriculture plays an important role in the life span of human being and not only
for their survival but also for the better economic growth of the country as well.

6.4. Module / Unit Testing


The main consideration in this test is the verification of all the modules of the software
system. . Unit testing involves individually testing unit of code separately to make sure that
it works on its own, independent of the other units. This testing is usually done to verify
whether the application is working properly for which it is developed.
Testing was performed to find out whether the system working properly or not. Testing was
conducted using the black box testing method. The test is carried out in the three parts.
First part was device testing to test the functionalities of each component.
Second part testing was related with the monitoring of soil moisture
Third part testing was about the notification through Blynk apps regarding the information
about the device when it’s activated or deactivated.
The testing results are shown on the Table.1, Table.2, Table.3 and Table.4.
1. Testing the functionalities of the watering device.
The watering devices consist of the soil moisture sensor, Node Mcu, relay, Arduino Uno,
DHT11, DC 5V Motor and watering pipe. The parameter for this testing is based on the
detection results from the soil moisture sensor. In this research, the reference of the soil
moisture is preferred and set in the value between 30% - 35 %.When the sensor detected the
soil moisture level is between 30% to 35% then the soil is in a dry level. When the soil is
dry, it means the plants need water, so the relay state ON and triggered the solenoid valve to
open the watering pipe to drain the water to the plants.

Table.6.1: Functionalities testing of the watering device

XXXIII
No Soil Node Mcu Relay DC 5V Watering Test
Moisture Water Pipe Result
Detection pump
Value
30%-35% ON ON Open Enable Succeeded
Drain
Water
More Than ON OFF Close Disenable Succeeded
35% to drain
Water

The scenario of the testing was conducted to get the results value of the soil moisture
detected by the sensor. In these experiments we use five different 250 ml cup. The soil was
put in each cup and then 150 ml water poured out to the soil. The experiments were carried
out in five experiments. The special treatment was applied to test the state of the soil
moisture. The first special treatment is related with the initial value of soil moisture which
set to the value of 0%.
2. The result of soil moisture testing is shown in the Table 2.
Table.6.2: Testing the soil moisture with initial soil moisture 0%

Experiment Initial value of soil Final value of soil Increment moisture


moisture (%) moisture (%) value (%)
0% 50% 50%
0% 66% 66%
0% 63% 63%
0% 65% 65%
0% 58% 58%
Average final value of soil moisture 60,4% -
Average increment value of soil moisture - 60,4%

From Table. 2, it shown that the final soil moisture are varies between 50% to 66 %. The
average value of the soil moisture can be calculated with a simple formula as shown below.

𝑆 = 𝐹 𝑇 𝑥 100% ….................................... (1)

XXXIV
Average value of soil moisture (S) is equal then the total sum of final value of soil moisture
(F) divide by number of testing (T) then multiplied by 100%. The Formula (1) could be
applied to calculate the average final value of soil moisture or to calculate the average of the
increment value of soil moisture. The average final value is 60, 4% which is the same with
the average increment value of the soil moisture. The second special treatment is concerned
with the range of soil moisture reference value. For each experiment the initial value of the
soil moisture was varies between 30% - 35% as shown in the Table. 3. From five
experiments, the final moisture value ranges from 65% - 72%. The average final moisture
value had been calculated with formula (1), and the results shown 68, 2%. From each
experiment, the increment moisture value could be calculated simply by subtraction of the
final value with the initial value of soil moisture. The average increment value of soil
moisture is 35, 8%

Table.6.3: Testing the soil moisture with reference soil moisture 30% – 35%

Experiments Soil moisture Initial value of Final value of Increment


reference value soil moisture soil moisture moisture value
(%) (%) (%) (%)
30% - 35% 32% 68% 36%
30% - 35% 30% 65% 35%
30% - 35% 35% 72% 37%
30% - 35% 33% 69% 36%
30% - 35% 32% 67 % 35%
Average final value of soil moisture 68,2% -
Average increment value of soil moisture - 35,8%

3. Testing the notification through Blynk apps

Table.6.4: Blynk apps functionalities

Soil moisture detection value Watering device Notification status in


Blynk apps
30 % - 35 % Activated Succeeded send the
notification to user
smartphone
More than 35% Deactivated Succeeded send the
notification to user
smartphone

XXXV
6.5. Integration Testing
Integration testing is the technique for testing the interfaces of software components.
Each software components in unit tested, and all the components are integrated and
evaluated as a group. The tests are conducted to ensure that the components are working
properly after interfacing. All modules are integrated or not.

 We have all modules and then integrated it in a single interface having their performance ,
result and test it work successfully.

 After successful completion of all modules, we designed Blynk app interface and integrate
them with main UI and their result is great.

 At the end, we linked all the modules and components with Blynk application and then test,
it meet our criteria.

 Blynk is a Platform with IOS and Android apps to control Arduino, Raspberry Pi and
the likes over the Internet. It's a digital dashboard where you can build a graphic
interface for your project by simply dragging and dropping widgets.

6.6. System Testing


System Testing is carried out on the whole system in the context of either system
requirement specifications or functional requirement specifications or in the context of both.
System testing tests the design and behavior of the system and also the expectations of the
customer. It is performed to test the system beyond the bounds mentioned in the Software
Requirement Specifications (SRS).
 We tried to check the working of sensors temperature and humidity. Both sensors are
working perfectly and giving the desired result.
 Soil moisture sensor senses the moisture level of the soil. If soil will get dry then
sensor senses low moisture level and automatically switches on the water pump to
supply water to the plant. As plant get sufficient water and soil get wet then sensor
senses enough moisture in soil. After which the water pump will automatically get
stopped.
 Interfacing with Arduino without monitoring
 Interfacing with (Node MCU) to monitor status on mobile.

XXXVI
6.7. Acceptance Testing
Acceptance Testing is a method of software testing where a system is tested for
acceptability. The major aim of this test is to evaluate the compliance of the system with the
business requirements and assess whether it is acceptable for delivery or not. Acceptance
Testing is the last phase of software testing performed after System Testing and before
making the system available for actual use.

 The system is designed quit simple and there is no need of deep knowledge
regarding the system. Useful system for the plant lovers.
 After testing all the working and it giving the desired result. So we have imagined
that the end users will enjoy it and can use the system easily.

6.8. Stress Testing


Stress Testing is a type of software testing that verifies stability & reliability of software
application. The goal of Stress testing is measuring software on its robustness and error
handling capabilities under extremely heavy load conditions and ensuring that software
doesn't crash under crunch situations. It even tests beyond normal operating points and
evaluates how software works under extreme conditions.
 System is reliable due to its low complexity and connection of all components.

 Showing satisfied results for the users even in case of low power.

 Either weather is sunny or cloudy it doesn’t matter. The sensors will sense and will
notify the motor to turn on.

6.9. Hardware Configuration for Testing


Soil moisture sensor: The soil moisture sensor is used for calculating the volumetric
content of the soil. The working of soil moisture sensor is relying on the working procedure
of resistance. If the resistance between two dissimilar points of soil is diminution than there
is increase in volumetric content of water in soil. If the resistance between two different
points of soil is augmented than there is decrease in volumetric content of water in soil. The
soil moisture sensor is composed of probe and circuit. The probes are injected under the soil
surface which is used for measuring the volumetric content of the water. The second
component of the soil moisture sensor is a circuit in which LED, Comparator,
Potentiometer, LM293 and 3 Pins are integrated.

XXXVII
DHT 11: The digital temperature and humidity sensor DHT11 a composite sensor that
contains a calibrated digital signal output of temperature and humidity. Three pins are
available for use: VCC, GND, and DATA.

Node MICROCONTROLLER ESP8266: Node MICROCONTROLLER is an open


source firmware for which open source prototyping board designs are available. Node
MICROCONTROLLER is an open-source firmware and development kit that helps you to
prototype or build IoT products. It includes firmware that runs on the ESP8266 Wi-Fi
system on chip (SoC) from Espressif Systems, and hardware which is based on the ESP-12
module.

RELAY MODULE: A relay is an electrically operated switch that can be turned on or off,
letting the current go through or not, and can be controlled with low voltages, like the 5V
provided by the Arduino pins. This relay module has two channels (those blue cubes). There
are other models with one, four and eight channels. This module should be powered with
5V, which is appropriate to use with an Arduino. There are other relay modules that are
powered using 3.3V, which is ideal for ESP32, ESP8266, and other microcontrollers.

BREAD BOARD: A breadboard is a solder less device for temporary prototype with
electronics and test circuit designs. Most electronic components in electronic circuits can be
interconnected by inserting their leads or terminals into the holes and then making
connections through wires where suitable.

DC 5V MOTOR: This is a low price, lesser size Submersible Pump Motor which can be
functioned from a 3 ~ 5V power supply. Just connect tube pipe to the motor opening,
immerse it in water and power it. Make sure that the water level is at all times higher than
the motor. Dry run may harm the motor due to heating system and it will also produce noise.
The pump used here is just for demo of prototype

WIRES: wires are used for connecting the circuit of the model. Here used two types of wire
jumper wire and simple wire.

6.10. Evaluation
Project evaluation is a process of collecting and analyzing information in order to
understand the progress, success, and effectiveness of a project. Evaluation is an important

XXXVIII
aspect of project management It can facilitate the successful completion of the project, and
inform decisions about the future of both the project at hand and other projects.
Main types are:
Project evaluation is a process of collecting and analyzing information in order to
understand the progress, success, and effectiveness of a project. Evaluation is an important
aspect of project management it can facilitate the successful completion of the project, and
inform decisions about the future of both the project at hand and other projects.
Main types are:

6.6.1. Process evaluation:

Process evaluation is used to “measure the activities of the program, program quality and
who it is reaching” Process evaluation, as outlined by Hawed and colleagues will help
answer questions about your program such as:

Has the project reached the target group?


Are all project activities reaching all parts of the target group?

6.6.2. Impact evaluation:

Impact evaluation is used to measure the immediate effect of the program and is aligned
with the programs objectives. Impact evaluation measures how well the programs objectives
(and sub-objectives) have been achieved.

Impact evaluation will help answer questions such as:

 How well has the project achieved its objectives (and sub-objectives)?

 How well have the desired short term changes been achieved?

 Impact evaluation measures the program effectiveness immediate after the


completion of the program and up to six months after the completion of the program.

6.6.3. Outcome evaluation:

XXXIX
Outcome evaluation is concerned with the long term effects of the program and is generally
used to measure the program goal. Consequently, outcome evaluation measures how well
the program goal has been achieved.

Outcome evaluation will help answer questions such as:

Has the overall program goal been achieved?


What, if any factors outside the program have contributed or hindered the desired change?

6.6.4. Summative evaluation:

At the completion of the program it may also be valuable to conduct summative evaluation.
This considers the entire program cycle and assists in decisions such as:

Do you continue the program?


If so, do you continue it in its entirety?
Is it possible to implement the program in other settings?
 Evaluation section.

 Like in our system if user wants to add new features that would be possible? Yes of
course such as storing the data On cloud database etc.
 Can enhance the devices like bulb can also be attached through pins with Arduino
Uno.

6.7. Deployment
Deployment is the process of delivering completed software to the client who ordered it or
rolling out the software to consumers. Software deployment should only take place after
through testing to ensure that all the flaws and bugs have been identified and fixed.
So here our system is going to be like by Plant lovers for their usage.

6.8. Maintenance
Software maintenance is the process of modification of a software product after delivery
to correct faults, to improve performance or other attributes. The main purpose of software
maintenance is to modify and update software application after delivery to correct faults
and to improve performance
 After hand over to the client this system can be modify according to their need.

 If they want to add other devices then it can be possible.

XL
XLI
Chapter 7: Conclusion and Future Work

7.1. Conclusion
The automatic watering system integrated with IoT platforms Blynk could performs the
functions of watering the plant according to the purpose of the research. Soil moisture sensor
detected the water moisture in the soil and send signal to Node Mcu. The reading results
from sensor, processed by the Node Mcu to generate the watering function automatically.
The system sends notification to Blynk apps, when the device activated or deactivated the
watering function. The system had to connect to the internet to perform the real-time
monitoring and notification. When the system disconnected from the internet, monitoring
and notification functions could not be proceed, but the watering device will still perform
watering function. The initial value of the soil moisture could be adjusted according to the
moisture needed by the plants. This can be done by reprogramming the microcontroller. For
this research, we set the initial value of the soil moisture in range of 30% - 35%. For
further research development the system could be added with more soil moisture sensors or
another sensor such as temperature and humidity sensor and then conduct different
experimental scenarios to gain the comparison. The watering pipe could be customized
according to the area of the plants on the ground. This automatic watering system has the
potential to use simply for gardening or implemented the field of agriculture.

7.2. Future Work


In future we will introduce that system to the nurseries to reduce the work load of farmer
and to make things easy for the nurseries. To improve the efficiency and effectiveness of the
system, following recommendations can be put into consideration. Option of controlling
the water pump can be given to the farmer i.e. he can switch on/off the pump in order to
start/stop the process of irrigation without being present at the farm. In such cases farmer
may need to stop the system remotely. The idea of using IOT for irrigation can be extended
further by adding LED display screen that will notify the farmer that motor is on or off. The
users can make changes according to their need as well like adding more devices. We will
able the farmer to control the speed of water pump by considering the type of plant.

XLII
References

[1] Y. C. Manurung, A. S. Hanafiah and P. Marbun, 2015, Pengaruh Berbagai Kadar Air
Tanah
Pada Efektivitas Mikoriza Arbuskular Terhadap Pertumbuhan dan Serapan Hara Bibit Karet
(Hevea brassiliesis Muell.Arg.) di Rumah Kasa, Jurnal Online Argoekoteknologi, Vol. 3,
No. 2, hal 465-467. [Online]. Available: https://bit.ly/2B2xo1z
[2] T. Pranata, B. Irawan and Ilhamsyah, 2015, Penerapan Logika Fuzzy Pada Sistem
Penyiraman
Tanaman Otomatis Berbasis Mikrokontroler, Jurnal Coding Sistem Komputer Untan, Vol.
III,
No. 2, hal 11-22. [Online]. Available: https://bit.ly/2Qjc5mW
[3] E. Nasrullah, A. Trisanto and L. Utami, 2011, Rancang Bangun Sistem Penyiraman
Tanaman
Secara Otomatis Menggunakan Sensor Suhu LM35 Berbasis Mikrokontroler ATMega8535,
Electrician – Jurnal Rekayasa dan Teknologi Electro, Vol. 5, No. 3, hal 182 - 192. [Online].
Available: https://bit.ly/2G4EVTe
[4] M. Fadhil, B. D. Argo and Y. Hendrawan, 2015, Rancang Bangun Prototype Alat
Penyiram
Otomatis dengan Sistem Timer RTC DS1307 Berbasis Mikrokontroler Atmega16 pada
Tanaman Aeroponik, Jurnal Keteknikan Pertanian Tropis dan Biosistem, Vol. III, No. 1 hal
37 – 43. [Online]. Available: https://bit.ly/2zMc8gQ
[5] J. Waworundeng, C. Yapian, H. Pandean, 2017, Sistem Pengontrolan Suhu dan
Intensitas
Cahaya pada Rumah Walet Berbasis Mikrokontroler, E-Proceeding Konferensi Nasional
Sistem & Informatika, Bali, Agustus 10. [Online]. Available: https://bit.ly/2PseF4S
[6] M. Tombeng, C.A. Tedjo, dan N.A. Lembat, 2018, Implementasi Sistem Pengontrolan
Tower
Air Universitas Klabat menggunakan Mikrokontroler, Cogito Smart Journal, Vol. 4, No. 1,
hal
60 – 71. [Online]. Available: https://bit.ly/2RLKXty
[7] E. Z. Kafiar, E.K. Allo, D.J. Mamahit, 2018, Rancang Bangun Penyiram Tanaman
Otomatis
Berbasis Arduino Uno Menggunakan Sensor Kelembaban YL-39 dan YL-69, Jurnal Teknik
Elektro dan Komputer Vol. 7, No. 3, hal 267 – 276. [Online]. Available:
https://bit.ly/2Ghilqy
[8] J. Waworundeng, L.D. Irawan, dan C.A. Pangalila, 2017, Implementasi Sensor PIR
sebagai
Pendeteksi Gerakan untuk Sistem Keamanan Rumah Menggunakan Platform IoT, Cogito
XLIII
Smart Journal Vol. 3, No. 2, hal. 152 – 163. [Online]. Available: https://bit.ly/2HEXiJZ
[9] J. Waworundeng dan O. Lengkong. 2018, Sistem Monitoring dan Notifikasi Kualitas
Udara
dalam ruangan dengan Plafrom IoT, Cogito Smart Journal Vol. 4, No. 1, hal 94 – 103.
[Online]. Available: https://bit.ly/2ElULaq

XLIV

You might also like