0% found this document useful (0 votes)
52 views

Automatic Plant Watering System Using Ar PDF

Uploaded by

siddhesh keni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Automatic Plant Watering System Using Ar PDF

Uploaded by

siddhesh keni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

© IJCIRAS | ISSN (O) - 2581-5334

August 2019 | Vol. 2 Issue. 3

AUTOMATIC PLANT WATERING SYSTEM USING


ARDUINO
Khin Thandar Tun1, Hay Man Oo2, Cho Thet Nwe3
1Lecturer, Department of Electronic Engineering, Technological University (Meiktila), Myanmar
2Lecturer, Department of Electronic Engineering, Technological University (Meiktila), Myanmar
3Assistant Lecturer, Department of Electronic Engineering, Technological University (Kyaukse), Myanmar

Keyword: Arduino UNO, C Programming, Sensors,


Abstract
LCD, Water pump, Motors, L293D motor driver, LCD
Nowadays gardening is one of the sophisticated I2C module
hobby and also very important for environment
1.INTRODUCTION
balance. But the main problem is the time
adjustment for watering the plant. Especially when Irrigation is an artificial way of watering the soil for the
people are away from home for few days, then lots proper growth of the plant. It is mainly used in the dry
of problem arises to watering the plants. In this areas and the places where rainfall is less. Irrigation also
technological era where people rely on the helps to suppress the weeds growing in the agricultural
technology for almost everything to make their work fields. The old methods used for irrigation was manual
easier and more efficient, then why not there has irrigation using buckets and watering cans, by using
been a system that automatically waters the garden sprinkler irrigation, localized irrigation, drip irrigation,
and plants without depending on someone when no etc. But by using these techniques people hasn’t
one is there at home for longer period. So one of the predicted the amount of water that is to be watered or
objectives of this work is to observe how human the sufficient quantity of water that a crop needs. Due
activities are replaced from automated irrigation to this water logging occur while using these techniques
and also excess use of water is minimized. The to water the crops. So there is a need for the
method is employed, to continuously keep an eye on improvement on these existing techniques in order to
the soil moisture level to decide whether irrigation is conserve water. So to prevent the water which is being
needed, and how much water is needed for the soil. wasted during irrigation, an automatic plant watering
Program code for this paper is based on Arduino system has been developed. This works by sensing the
UNO with C++ language. If dryness level is high, moisture content of the soil and decides whether the
moisture level is low. At that time, the water pump is pump has to operate or not. The water supply needed
switched ON to supply water to the plant and is for this irrigation is from any source like pond, stream,
automatically OFF when the soil moisture reaches to well etc. This system is not as expensive as people
the minimum threshold level. The total work is done compare to other systems and is time saving, as the
through six sub systems; soil moisture sensor, motor works done by the system is automatic. In the world of
driver, servo motor, liquid crystal display, LCD I2C advance electronics, life of human beings is simpler.
module and water pump. In this thesis, the micro Hence to make life simpler and more convenient,
water pump as pumping unit is constructed by using automatic plant watering system using Arduino has
a small DC motor. An integrated Liquid Crystal been made. Water is a resource that is needed by all
Display (LCD) is also used for real time display of living species. So it is necessary to check the water usage
data acquired from the sensor and the status of the and preserve it for the future generation to come. A
various devices. large amount of water resource is wasted also by this
country. So in paper an efficient automatic plant
watering system is designed which check the water

IJCIRAS1356 WWW.IJCIRAS.COM 178


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

usage and also reduce the human supervision required.


The model implements sensor technology with Arduino Fig 1: Block Diagram of Automatic Plant Watering
microcontroller to make a smart switching device. The System
system displays the basic switching mechanism of motor
and pump using sensors. This system avoid over The flowchart shown in Fig.2 is for the operation of the
watering of already saturated soil. This system is system.
implemented easily and also it is cost effective. It is user Start
friendly and has been easily reprogrammed for any
requirement.
Initialized the threshold value
of soil moisture=600
2.SYSTEM BLOCK DIAGRAM

The automatic plant watering system is designed to Initialized Servo


