Agricultural Robot
Agricultural Robot
Chapter 1:
INTRODUCTION
Agriculture is considered as the basis of life for the human species as it is the main
source of food grains and other raw materials. It plays vital role in the growth of country’s
economy. It also provides large ample employment opportunities to the people. Growth in
agricultural sector is necessary for the development of economic condition of the country.
Unfortunately, many farmers still use the traditional methods of farming which results in low
yielding of crops and fruits. But wherever automation had been implemented and human
beings had been replaced by automatic machineries, the yield has been improved. Hence
there is need to implement modern science and technology in the agriculture sector for
increasing the yield. Most of the papers signifies the use of wireless sensor network which
collects the data from different types of sensors and then send it to main server using wireless
protocol. The collected data provides the information about different environmental factors
which in turns helps to monitor the system.
Monitoring environmental factors is not enough and complete solution to improve the
yield of the crops. There are number of other factors that affect the productivity to great
extent. These factors include attack of insects and pests which can be controlled by spraying
the crop with proper insecticide and pesticides. Secondly, attack of wild animals and birds
when the crop grows up. There is also possibility of thefts when crop is at the stage of
harvesting. Even after harvesting, farmers also face problems in storage of harvested crop.
So, in order to provide solutions to all such problems, it is necessary to develop integrated
system which will take care of all factors affecting the productivity in every stages like;
cultivation, harvesting and post harvesting storage .
This project therefore proposes a system which is useful in monitoring the field data
as well as controlling the field operations which provides the flexibility. The project aims at
making agriculture smart using automation and IoT technologies. The highlighting features
of this project includes smart GPS based remote controlled robot to perform tasks like;
weeding, spraying, moisture sensing, bird and animal scaring, keeping vigilance, etc.
Secondly, it includes smart irrigation with smart control based on real time field data.
Thirdly, smart warehouse management which includes; temperature maintenance, humidity
maintenance and theft detection in the warehouse. Controlling of all these operations will be
through any remote smart device or computer connected to Internet and the operations will
be performed by interfacing sensors, Bluetooth Module, camera and actuators with micro-
controller and raspberry pi.
Chapter 2:
LITERATURE SURVEY
In newer scenario improper usage of water creates scarcity which depletes the water
tables like Rivers, Tanks and concealed water.
To vanquish the above problems, temperature and moisture sensors are used at suitable
locations for monitoring the crops.[1]
[S.R Nandurkar, V.R. Thool R.C Thool, “Design and development of precision agriculture
system using wireless sensor network”, IEEE International conference on automation,
control, energy and systems (ACES), 2014]
By adopting Remote sensing and Control irrigation system using Distributed wireless
sensor networks intended for Variable rate irrigation, Field sensing, Controlling of linear
move irrigation system to maximize the productivity with minimal use of water.
The whole system was developed using 5 infield sensors stations which collects data and
send it to the base station using global positioning system(GPS).The system provides a
promising low cost wireless solutions as well as remote controlling for precision
irrigation.[4]
[Y. kim, R.Evans & W. Iversen, “Remote sensing and control of an irrigation system using a
distributed wireless sensor Network” , IEEE Transactions on instrumentation and
Measurement, pp 1379-1387, 2008].
Effective communication with relay nodes with sensors placed below the soil provides
very low duty cycle with increase in the lifetime of the soil monitoring.
The system implemented uses Microcontroller interfaced to UART (Universal
Asynchronous Receiver and Transmitter) and sensors.
The Transmission was done by hourly based sampling and Buffering the data and there
by checking the status message.[5]
Chapter 3:
OBJECTIVE
To depreciate the extensive use of resources and there by effectively fixing the
outcome caused by miss management of resources.
To be used in mundane task requiring more labour force & also increase in the
efficiency of the overall yield.
To detect burglars entering to the warehouse and to trenchantly store the harvested
outturn by controlling the ambient temperature.
Chapter 4:
METHODLOGY
The project consist of four sections; node1, node2, node3 and PC or mobile app to
control system. In the present system, every node is integration with different sensors and
devices and they are interconnected to one central server via wireless communication
modules. The server sends and receives information from user end using internet
connectivity. There are two modes of operation of the system; auto mode and manual mode.
In auto mode system takes its own decisions and controls the installed devices whereas in
manual mode user can control the operations of system using android app or PC commands.
4.1 Node 1:
Node1 is GPS based mobile robot which can be controlled remotely using computer
as well as it can be programmed so as to navigate autonomously within the boundary of field
using the co-ordinates given by GPS module
The Remote controlled robots have various sensors and devices like ultrasonic sensor, LDR
etc...Ultrasonic sensor is used to detect an object, DHT11 sensor is used to detect the
temperature and humidity in soil, LDR (light dependent register) sensor is used to switch on
the light depending on the surrounding brightness in environment.
L293D driver is used to run dc motors, all these sensors are controlled by Arduino which
consist of ATMEGA328P microcontroller.
4.2 Node 2:
Node2 will be the warehouse. It consists of motion detector, light sensor, humidity
sensor, temperature sensor, room heater, cooling fan altogether interfaced with AVR
microcontroller. Motion detector will detect the motion in the room when security mode will
be ON and on detection of motion, it will send the alert signal to user via Raspberry pi and
thus providing theft detection.
Temperature sensor and Humidity sensor senses the temperature and humidity
respectively and if the value crosses the threshold then room heater or cooling fan will be
switched ON/OFF automatically providing temperature and humidity maintenance.Node2
will also controls water pump depending upon the soil moisture data sent by node3.
4.3 Node 3:
Node3 is a smart irrigation node with features like; Smart control of water pump
based on real time field data i.e. automatically turning on/off the pump after attaining the
required soil moisture level in auto mode, switching water pump on/off remotely via mobile
or computer in manual mode, and continuous monitoring of soil moisture.
In node3, moisture sensor transmits the data using HT12E Encoder IC and a RF
transmitter. The transmitted data is received by node2 and there it is processed by
microcontroller in order to control the operation of water pump.
Chapter 5:
COMPONENTS REQUIRED
5.1 Hardware Requirements:
Arduino UNO
AT-Mega 328P MICROCONTROLLER
Raspberry pi 3
Humidity and Temperature sensor-DHT11
Moisture sensor
Ultrasonic sensor
Driver circuit
DC Motor
PIR Sensor
Cutter
Buzzer
Camera
Solar panel
Battery
Cooling fan
Water pump
Bluetooth Module
Arduino IDE
Raspbian pixel – OS
5.1.1.1 Summary:
Microcontroller ATmega328
Operating Voltage 5V
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
5.1.1.2 Power:
The Arduino Uno can be powered via the USB connection or with an external power
supply. The power source is selected automatically. External (non-USB) power can come
either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by
plugging a 2.1mm centre-positive plug into the board's power jack. Leads from a battery can
be inserted in the Gnd and Vin pin headers of the POWER connector. The board can operate
on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin
may supply less than five volts and the board may be unstable. If using more than 12V, the
voltage regulator may overheat and damage the board. The recommended range is 7 to 12
volts.
VIN. The input voltage to the Arduino board when it's using an external power source
(as opposed to 5 volts from the USB connection or other regulated power source).
You can supply voltage through this pin, or, if supplying voltage via the power jack,
access it through this pin.
5V. The regulated power supply used to power the microcontroller and other
components on the board. This can come either from VIN via an on-board regulator,
or be supplied by USB or another regulated 5V supply.
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw
is 50 mA.
GND. Ground pins.
Each of the 14 digital pins on the Uno can be used as an input or output, using pin
Mode (), digital Write (), and digital Read () functions. They operate at 5 volts. Each pin can
provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected
by default) of 20-50 k Ohms. In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These
pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.
PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analog Write ()
function.
LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH
value, the LED is on, when the pin is LOW, it's off.
The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of
resolution (i.e. 1024 different values). By default they measure from ground to 5 volts,
though is it possible to change the upper end of their range using the AREF pin and the
analog Reference () function. Additionally, some pins have specialized functionality:
I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library.
There are a couple of other pins on the board:
AREF. Reference voltage for the analog inputs. Used with analog Reference ().
Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button
to shields which block the one on the board.
5.1.1.3 Communication:
The Arduino Uno has a number of facilities for communicating with a computer,
another Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V)
serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega8U2
on the board channels this serial communication over USB and appears as a virtual com port
to software on the computer. The '8U2 firmware uses the standard USB COM drivers, and no
external driver is needed. However, on Windows, a .inf file is required. The Arduino
software includes a serial monitor which allows simple textual data to be sent to and from the
Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted
via the USB-to-serial chip and USB connection to the computer (but not for serial
communication on pins 0 and 1). A Software Serial library allows for serial communication
on any of the Uno's digital pins.
The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino
software includes a Wire library to simplify use of the I2C bus; see the documentation for
details. For SPI communication, use the SPI library.
5.1.1.4 Programming:
The Arduino Uno can be programmed with the Arduino software (download). Select
"Arduino Uno from the Tools > Board menu (according to the microcontroller on your
board). For details, see the reference and tutorials. The ATmega328 on the Arduino Uno
comes pre burned with a boot loader that allows you to upload new code to it without the use
of an external hardware programmer.
It communicates using the original STK500 protocol (reference, C header files). You
can also bypass the boot loader and program the microcontroller through the ICSP (In-Circuit
Serial Programming) header; see these instructions for details.
The ATmega8U2 firmware source code is available. The ATmega8U2 is loaded with
a DFU boot loader, which can be activated by connecting the solder jumper on the back of
the board (near the map of Italy) and then resetting the 8U2.
You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac
OS X and Linux) to load a new firmware. Or you can use the ISP header with an external
programmer (overwriting the DFU boot loader). See this user-contributed tutorial for more
information.
Rather than requiring a physical press of the reset button before an upload, the
Arduino Uno is designed in a way that allows it to be reset by software running on a
connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2 is
connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line
is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino
software uses this capability to allow you to upload code by simply pressing the upload
button in the Arduino environment. This means that the bootloader can have a shorter
timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Uno is connected to either a computer
running Mac OS X or Linux, it resets each time a connection is made to it from software (via
USB). For the following half-second or so, the boot loader is running on the Uno. While it is
programmed to ignore malformed data (i.e. anything besides an upload of new code), it will
intercept the first few bytes of data sent to the board after a connection is opened. If a sketch
running on the board receives one-time configuration or other data when it first starts, make
sure that the software with which it communicates waits a second after opening the
connection and before sending this data.
The Uno contains a trace that can be cut to disable the auto-reset. The pads on either
side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may
also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset
line; see this forum thread for details.
The Arduino Uno has a resettable polyfuse that protects your computer's USB ports
from shorts and over current. Although most computers provide their own internal protection,
the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB
port, the fuse will automatically break the connection until the short or overload is removed.
The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively,
with the USB connector and power jack extending beyond the former dimension. Four screw
holes allow the board to be attached to a surface or case. Note that the distance between
digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the
other pins.
5.1.2.1 Features:
5.1.3 RASPBERRY Pi 3:
with 256 megabytes of RAM, later upgraded to 512 MB. It does not include a built-in hard
disk or solid-state drive, but uses an SD card for booting and persistent storage.
The Foundation provides Debian and Arch Linux ARM distributions for
download. Tools are available for Python as the main programming language, with support
for BBC BASIC (via the RISC OS image or the Brandy Basic clone for
Linux), C, Java and Perl. In 2006, early concepts of the Raspberry Pi were based on
the Atmel ATmega644 microcontroller. Its schematics and PCB layout are publicly
available.
Raspberry Pi is a credit card sized bargain micro Linux machine. The goal behind
creating Raspberry Pi was to create a low cost device that would improve programming skills
and hardware understanding for students. The latest model of Raspberry Pi comes sporting 1
GB of RAM, 1200 MHz quad – core ARM Cortex-A53 processor, and basic levels of
functionality that enables hobbyists, computer enthusiasts, and students to use this device for
DIY projects. Raspberry Pi is open hardware with the exception of its primary chip, the
Broadcom SoC which runs the main components of the board – CPU, graphics, memory,
USB controller etc.
This is the model version which is being implemented in this project. The use of this
model is basically due to the following features exhibited by it.
5.1.3.1 Features:
The current models of the Raspberry Pi available: the Pi 2 Model B, the Pi 3 Model
B, the Pi Zero, and the Pi 1 Model B+ and A+.
The Model A+ is the low-cost variant of the Raspberry Pi. It has 256MB RAM, one
USB port, 40 GPIO pins and no Ethernet port.
The Model B+ is the final revision of the original Raspberry Pi. It has 512MB RAM
(twice as much as the A+), four USB ports, 40 GPIO pins, and an Ethernet port.
The Pi 2 shares many specs with the Pi 1 B+, but it uses a 900MHz quad-core ARM
Cortex-A7 CPU and has 1GB RAM.
The Pi 3 Model B was launched in February 2016; it uses a 1.2GHz 64-bit quad-core
ARM Cortex-A53 CPU, has 1GB RAM, integrated 802.11n wireless LAN, and
Bluetooth 4.1.
Pi Zero is half the size of a Model A+, with a 1 GHz single-core CPU and 512MB
RAM, and mini-HDMI and USB On-The-Go ports.
All of these Raspberry Pi Models share the following features:
Operating Systems: Raspbian RaspBMC, Arch Linux, Rise OS, OpenELEC Pidora
Video Output: HDMI Composite RCA
Supported Resolutions: 640x350 to 1920x1200, including 1080p, PAL & NTSC
standards Power Source: Micro USB
System on Chip is a microchip that has all the components required to power a
computer.
A complex IC that integrates the major functional elements into a single chip or
chipset.
programmable processor
on-chip memory
accelerating function hardware (e.g. GPU)
both hardware and software
analog components
Benefits of SoC
Reduce overall system cost
Increase performance
Lower power consumption
Reduce size
CPU
ARM 1176JZF-S (armv6k) 700MHz
RISC Architecture and low power draw
Not compatible with traditional PC software
GPU
Broadcom Video IV
Specialized graphical instruction sets
RAM
(Model B rev.2)
General Purpose Input/output (GPIO)
General Purpose Input/output (GPIO) is a generic pin on a chip whose behavior can be
controlled by the user at run time.
we can connect switches and simple sensors to a pin and check whether it is open
or closed (that is, activated or not)
Broadcom BCM2387
Processor chipset.
1.2GHz Quad-Core ARM Cortex-A53
802.11 b/g/n Wireless LAN and Bluetooth 4.1 (Bluetooth
Classic and LE)
Dual Core VideoCore IV® Multimedia Co-Processor. Provides
GPU Open GL
ES 2.0, hardware-accelerated OpenVG, and 1080p30 H.264
high-profile
decode.
Capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture
filtering and
DMA infrastructure
Memory 1GB LPDDR2
Operating System Boots from Micro SD card, running a version of the Linux
operating system or
Windows 10 IoT
Dimensions 85 x 56 x 17mm
Micro USB socket 5V1,
Power 2.5A
Connectors:
10/100 BaseT Ethernet
Ethernet socket
Video Output HDMI (rev 1.3 & 1.4
Composite RCA (PAL and
NTSC)
Audio Output 3.5mm jack,
Audio Output HDMI
USB 4 x USB 2.0
Connector
GPIO Connector 40-pin 2.54 mm (100 mil) expansion header: 2x20 strip
Providing 27 GPIO pins as well as +3.3 V, +5 V and GND
supply lines
Camera Connector 15-pin MIPI Camera Serial Interface (CSI-2)
Display Serial Interface (DSI) 15 way flat flex cable connector
Display Connector with two data
lanes and a clock lane
The SD card is important because this is where the Raspberry Pi keeps its operating
system and is also where you will store your documents and programs. The minimum size
card which is available is 4GB and this is enough to store the data required to implement this
project.
One of the great things about the Raspberry Pi is that it has a GPIO connector to
which you can attach external hardware.
The GPIO connector actually has a number of different types of connection on them.
There are:
1. True GPIO (General Purpose Input Output) pins that you can use to turn LEDs on and off
etc.
2. I2C interface pins that allow you to connect hardware modules with just two control pins.
3. SPI interface with SPI devices, a similar concept to I2C but a different standard
4. Serial Rx and Tx pins for communication with serial peripherals
In addition, some of the pins can be used for PWM (pulse Width Modulation) for power
control and another type of pulse generation for controlling servo motors called PPM (Pulse
Position Modulation).
As well as supplying power (GND, 3.3V and 5V) all the GPIO pins can be used as
either digital inputs or outputs. The pins labeled SCL and SDA can be used for I2C. The pins
labeled MOSI, MISO and SCKL can be used to connect to high speed SPI devices. All the
pins have 3.3V logic levels and are not 5V-safe so the output levels are 0-3.3V and the inputs
should not be higher than 3.3V. For connecting a 5V output to a Pi input we can make use of
a level shifter.
After setting up the pi the following commands have to be run in the LX terminal window so
as to configure the GPIO pins and for updating. The commands are:
The purpose of this file is to explain the HC-SR04 works. it will give an brief
explanation of how ultrasonic sensors work in general it will also explain how to wire the
sensor setup upto a microcontroller and how to take/ interpret readings. It will also discuss
some sources of errors and bad readings.
Ultrasonic sensors use sound to determine the distance between the sensor and the
closest object in its path. How do ultrasonic sensors do this? Ultrasonic sensors are
essentially sound sensors, but they operate at a frequency above human hearing.
The sensor sends out a sound wave at a specific frequency. It then listens for that
specific sound wave to bounce off of an object and come back (Figure 5.1.4.2). The sensor
keeps track of the time between sending the sound wave and the sound wave returning. If
you know how fast something is going and how long it is traveling you can find the distance
traveled with equation 1.
Equation 1. D = V × T (5.1.4.1)
The speed of sound can be calculated based on the variety of atmospheric conditions,
including temperature, humidity and pressure. Actually calculating the distance will be
shown later on in this document. It should be noted that ultrasonic sensors have a cone of
detection, the angle of this cone varies with distance, and Figure 5.1.4.3 show this relation. The
ability of a sensor to detect an object also depends on the objects orientation to the sensor. If
an object doesn’t present a flat surface to the sensor then it is possible the sound wave will
bounce off the object in a way that it does not return to the sensor.
5.1.4.1 Specifications:
The sensor chosen for the Firefighting Drone Project was the HC-SR04. This section
contains the specifications and why they are important to the sensor module. The sensor
modules requirements are as follows.
Cost
Weight
Community of hobbyists and support
Accuracy of object detection
Probability of working in a smoky environment
Ease of use
The HC-SR04 Specifications are listed below. These specifications are from the Cytron
Technologies HC-SR04 User’s Manual (source 1).
The HC-SR04’s best selling point is its price; It can be purchased at around $2 per unit.
sonic burst at 40 kHz. After a sonic burst has been sent the ECHO pin will go HIGH. The
ECHO pin is the data pin -- it is used in taking distance measurements. After an ultrasonic
burst is sent the pin will go HIGH, it will stay high until an ultrasonic burst is detected back,
at which point it will go LOW.
The HC-SR04 can be triggered to send out an ultrasonic burst by setting the TRIG pin to
HIGH. Once the burst is sent the ECHO pin will automatically go HIGH. This pin will
remain HIGH until the burst hits the sensor again. You can calculate the distance to the
object by keeping track of how long the ECHO pin stays HIGH. The time ECHO stays HIGH
is the time the burst spent traveling. Using this measurement in equation 1 along with the
speed of sound will yield the distance travelled. A summary of this is listed below, along
with a visual representation in Figure 2.
5.1.5 DC MOTORS:
Whenever a robotics hobbyist talk about making a robot, the first thing comes to his
mind is making the robot move on the ground. And there are always two options in front of
the designer whether to use a DC motor or a stepper motor. When it comes to speed, weight,
size, cost... DC motors are always preferred over stepper motors. There are many things
which you can do with your DC motor when interfaced with a microcontroller. For example
you can control the speed of motor; you can control the direction of rotation. Rather of being
cheap, they only increase the size of the design b ard, which camisole time is not required so
using a small 16 pin IC is preferred for this purpose.
In this part of tutorial we will learn to interface and control of a DC motor with a
microcontroller. Usually H‐bridge is preferred way of interfacing a DC motor. These days
many IC manufacturers have H‐bridge motor driver available in the market like L293D is st
used H‐ Bridge driver IC. H‐bridge can also be made with the help of transistors and
MOSFETs etc.
The DC motors don’t have enough torque to drive a robot directly by connecting
wheels in it.
Gears are used to increase the torque of dc motor on the expense of its speed.
Mathematical interpretation:
Rotational power (Pr) is given by:
Pr =Torque (T) * Rotational Speed (ω)
Thus
Note:
In toy car, there a gear box that contains several combinations of gears.
As you can see in the figure above there are four switching elements named as "High
side left", "High side right", "Low side right", "Low side left". When these switches are
turned on in pairs motor changes its direction accordingly. Like, if we switch on High side
left and Low side right then motor rotate in forward direction, as current flows from P\power
supply through the motor coil goes to ground via switch low side right. This is shown in the
figure below.
Similarly, when you switch on low side left and high side right, the current flows in
pposite direction and motor rotates in backward direction. This is the basic working of H‐
Bridge. We can also make a small truth table according to the switching of H‐Bridge
explained above.
L293D a dual H‐Bridge motor Vision Robot driver, so with one IC we can interface
two DC motors which can be controlled in both clockwise and counter clockwise direction
and if you have motor with fix direction of motion. You can make use of all the four I/Os to
connect up to four DC motors. L293D has output current of 600mA and peak output current
of 1.2A per channel. Moreover for protection of circuit from back EMF output diodes are
included within the IC the output supply (VCC2) has a wide range from 4.5V to 36V, which
has made L293D a best choice for DC motor driver.
Whenever a robotics hobbyist talk about making a robot, the first thing comes to his
mind is making the robot move on the ground. And there are always two options in front of
the designer whether to use a DC motor or a stepper motor. When it comes to speed, weight,
size, cost...
DC motors are always preferred over stepper motors. There are many things which
you can do with your DC motor when interfaced with a microcontroller. For example you
can control the speed of motor; you can control the direction of rotation. Rather of being
cheap, they only increase the size of the design b ard, which camisole times not required so
using a small 16 pin IC is preferred for this purpose. In this part of tutorial we will learn to
interface and control of a DC m t r with a microcontroller. Usually H‐bridge is preferred way
of interfacing a DC motor. These days many IC manufacturers have H‐bridge motor driver
available in the market like L293D is used H‐ Bridge driver IC. H‐bridge can also be made
with the help of transistors and MOSFETs etc.
Pin
Function Name
No
1 Enable pin for Motor 1; active high Enable 1,2
2 Input 1 for Motor 1 Input 1
3 Output 1 for Motor 1 Output 1
4 Ground (0V) Ground
5 Ground (0V) Ground
6 Output 2 for Motor 1 Output 2
7 Input 2 for Motor 1 Input 2
8 Supply voltage for Motors; 9-12V (up to 36V) Vcc 2
9 Enable pin for Motor 2; active high Enable 3,4
10 Input 1 for Motor 1 Input 3
11 Output 1 for Motor 1 Output 3
12 Ground (0V) Ground
13 Ground (0V) Ground
14 Output 2 for Motor 1 Output 4
15 Input2 for Motor 1 Input 4
16 Supply voltage; 5V (up to 36V) Vcc 1
Table 5.1.6.1: Pin Description
As you can see in the circuit, three pins are needed for interfacing a DC motor (A, B,
Enable). If you want the o/p to be enabled completely then you can connect Enable to VCC
and only 2 pins needed from controller to make the motor work. As per the truth mentioned
in the image above it’s fairly simple to program the microcontroller. It’s also clear from the
truth table of BJT circuit and L293D the programming will be same for both of them, just
keeping in mind the allowed combinations of A and B.
PIR sensors allow you to sense motion, almost always used to detect whether a
human has moved in or out of the sensors range. They are small, inexpensive, low-power,
easy to use and don't wear out. For that reason they are commonly found in appliances and
gadgets used in homes or businesses. They are often referred to as PIR, "Passive Infrared",
"Pyroelectric", or "IR motion" sensors. PIRs are basically made of a pyroelectric sensor
(which you can see below as the round metal can with a rectangular crystal in the center),
which can detect levels of infrared radiation. Everything emits some low level radiation, and
the hotter something is, the more radiation is emitted. The sensor in a motion detector is
actually split in two halves. The reason for that is that we are looking to detect motion
(change) not average IR levels. The two halves are wired up so that they cancel each other
out. If one half sees more or less IR radiation than the other, the output will swing high or
low.
Chip takes the output of the sensor and does some minor processing on it to emit
a digital output pulse from the analog sensor.
Our new PIRs have more adjustable settings and have a header installed in
the 3-pin ground/out/power pads
For many basic projects or products that need to detect when a person has left or
entered the area, or has approached, PIR sensors are great. They are low power and low cost,
pretty rugged, have a wide lens range, and are easy to interface with. Note that PIRs won't
tell you how many people are around or how close they are to the sensor, the lens is often
fixed to a certain sweep and distance (although it can be hacked somewhere) and they are
also sometimes set off by house pets. Experimentation is key!
The PIR sensor itself has two slots in it, each slot is made of a special material that is
sensitive to IR. The lens used here is not really doing much and so we see that the two slots
can 'see' out past some distance (basically the sensitivity of the sensor). When the sensor is
idle, both slots detect the same amount of IR, the ambient amount radiated from the room or
walls or outdoors. When a warm body like a human or animal passes by, it first intercepts
one half of the PIR sensor, which causes a positive differential change between the two
halves. When the warm body leaves the sensing area, the reverse happens, whereby the
sensor generates a negative differential change. These change pulses are what is detected.
The DHT11 is a basic, low-cost digital temperature and humidity sensor. It uses a
capacitive humidity sensor and a thermistor to measure the surrounding air, and spits out a
digital signal on the data pin (no analog input pins needed). It’s 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.
5.1.8.1 Features:
5.1.8.2 Specifications:
Request: To make the DHT-11 to send you the sensor readings you have to send it a
request. The request is, to pull down the bus for more than 18ms in order to give
DHT time to understand it and then pull it up for 40uS.
Response: What comes after the request is the DHT-11 response. This is an
automatic reply from DHT which indicates that DHT received your request. The
response is ~54uS low and 80uS high.
Data Reading: What will come after the response is the sensor data. The data will be
packed in a packet of 5 segments of 8-bits each. Totally 5×8 =40bits.
This Moisture Sensor uses Immersion Gold which protects the nickel from oxidation.
Electroless nickel immersion gold (ENIG) has several advantages over more conventional
(and cheaper) surface plating such as HASL (solder), including excellent surface planarity
(particularly helpful for PCB's with large BGA packages), good oxidation resistance, and
usability for untreated contact surfaces such as membrane switches and contact points. This
Moisture Sensor can read the amount of moisture present in the soil surrounding it. It's a low
tech sensor, but ideal for monitoring an urban garden, or your pet plant's water level. This is
a must have tool for a connected garden!
This Moisture Sensor can be used to detect the moisture of soil or judge if there is
water around the sensor, let the plants in your garden reach out for human help. They can be
very to use, just insert it into the soil and then read it. With help of this sensor, it will be
realizable to make the plant remind you: Hey, I am thirsty now, please give me some water.
This Moisture Sensor uses the two probes to pass current through the soil, and then it reads
that resistance to get the moisture level. More water makes the soil conduct electricity more
easily (less resistance), while dry soil conducts electricity poorly (more resistance).
It will be helpful to remind you to water your indoor plants or to monitor the soil
moisture in your garden. The IO Expansion Shield is the perfect shield to connect this senor
to Arduino. This item has low power consumption, and high sensitivity, which are the
biggest characteristics of this mdoule. This item can be compatible with Arduino UNO、
Arduino mega2560、Arduino ADK etc.
5.1.9.1 Features:
Working voltage: 5V
Working Current: <20ma
Interface: Analog
Depth of detection: 37mm
Working Temperature: 10℃~30℃
Weight: 3g
Size: 63×20×8mm
Arduino compatible interface
Low power consumption
High sensitivity
Output voltage signal: 0~4.2V
Department Of Mechatronics Engineering, The Oxford College Of Engineering Page 49
MULTIFARIOUS ENDEAVOUR AGROBOT
5.1.9.1 Characteristics:
5.1.10 BUZZER:
5.1.10.1 Specifications:
HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for
transparent wireless serial connection setup. Serial port Bluetooth module is fully qualified
Bluetooth V2.0+EDR (Enhanced Data Rate) 3Mbps Modulation with complete 2.4GHz radio
transceiver and baseband. It uses CSR Bluecore 04-External single chip Bluetooth system
with CMOS technology and with AFH(Adaptive Frequency Hopping Feature). It has the
footprint as small as 12.7mmx27mm. Hope it will simplify your overall design/development
cycle
5.1.11.1 Specifications:
Hardware features
Typical -80dBm sensitivity
Up to +4dBm RF transmit power
Low Power 1.8V Operation, 1.8 to 3.6V I/O
PIO control
UART interface with programmable baud rate
With integrated antenna
With edge connector
Software features
Default Baud rate: 38400, Data bits:8, Stop bit:1,Parity:No parity, Data control: has.
Auto-connect to the last device on power as default.
Permit pairing device to connect as default.
Auto-pairing PINCODE:”0000” as default
Auto-reconnect in 30 min when disconnected as a result of beyond the range of
connection.
5.1.11.2 HARDWARE:
Verify
Checks your code
for errors compiling
it.
Upload
Compiles your code and uploads it to the configured board. See
Note: If you are using an external programmer with your board, you can
hold down the "shift" key on your computer when using this icon. The
text will change to "Upload using Programmer"
New
Creates a new sketch.
Open
Presents a menu of all the sketches in your sketchbook. Clicking one
will open it within the current window overwriting its content.
Note: due to a bug in Java, this menu doesn't scroll; if you need to open
a sketch late in the list, use the File | Sketchbook menu instead.
Save
Saves your sketch.
Serial Monitor
Opens the serial monitor.
5.2.1.1 File:
New
Creates a new instance of the editor, with the bare minimum structure of a sketch
already in place.
Open
Allows loading a sketch file browsing through the computer drives and folders.
OpenRecent
Provides a short list of the most recent sketches, ready to be opened.
Sketchbook
Shows the current sketches within the sketchbook folder structure; clicking on any
name opens the corresponding sketch in a new editor instance.
Examples
Any example provided by the Arduino Software (IDE) or library shows up in this
menu item. All the examples are structured in a tree that allows easy access by topic
or library.
Close
Closes the instance of the Arduino Software from which it is clicked.
Save
Saves the sketch with the current name. If the file hasn't been named before, a name
will be provided in a "Save as...” window.
Saveas...
Allows saving the current sketch with a different name.
PageSetup
It shows the Page Setup window for printing.
Print
Sends the current sketch to the printer according to the settings defined in Page Setup.
Preferences
Opens the Preferences window where some settings of the IDE may be customized,
as the language of the IDE interface.
Quit
Closes all IDE windows. The same sketches open when Quit was chosen will be
automatically reopened the next time you start the IDE.
5.2.1.2 Edit:
Undo/Redo
Goes back of one or more steps you did while editing; when you go back, you may go
forward with Redo.
Cut
Removes the selected text from the editor and places it into the clipboard.
Copy
Duplicates the selected text in the editor and places it into the clipboard.
CopyforForum
Copies the code of your sketch to the clipboard in a form suitable for posting to the
forum, complete with syntax coloring.
CopyasHTML
Copies the code of your sketch to the clipboard as HTML, suitable for embedding in
web pages.
Paste
Puts the contents of the clipboard at the cursor position, in the editor.
SelectAll
Selects and highlights the whole content of the editor.
Comment/Uncomment
Puts or removes the // comment marker at the beginning of each selected line.
Increase/DecreaseIndent
Adds or subtracts a space at the beginning of each selected line, moving the text one
space on the right or eliminating a space at the beginning.
Find
Opens the Find and Replace window where you can specify text to search inside the
current sketch according to several options.
FindNext
Highlights the next occurrence - if any - of the string specified as the search item in
the Find window, relative to the cursor position.
FindPrevious
Highlights the previous occurrence - if any - of the string specified as the search item
in the Find window relative to the cursor position.
4.2.1.3 Sketch:
Verify/Compile
Checks your sketch for errors compiling it; it will report memory usage for code and
variables in the console area.
Upload
Compiles and loads the binary file onto the configured board through the configured
Port.
UploadUsingProgrammer
This will overwrite the bootloader on the board; you will need to use Tools > Burn
Boot loader to restore it and be able to Upload to USB serial port again. However, it
allows you to use the full capacity of the Flash memory for your sketch. Please note
that this command will NOT burn the fuses. To do so a Tools -> Burn Boot loader
command must be executed.
ExportCompiledBinary
Saves a .hex file that may be kept as archive or sent to the board using other tools.
ShowSketchFolder
Opens the current sketch folder.
IncludeLibrary
Adds a library to your sketch by inserting #include statements at the start of your
code. For more details, see libraries below. Additionally, from this menu item you
can access the Library Manager and import new libraries from .zip files.
AddFile...
Adds a source file to the sketch (it will be copied from its current location). The new
file appears in a new tab in the sketch window. Files can be removed from the sketch
using the tab menu accessible clicking on the small triangle icon below the serial
monitor one on the right side o the toolbar.
5.2.1.4 Tools:
AutoFormat
This formats your code nicely: i.e. indents it so that opening and closing curly braces
line up, and that the statements inside curly braces are indented more.
ArchiveSketch
Archives a copy of the current sketch in .zip format. The archive is placed in the same
directory as the sketch.
FixEncoding&Reload
Fixes possible discrepancies between the editor char map encoding and other
operating systems char maps.
SerialMonitor
Opens the serial monitor window and initiates the exchange of data with any
connected board on the currently selected Port. This usually resets the board, if the
board supports Reset over serial port opening.
Board
Select the board that you're using. See below for descriptions of the various boards.
Port
This menu contains all the serial devices (real or virtual) on your machine. It should
automatically refresh every time you open the top-level tools menu.
Programmer
For selecting a hardware programmer when programming a board or chip and not
using the onboard USB-serial connection. Normally you won't need this, but if you're
burning a boot loader to a new microcontroller, you will use this.
BurnBootloader
The items in this menu allow you to burn a boot loader onto the microcontroller on an
Arduino board. This is not required for normal use of an Arduino or Genuino board
but is useful if you purchase a new ATmega microcontroller (which normally comes
without a boot loader). Ensure that you've selected the correct board from the Boards
menu before burning the boot loader on the target board. This command also set the
right fuses.
Raspbian is a Debian-based computer operating system for Raspberry Pi. There are several
versions of Raspbian including Raspbian Stretch and Raspbian Jessie. Since 2015 it has been
officially provided by the Raspberry Pi Foundation as the primary operating system for the
family of Raspberry Pi single-board computers.Raspbian was created by Mike Thompson
and Peter Green as an independent project. The initial build was completed in June 2012. The
operating system is still under active development. Raspbian is highly optimized for the
Raspberry Pi line's low-performance ARM CPUs.
Raspbian is a free operating system based on Debian optimized for the Raspberry Pi
hardware. An operating system is the set of basic programs and utilities that make your
Raspberry Pi run. However, Raspbian provides more than a pure OS: it comes with over
35,000 packages, pre-compiled software bundled in a nice format for easy installation on
your Raspberry Pi.
The initial build of over 35,000 Raspbian packages, optimized for best performance on the
Raspberry Pi, was completed in June of 2012. However, Raspbian is still under active
development with an emphasis on improving the stability and performance of as many
Debian packages as possible.
Note: Raspbian is not affiliated with the Raspberry Pi Foundation. Raspbian was created by a
small, dedicated team of developers that are fans of the Raspberry Pi hardware, the
educational goals of the Raspberry Pi Foundation and, of course, the Debian Project.
CHAPTER 6:
COST ESTIMATION
6 L293D 150
7 Hc-05 400
9 Motor 260
10 LDR 400
11 DNT 11 300
14 Light 30
16 Fan 200
19 SD Card 650
Chapter 7:
APPLICATIONS
7.1 CROP MONITORING:
Chapter 8:
ADVANTAGES
Chapter 9:
CONCLUSION
To depreciate the extensive use of resources and there by effectively fixing the outcome
caused by miss management of resources. To be used in mundane task requiring more labour
force & also increase in the efficiency of the overall yield. To detect burglars entering to the
warehouse and to trenchantly store the harvested outturn by controlling the ambient
temperature.
Chapter 10:
RESULT
The temperature values are updated to the thing speak cloud through Wi-Fi module
The humidity values measured by the DHT11 sensor are updated to the thing speak
cloud
The light intensity values are measured by LDR sensor and updated to the thingspeak
cloud through wifi module
Chapter 11:
REFERENCES
S.R Nandurkar, V.R. Thool R.C Thool, “Design and development of precision
agriculture system using wireless sensor network”, IEEE International conference on
automation, control, energy and systems (ACES), 2014. [1]
Joaquin Gutierrez, Juan Francisco Villa-Medina, Alejandra Nieto-Garibay, and
Miguel Angel Porta-Gándara, “Automated Irrigation System Using a Wireless Sensor
Network and GPRS Module”, IEEE TRANSACTIONS ON INSTRUMENTATION
AND MEASUREMENT. [2]
Y. kim, R.Evans & W. Iversen, “Remote sensing and control of an irrigation system
using a distributed wireless sensor Network” , IEEE Transactions on instrumentation
and Measurement, pp 1379-1387, 2008[4]
Hayes, J.; Crowley, K.; Diamond, D. Simultaneous web-based real-time temperature
monitoring using multiple wireless sensor networks. Sensors IEEE, October
30November 3, 2005.[5]