continuously check the soil moisture level. Firstly three Position 10°
most common soil samples (sandy, loamy and clayey
soils) are used as a reference level of soil moisture.
Probes are set up to the sensors. The sensor consists of Read analog value of
Plant Sensor
two probes. This sensor measures the volumetric
content of water in soil and gives the moisture level. No
Then stops the supplying water when the level of soil No No
value1>=threshold value2>=threshold value3>=threshold
moisture is achieved which it desired. As a reference of ? ? ?
voltage levels respective to the wet and dry states of the Yes Yes Yes
soil sample are computed by measuring the resistance Plantpos1 30º Plantpos2 90° Plantpos3 150°
through the moisture detector probes. This paper uses
Arduino UNO board circuit for controlling whole the
Pump On Pump On
process of this automatic plant watering system. If Pump On
moisture level is low then Arduino switches ON a water
pump and rotates the servo motor to provide water to Watering Time Watering Time Watering Time
the plant. This board is connected with sensor, motor 4s 5s 6s
driver circuit, servo motor, LCD screen and power
supply. The motor driver circuit uses as a L293D in this
paper. This driver circuit controls the whole work. It End
sense the soil condition, it measures the time for
supplying the water. This Arduino board, driver circuit is
connected with power supply for active the circuit. Fig 2: Flowchart of the System

Power The algorithm used in the flowchart.


16x2
LCD
Supply • Step 1: Start.
(12V)
• Step 2: Set the threshold value of soil moisture
= 600 that means before three sensors are not
Servo
Motor working.
Arduino UNO
(SG 90) • Step 3: Read analog value of plant sensor from
Motor
Water
the sensors in the soil.
• Step 4: Check the sensor’s value in the soil. If
Diver
(L293D) Pump
value1 is greater than the threshold value, it
Soil Soil Soil means go to step 5, 6 and step 7. If value1 is not
Sensor1 Sensor2 Sensor3
greater than the threshold value, it goes to step
(FC 28) (FC 28) (FC 28)
9.

IJCIRAS1356 WWW.IJCIRAS.COM 179


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

• Step 5: Rotate the servo motor Plantpos1 at 30° • Plug the square end of the USB cable into the
for plant 1. Arduino and the flat end into an available port
• Step 6: After rotate the servo motor for plant 1, on PC to connect the Arduino to computer.
the pump is on. • Open the Start Menu and type devmgmt.msc in
• Step 7: Defining watering time (4s) for plant 1 is the Search Programs and Files box; then press
working. Enter.
• Step 8: End. • Right click Arduino UNO and select Update
• Step 9: Check the sensor’s value in the soil. If Driver Software in the list that appears; then
value2 is greater than the threshold value, it click the Browse Computer for Driver Software
means go to 10, 11 and step 12. If value2 is not option.
greater than the threshold value, it goes to step • Click Browse to find Arduino folder.
14. • Within Arduino folder, click the Drivers folder
• Step 10: Rotate the servo motor Plantpos2 at and then click the Arduino UNO file.
90° for plant 2. • Click Next, and Windows completes the
• Step 11: After rotate the servo motor for plant installation.
2, the pump is on.
• Step 12: Defining watering time (5s) for plant 2 The Arduino IDE supports the languages C and C++
is working. using special rules of code structuring. The Arduino IDE
• Step 13: End. supplies a software library from the Wiring project,
• Step 14: Check the sensor’s value in the soil. If which provides many common input and output
value3 is greater than the threshold value, it procedures. User written code only requires two basic
means go to 15, 16 and step 17. If value3 is not functions, for starting the sketch and the main program
greater than the threshold value, it goes to loop, that are compiled and linked with a program stub
step3. main () into and executable cyclic executive program
• Step 15: Rotate the servo motor Plantpos3 at with the GNU toolchain, also included with the IDE
150° for plant 3. distribution.
• Step 16: After rotate the servo motor for plant • setup () : This function is called once when a
3, the pump is on. sketch starts after power up or reset. It is used
• Step 17: Defining watering time (6s) for plant 3 to initialize variables, input and output pin
is working. modes and other libraries needed in the sketch.
• Step 18: End. • loop() : After setup () function exits (ends), the
• Step 19: If the process wants to begin again, go loop () function is executed repeatedly in the
to step 2. main program. It controls the board until the
• Step 20: If the process wants to finish, go to End. board is powered OFF or is reset.

3.IMPLEMENTATION

3.1. Implementation using Arduino UNO

With Arduino UNO and a USB A and B cable at hand,


follow these steps to obtain and install the latest version
of Arduino on version of Windows;

• Open the Arduino downloads page and click the


Windows link to download the zip file
containing a copy of the Arduino application for
Windows.

IJCIRAS1356 WWW.IJCIRAS.COM 180


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

Fig 3: Architecture of Arduino UNO’s IDE Fig 4: Program for Servo Motor

The code for this paper, the schematics is fairly easy. It Since in some code, the libraries needed are not
is heavily reliant on the servo.h library which comes pre- included in Arduino, so to add them before compiling.
installed with the Arduino IDE. The goal implemented by Unzip the downloaded file. Copy the folders under the
the code is simple, turn to the servo motors in a different Library folder to the libraries folder in Arduino, if the
direction using different angles to demonstrate its path in Arduino is not finded, open Arduino IDE, click
capabilities. File > Preference, and the path in the Browse box is seen,
To do an explanation of the code, as usual, the first thing as shown in the following diagram. Compile the
do is included the libraries the servo.h library. program.
#include<Servo.h>
Next, an object of the servo library is created.
Servo plantServo;
Next, proceed to the void setup function is moved where
the servo object is attached to a digital pin and set the
servo angle to 10. Digital pin 9 to the servo object is
attached. The servo object is now fully initialized and
ready to control the servo.
void setup ()
{
plantservo.attach(9);
plantservo.write(10); Fig 5: Arduino IDE
}
Next is the loop function. To turn make the servo rotate The default I2C bus address is 0x27 and the first
to a particular degree, the plantservo.write () function is parameter in the LiquidCrystal I2C function. This
used to write the degree of rotation to the servo is function sets the dimensions of the LCD. It needs to be
desired. The function to turn the servo is used from one placed before any other LiquidCrystal function in the
to the other and back. To demonstrate this, the “for” void setup () section of the program. The number of
loop is used to turn the servo at several angles in one rows and columns are specified as lcd.begin (columns,
direction, and the another loop is used to turn the servo rows). For 16x2 LCD, lcd.begin (16, 2) is seen, and for a
back to where it started. 20x4 LCD, lcd.begin (20, 4) is used. The backlight is also
void loop () be turned on and off with lcd.setBacklight(HIGH) or
{ lcd.setBacklight (LOW).
for (int ppos=10; ppos<=plantpos1; ppos++) Similar, but more useful than lcd.home () is
plantServo.write(ppos); lcd.setCursor(). This function places the cursor and any
delay(3000); printed text at any position on the screen. It is used in
} the void setup () or void loop () section of program. The
cursor position is defined with lcd.setCursor (column,
row). The column and row coordinates start from zero (0
to 15 and 0 to 1 respectively). For example, using
lcd.setCursor(0,1) in the void setup () section of the
“Moisture1=” program above prints “Moisture1=” to
the lower line and shifts it to the right two spaces.
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(I2C_ADDR, BACKLIGHT_PIN,
En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
void setup ()

IJCIRAS1356 WWW.IJCIRAS.COM 181


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

{ In the setup function, the “Serial.begin (9600)”


lcd.begin(16,2); command initializing the serial port of Arduino to
lcd.setCursor(0,1); display information in the serial monitor.
lcd.print(“Moisture1=”); void setup () {
lcd.print(value1); Serial.begin (9600);
delay(1000); }
} In the loop function, the sensor analog pin is read and is
store the values in the “value” variable. While monitoring
the sensor ADC values are got from 0 to 1023.
And the values display on LCD screen. Different ranges
of the moisture values are set and turn ON or OFF the
water pump according to it.
void loop ()
{
value1=analogRead(plantSensor1);
Serial.print(“Moisture1=”);
Serial.print(value1);
delay(1000);
}

Fig 6: Program for LCD

The LiquidCrystal () function sets the pins the Arduino


uses to connect to the LCD. Any of the Arduino’s digital
pins are used to control the LCD.
Put the Arduino pin numbers inside the parentheses in
this order: LiquidCrystal (RS, E, D4, D5, D6, D7). RS, E, D4,
D5, D6, D7 are the LCD pins.
This function is used to print text to the LCD. It is used
in the void setup () section or the void loop () section of
the program.
To print letters and words, place quotation marks (“ ”) Fig 7: Program for Soil Moisture Sensor of Plant 1
around the text. For example, print “Moisture1=” use
lcd.print (“Moisture1=”).
This function clears any text or data already displayed
on the LCD. If lcd.clear () with lcd.print () is used and the
delay () function in the void loop () section, a simple
blinking text program is made.
lcd.print(“Moisture1=”);
delay(2000);
lcd.clear( );
Two variables have been defined, one for the soil
moisture sensor pin and the other for storing the
output of the sensor.
int plantSensor1=A0; Fig 8: Serial Monitor for Soil Moisture Sensor of Plant 1
int value1=0;
At initial state, all three sensors are not working and
sensor’s values are zero.

IJCIRAS1356 WWW.IJCIRAS.COM 182


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

int value1=0; in the soil and sends that information to the LCD and
int value2=0; Arduino with values lying in the range 0 to 1023. And
int value3=0; display on LCD “ Moisture1 = ” and “Watering
The setup function is declared servo position at 10°. Plant1”.This data compared with the threshold value
plantServo.write (10); that means minimum soil moisture value from where soil
And pump situation is LOW that means at initial state completely dry and to need watering the soil. This value
for pump is off. digitalWrite () programming language is is already referred in the program and when the value
used. reaches to the threshold value it sent the signal to motor
Outputs either logic level HIGH or LOW (turns ON or driver IC.
OFF) at a specified digital pin. The pin is specified as The enable signal, pin 1 of L293D driver chip is
either a variable or constant (0 to13). connected to 5V. This driver chip main voltage means
digitalWrite (pump, LOW); that pin 8 of the chip is connected to the positive
terminal of the power supply. Pin 2 is connected to the
3.2. Implementation by Hardware negative terminal of the power supply. Pin 4, 5, 12, 13
are connected with ground and short to the GND pin of
Working process of automatic plant watering system is the Arduino UNO board. Pin 16 is connected to 5V. Pin
very simple. It is fully automated process. In this paper, 7 is connected to Arduino’s digital pin 3. Then it rotates
it is working the five sections. The first section is power the servo motor and turns the water pump on
supply which is used 12V module. The second sections simultaneously. It first moves the horn of the servo
are sensors which is used soil moisture sensor. The third motor along with the pipe which is attached to it
section is Arduino UNO. The four sections are LCD to towards the plant whose moisture level decreased. The
display the sensor’s value which is used together with servo motor is connected to the 9th number output pin
LCD I2C module. The final sections are motor driver of Arduino board through which the microcontroller is
which is used IC L293D. It controls the servo motor giving instruction to the motor. Servo motor for plant 1
which rotates and the water pump which is pumping rotates the 30° position.
unit. Arduino UNO and motor driver are supplied 12V The positive terminal of the water pump is connected to
power supply. Others soil moisture sensor, LCD, servo pin 6 of the IC motor driver and the negative terminal is
motor and water pump are supplied 5V from Arduino connected to pin 3 of the chip. The pump turn on about
UNO. Initial position for servo motor horn is watering time which is also mentioned in the program
10° position. and the process accordingly in the program for plant 1,
Soil moisture sensor has 3 connection points where V CC plant 2, and then plant 3 step by step. It starts the water
is connected with the 5V of Arduino board, the GND pin pump to supply water to the plant for 4s and then stops
is connected to the GND of Arduino and the output pins the water pump. It brings back the servo motor horn to
are connected to A0, A1 and A2 of Arduino. The first the its initial position. Sensor 2 and sensor 3 are also above
moisture sensor senses the amount of moisture principle. For sensor 2, display on LCD “Moisture2 = ”
presence in the soil and accordingly it sends its output and “Watering Plant 2”, watering time is 5s and servo
to the microcontroller through the input and output motor horn rotates 90° position. Then servo motor
pins provided in the Arduino board. Then the sensor brings back to its initial position. For sensor 3, display on
obtains the data from the soil and display on the LCD LCD “ Moisture3 = ” and “Watering Plant3”, watering
screen. The four bit mode LCD module is used. It has time is 6s and servo motor horn rotates 150° position.
four connections namely VCC, GND, SDA, SCL. VCC pin Then servo motor brings back to its initial position.
of the LCD is connected to the 5V pin of the Arduino.
GND pin is connected to the GND pin of the Arduino.
SDA pin is connected to pin of Arduino which is the
analog input pin (A4), and finally the SCL terminal is
connected to the Arduino UNO board which is another
analog input terminal (A5). The soil moisture sensor
continuously monitors the volumetric moisture content

IJCIRAS1356 WWW.IJCIRAS.COM 183


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

The program in the Arduino reads the moisture value


from the sensor every 20 seconds. If the value reaches
12V
LCD
Servo Module
the threshold value, the program runs the following
Motor three things;
VDD
VSS

RW

• It moves the servo motor horn, along with the


V0
RS

D0
D1
D2
D3
D4
D5
D6
D7

+
A
K
E

TP1 M1 _ water pipe fixed on it, toward potted plant,


+
_ TP2 whose moisture level is greater than the
LCD I2C Module GND Arduino predetermined and threshold level.
LED VCC Uno • It starts the water pump to supply water to the
SDA plant for fixed period of time and then stops the
2

7
5V
SCL
IN1

IN2
GND D9 water pump.
GND • It brings back the servo motor horn to its initial
VCC1 VCC2

Vin position.
8

6
OUT2

At first the moisture sensor senses the amount of


16

VCC IC + moisture present in the soil and accordingly it sends its


A0 L293D Water
Sensor 1 GND output to the microcontroller through the input and
OUT1

A1 M2 Pump
EN1

D3
1

A2 _ output pins provided in the Arduino board. Then the


O/P A3
sensor obtains the data from the soil and display on the
A4
GND
GND
GND
GND

A5 LCD screen. Place the flower pots where the pipe from
the servo motor horn is easily reach them. When the
5
4
13
12

VCC moisture level dips above 600, servo horn rotates at an


GND angle of 30°. That is, after servo motor horn moves 30°
Sensor 2
TP0=0V O/P
toward the first pot, the water pump is ON for four
TP1=5V TP0 seconds and then stops automatically. Then, the servo
TP2=12V
returns to its original position.
VCC
Sensor 3 GND GND
O/P

Fig 9: Circuit Diagram of Automatic Plant Watering


System

4.RESULTS

The soil moisture sensor continuously monitors the


volumetric moisture content in the soil and sends that
information to the Arduino with values lying in the range
0 to 1023. Then the sensor obtains the data from the soil Fig 10: Display Moisture Value of Plant 1 on LCD
and display on the LCD screen. If the soil moisture
content goes above a certain point, which is decided by
the threshold value given in the Arduino code, the servo
motor and the DC motor to start the watering
mechanism. As soon as the Arduino decides that the soil
needs watering, it tells the servo motor how much to
rotate and along with it the water holding container is
tilted to let the water flow. The water pump is used as
the DC motor for running to maintain a steady flow of
water.

IJCIRAS1356 WWW.IJCIRAS.COM 184


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

the soil and display on the LCD screen. The servo motor
Fig 11: Result for Servo Motor of Plant 1 Rotates 30° horn rotates to 150° to the third pot, water pump is ON
Position six seconds and then stop automatically. The servo
motor returns to its original position.
Similarly, if a second sensor is used, the moisture sensor
senses the amounts of moisture presented in the soil
and accordingly it sends its output to the
microcontroller through the input and output pins
provided in the Arduino board. Then the sensor obtains
the data from the soil and display on the LCD screen.
The servo motor horn rotates to 90° to the second pot,
water pump is ON for five seconds and then stop
automatically. The servo motor returns to its original
position.

Fig 14: Display Moisture Value of Plant 3 on LCD

Fig 12: Display Moisture Value of Plant 2 on LCD

Fig 15: Result for Servo Motor of Plant 3 Rotates 150°


Position

If the sensor value below the threshold value 600,


nothing display on LCD screen. And servo motor horn
its initial position at 10° has not changed any other
degrees. And also, the motor driver L293D is not
working, so the water pump is not pumped for plants.
This situation is generally same as the operation of
sensor 1, 2 and 3.
Fig 13: Result for Servo Motor of Plant 2 Rotates 90°
Position

Finally, a third sensor is used, the moisture sensor senses


the amount of moisture present in the soil and
accordingly it sends its output to the microcontroller
through the input and output pins provided in the
Arduino board. Then the sensor obtains the data from

IJCIRAS1356 WWW.IJCIRAS.COM 185


© IJCIRAS | ISSN (O) - 2581-5334
August 2019 | Vol. 2 Issue. 3

optimal water supply to plant or crop, automatic


operation and protection against adverse weather
conditions. The advantages of this paper are numerous.
If this technology is implemented in the real world, a lot
of water is saved. The world uses about 70% of
freshwater for irrigation and on the other hand irrigation
multiplies yield of most crops by almost 2 to 5 times. So
irrigation seems to be a necessary evil. The best solution
out of this paper is controlled usage of water for
irrigation purpose.

REFERENCES
Fig 16: Result for Normal Situation
[1] Anonymous: “Arduino UNO tutorial begineers”.
5.DISCUSSION https://www.makerspaces.com/
[2] Anonymous: “Water Level Sensor”, (2018).
In this paper, the rotation of the servo motor is difficult http://osoyoo.com/2017/09/27/arduino-
to arrival the certain plant. Function of each module has lesson-water-sensor/#2.2
been reasoned out, so the modules are placed carefully [3] Jakob, M.: “lcd display 1602 i2c module”,
to the best working of the unit. The system has been January, (2017).
tested to function automatically. The moisture sensor https://wackydeveloper.wordpress.com/
measures the moisture level of the different plant. Do [4] Saran A.: “Automatic Plant Watering and Soil
not immerse the sensors fully inside the soil. If the Moisture Sensing”, (2017).
moisture level is found to be above the desired level, the [5] Venkata, N. et.al.: “Developed automatic
moisture sensor sends the signal to the Arduino board irrigation system used for plants”, (2017).
and LCD screen which triggers to rotate the servo motor [6] Arelona, P. and Riya, R.: “Design and
and water pump to turn on and supply the water to the Implementation of automated plant watering
plants. When the desired moisture level is reached, the system” Vol 4, issue 1, January, (2016).
servo motor and water pump stop automatically. Thus, [7] Ayan P.: “Automatic Plant Watering System”,
the functionality of the entire system is complete. In the October, (2016).
present day, on conservation of water is of high https://electronicsforu.com/electronics-
importance. Present work is attempts to save the natural projects/hardware-diy/
resources available which are used in very easily by [8] Rakesh R.: “L293D Motor Driver”, (2013).
human effort. By continuously monitoring the status of https://www.rakeshmondal.info/
the soil, the flow of water is controlled and reduced the [9] [9] Vellidis, Tucker, Kvien, Perry and Bednarz: “A
wastage. By controlling the pump in automatic plant Real Time Wireless Smart Sensor Array for
watering system, the land is irrigated in all climatic Scheduling Irrigation”, National
conditions. Environmentally Sound Production Agriculture
Laboratory (NESPAL), (2007).
6.CONCLUSION [10] [10] Castellano and Joseph, A.: Liquid Gold: “The
Story of Liquid Crystal Displays and the Creation
In this paper, automatic plant watering system by using of an Industry World Scientific Publishing”,
Arduino was successfully established and tested. As the (2005).
automatic plant watering system has a user friendly
design so it is used by the household users as well as the
commercial user. The best benefit is that it reduces the
wastage of water during irrigation and helps in saving
the precious water resource. Another are saving time,

IJCIRAS1356 WWW.IJCIRAS.COM 186

You might also like