Sie sind auf Seite 1von 42

SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 1
INTRODUCTION

1.1 Introduction
Agriculture is one of the most vital perspectives in human exercises around the world.
Agriculture is about the art of farming that contains growing of the crops through soil
cultivating and providing foods, fleece and different products. Ever since the agriculture
was born, farmers have been experienced such different problems in their everyday lives.
Farmers are facing new challenges on how they will retain their crops and animals to be
healthy. Agriculture is highly dependent on the conditions of the climate. The state of the
atmosphere is truly matter for the farmers to produce healthy crops. Furthermore, the
technological development has a gigantic effect to the improvement of agriculture. With the
advent of technology, there are lot of new ideas and more-effective devices that can be
integrated as a whole to implement a system. Innovation is the way to accomplish long haul
destinations and guarantee the logging and monitoring of data within specified set of time.
We are in a world that everything is being automated. Automatic systems are ideal
nowadays because it provides an energy efficiency and minimizes the need for tedious
physical work/lab. Smart farming is gradually used by the agriculturist to make agricultural
production more intelligent. This kind of technology is also called precision agriculture
where the idea is about how will observe, measure and respond to inter and intra-field
variability of crops. With the use of sensors, at the earliest moment, the proponents will
easily detect and monitor the possible abnormalities over specified period of time.
As engineers/developers we always rely upon the data collected to design or
improve a system. Recording data and analysing them is a common practice in most of the
industries, here we are building Arduino Data Logger Project where we will learn how we
can log data at a specific interval of time. We will use an Arduino board to read some data
(here temperature, humidity, date and time) and save them on a SD card and the computer
simultaneously.
The data saved can be easily opened in an excel sheet for further analyses. To
maintain the date and time we will use the famous Real Time Clock (RTC) project module

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

DS3231 and to get the temperature and humidity we will use the DHT11 Sensor. At the end
of this we will learn-
1. How to log data into SD card with date, time and sensor values.
2. How to write data directly to excel sheet on PC via serial communication.
A data logger or a data recorder is an electronic measuring device, logs the data over a
period of time with a sensor, built in instrument or via external instruments. The data logger
measurements may include: temperature and humidity of air, alternating and direct current
and voltage, air pressure, room occupancy, intensity of light, temperature of water, level of
water, water content in soil, dissolved oxygen, measurement of rain, motion of wind and its
path, pulse signals, leaf wetness etc.
Data logging systems are generally based on a computer or any processor that
processes in digital. These are usually little in size, portable, powered by battery and also
they are provided with a computer processor, sensors and memory required for the storage
of data. These are widely used inside the building, outside the building and in submarine
circumstances where the data is required and where there is a convenience of battery power
is preferred, and also they can record data months together at a time, unattended. This
embedded unit may be a single one and self-contained device with existing physical sensors
that detect the available data that fit in the hand, or it may be a multiple-channel device
provided with many external sensors. These systems connect with a computer and use the
particular software to run the data logger to review and determine the collected data, while
other data loggers use a nearby interfacing devices like handheld keyboard or LCD and can
be used as self-contained devices.
The purpose of having data loggers is its capacity to spontaneously collecting data in
24 hours cycle continuously without a break. After activating, the data loggers are left not
attending to measure and log data for the particular date and time. This permits exact and
complete image of the atmospheric conditions which are being observed such as
temperature of air, moisture content in the air, pressure and solar insolation and many more
parameters. The price of data loggers is varying day by day as the science and technology is
improving and it depends on the number of channels. As the number of channels reduce, the
cost reduces. Data loggers with simple and single channel cost as minimum as $25. The
more complex data loggers may cost very high.

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 2
SYSTEM COMPONENTS

2.1 Components Required


It consists of the components which are as follows:
Table 2.1: Components List
S.NO ITEM REQUIRED COST(in Rupees)

1. Breadboard 60

2. Arduino UNO 350

3. DHT11 Temperature sensor 50

4. DS3231 RTC module 50

5. Connecting wires 40

6. Battery 20

7. Arduino Ethernet shield 600

2.2 Arduino
The Arduino Uno is a microcontroller board based on the ATmega328. It has 14 digital
input/output pins (of which 6 can be used as PWM outputs), 6 Analog inputs, a 16 MHz
crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. It
contains everything needed to support the microcontroller; simply connect it to a computer
with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Uno

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip.
Instead, it features the Atmega16U2 programmed as a USB-to-serial converter. Revision 2
of the Uno board has a resistor pulling the 8U2 HWB line to ground, making it easier to put
into DFU mode. Revision 3 of the board has the following new features:
1. 1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new
pins placed near to the RESET pin, the IOREF that allow the shields to adapt to the voltage
provided from the board. In future, shields will be compatible both with the board that 22
use the AVR, which operate with 5V and with the Arduino Due that operate with 3.3V. The
second one is a not connected pin that is reserved for future purposes.
2. Stronger RESET circuit.
3. Atmega 16U2 replace the 8U2.
"Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The
Uno and version 1.0 will be the reference versions of Arduino, moving forward. The Uno is
the latest in a series of USB Arduino boards, and the reference model for the Arduino
platform; for a comparison with previous versions, see the index of Arduino boards.
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended)
7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output)
Analogue Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by boot loader SRAM 2 KB
(ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz.

Figure 2.1: Arduino Uno

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

2.2.1 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 center-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. The power pins are as follows:
1. 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.
2. 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.
3. 3V3 - A 3.3 volt supply generated by the on-board regulator. Maximum current draw is
50 mA.
4. GND - Ground pins.

2.2.2 Memory
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of
SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).

2.2.3 Input and Output


Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(),
digitalWrite(), and digitalRead() functions. They operate at 5 volts. This is enough current
to brightly light up an LED (don't forget the series resistor), or run many sensors, for
example, but not enough current to run most relays, solenoids, or motors. Each pin can
provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected
by default) of 20-50 kOhms. In addition, some pins have specialized functions:

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

1. 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.
2. External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low
value, a rising or falling edge, or a change in value. See the attachInterrupt() function for
details.
3. PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.
4. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication
using the SPI library.
5. 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 analogue inputs, labelled 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
analogReference() function. Additionally, some pins have specialized functionality:
1. TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire
library.
There are a couple of other pins on the board:
1. AREF - Reference voltage for the analogue inputs. Used with analogReference().
2. 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.

2.2.4 Interfacing
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 ATmega16U2 on
the board channels this serial communication over USB and appears as a virtual com port to
software on the computer. The '16U2 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

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

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.
The Arduino Uno has a number of facilities for communicating with a computer, another
Arduino, or other microcontrollers.

2.2.5 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). The ATmega328 on the Arduino Uno comes preburned with a bootloader 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). To bypass the
boot loader and program the microcontroller through the ICSP (In-Circuit Serial
Programming) header; see these instructions for details. The ATmega16U2/8U2 is loaded
with a DFU boot loader, which can be activated by:
1. On Rev1 boards: connecting the solder jumper on the back of the board (near the map of
Italy) and then resetting the 8U2.
2. On Rev2 or later boards: there is a resistor that pulling the 8U2/16U2 HWB line to
ground, making it easier to put into DFU mode.
Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux)
to load a new firmware can also be used. Or you can use the ISP header with an external
programmer (overwriting the DFU boot loader).

2.2.6 Automatic (Software) Reset


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/16U2 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.

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

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 bootloader 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 labelled "RESET-EN". You may also be able to disable the auto-reset by connecting a
110 ohm resistor from 5V to the reset line.

2.2.7 USB Overcurrent Protection


The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from
shorts and overcurrent. 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.

2.2.8 Physical Characteristics


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.

2.3 DHT11 Temperature Sensor


A humidity sensor senses and measures and regularly reports the relative humidity in the
air. It has both temperature and humidity and is a complex digital measuring signal output.
Relative humidity, expressed as a percent, is the ratio of actual moisture in the air to the
highest amount of moisture air at that temperature can hold. The warmer the air is, the more
moisture it can hold, so relative humidity changes with fluctuations in temperature. DHT 11
technology offers excellent long-term stability and high reliability. It is connected to 8-bit

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

microcontroller. This sensor has a resistive component and also includes a sense of wet
NTC temperature measuring instruments. It has high power, anti-interference capability,
rapid response and quick implementation benefits. DHT 11 is very small in size and works
on a very low power and it is capable to transmit a signal up-to-20 meter. In DHT 11,the
digital output is directly proportional to the humidity and temperature and hence the name
DHT 11 and it is measured by the sensor. Every DHT11 sensor is properly measured in the
laboratory so that the internal OTP memory is used for the storage of calibration coefficient
of DHT 11.

Figure 2.2: DTH11 Sensor

2.3.1 Humidity Sensor


Humidity sensors detect the relative humidity of the immediate environments in which they
are placed. They measure both the moisture and temperature in the air and express relative
humidity as a percentage of the ratio of moisture in the air to the maximum amount that can
be held in the air at the current temperature. As air becomes hotter, it holds more moisture,
so the relative humidity changes with the temperature.
Most humidity sensors use capacitive measurement to determine the amount of
moisture in the air. This type of measurement relies on two electrical conductors with a non-
conductive polymer film laying between them to create an electrical field between them.
Moisture from the air collects on the film and causes changes in the voltage levels between
the two plates. This change is then converted into a digital measurement of the air relative
humidity after taking the air temperature into account.

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

2.3.2 How to Connect Humidity Sensor with Arduino Uno?


Hardware and Software Required
1. Arduino Uno
2. Humidity Sensor DHT11 Module
3. Arduino IDE (1.0.6 version)
Hardware Connections
The Humidity sensor module has 3 pins. The following connections should be made to
connect the sensor module with Arduino.
1. Positive (+) to 5V
2. Negative (-) to Gnd
3. Out to Analog 0 pin of Arduino

Table 2.2: Temperature Sensor DHT-11


DHT-11 Pin Arduino Pin

Vcc 5V

Gnd Gnd

Nc Nc

Out Pin 7

Program for Humidity Sensor


#include<dht.h>
#define dht_dpinA0
dht DHT;
void setuo()
{
Serial.begin(9600);
}
void loop()
{
DHT.read11(dht_dpin);
Serial.print(“current humidity=”);

10

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Serial.print(DHT.humidity);
Serial.print(“%”);
Serial.print(“temperature=”);
Serial.print(DHT.temperature);
Serial.println(“C”);
delay(1000);
}

2.3.3 Reading Data from DHT11


DHT11 is a Temperature come Humidity sensor. It sends the values of temperature and
humidity as an 8-bit data serially through the output pin of the module. The library reads
this data by using the software serial function of the Arduino.
#define DHT11_PIN 7//Sensor output pin is connected to pin 7
dht DHT; //Sensor object named as DHT
void Read DHT11()
{
int chk = DHT.read11(DHT11_PIN);
}
The output pin is connected to pin 7 as example you can choose any pin that supports
Software Serial. Calling DHT.read(pin number); will read the value of temperature and
humidity and store it in the parameter DHT.temperature and DHT.Humidity respectively.

2.4 DS3231 Real Time Clock (RTC) Module


The DS3231 is a low-cost, extremely accurate I2C real-time clock (RTC) with an integrated
temperature compensated crystal oscillator (TCXO) and crystal. The device incorporates a
battery input, and maintains accurate timekeeping when main power to the device is
interrupted. The integration of the crystal resonator enhances the long-term accuracy of the
device as well as reduces the piece-part count in a manufacturing line. The DS3231 is
available in commercial and industrial temperature ranges, and is offered in a 16-pin, 300-
mil SO package.
The RTC maintains seconds, minutes, hours, day, date, month, and year information. The
date at the end of the month is automatically adjusted for months with fewer than 31 days,

11

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

including corrections for leap year. The clock operates in either the 24-hour or 12-hour
format with an AM/PM indicator. Two programmable time-of-day alarms and a
programmable square-wave output are provided. Address and data are transferred serially
through an I2C bidirectional bus. A precision temperature-compensated voltage reference
and comparator circuit monitors the status of VCC to detect power failures, to provide a
reset output, and to automatically switch to the backup supply when necessary.
Additionally, the RST pin is monitored as a pushbutton input for generating a μP reset.

2.4.1 Benefits and Features


1. Highly Accurate RTC Completely Manages All Timekeeping Functions
1. Real-Time Clock Counts Seconds, Minutes, Hours, Date of the Month, Month, Day of
the Week, and Year, with Leap-Year Compensation Valid Up to 2100
2. Accuracy ±2ppm from 0°C to +40°C
3. Accuracy ±3.5ppm from -40°C to +85°C
4. Digital Temp Sensor Output: ±3°C Accuracy
5. Register for Aging Trim
6. RST Output/Pushbutton Reset Debounce Input
7. Two Time-of-Day Alarms
2. Simple Serial Interface Connects to Most Microcontrollers
1. Fast (400 kHz) I2C Interface
3. Battery-Backup Input for Continuous Timekeeping
1. Low Power Operation Extends Battery-Backup Run Time
2. 3.3V Operation
4. Underwriters Laboratories (UL) Recognized

2.4.2 Applications
1. Servers
2. Telematics
3. Utility Power Meters
4. GPS
5. Smart Energy
6. Liquid Crystal Display(LCD)

12

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

2.5 Operating Circuit

Figure 2.3: Pin Diagram of RTC

2.6 Pin Description


1. 32 kHz – 32 kHz Output. This open-drain pin requires an external pullup resistor. When
enabled, the output operates on either power supply. It may be left open if not used.
2. VCC - DC Power Pin for Primary Power Supply. This pin should be decoupled using a
0.1µF to 1.0µF capacitor. If not used, connect to ground.
3. INT/SQW - Active-Low Interrupt or Square-Wave Output. This open-drain pin requires
an external pullup resistor connected to a supply at 5.5V or less. This multifunction pin is
determined by the state of the INTCN bit in the Control Register (0Eh). When INTCN is set
to logic 0, this pin outputs a square wave and its frequency is determined by RS2 and RS1
bits. When INTCN is set to logic 1, then a match between the timekeeping registers and
either of the alarm registers activates the INT/SQW pin (if the alarm is enabled). Because
the INTCN bit is set to logic 1 when power is first applied, the pin defaults to an interrupt
output with alarms disabled. The pullup voltage can be up to 5.5V, regardless of the voltage
on VCC. If not used, this pin can be left unconnected.
4. RST - Active-Low Reset. This pin is an open-drain input/output. It indicates the status of
VCC relative to the VPF specification. As VCC falls below VPF, the RST pin is driven low.
When VCC exceeds VPF, for RST, the RST pin is pulled high by the internal pullup
resistor. The active-low, open-drain output is combined with a debounced pushbutton input
function. This pin can be activated by a pushbutton reset request. It has an internal 50kΩ

13

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

nominal value pullup resistor to VCC. No external pullup resistors should be connected. If
the oscillator is disabled, tREC is bypassed and RST immediately goes high.
5. N.C. - No Connection. Must be connected to ground.
6. GND – Ground
7. VBAT Backup Power-Supply Input. When using the device with the VBAT input as the
primary power source, this pin should be decoupled using a 0.1µF to 1.0µF low-leakage
capacitor. When using the device with the VBAT input as the backup power source, the
capacitor is not required. If VBAT is not used, connect to ground. The device is UL
recognized to ensure against reverse charging when used with a primary lithium battery.
8. SDA Serial Data Input/Output. This pin is the data input/output for the I2C serial
interface. This open-drain pin requires an external pullup resistor. The pullup voltage can be
up to 5.5V, regardless of the voltage on VCC.
9. SCL Serial Clock Input. This pin is the clock input for the I2C serial interface and is used
to synchronize data movement on the serial interface. Up to 5.5V can be used for this pin,
regardless of the voltage on VCC.

2.7 Pin Configuration

Figure 2.4: Pin Configuration of RTC

14

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.5: RTC Module


Most RTCs use a crystal oscillator, but some use the power line frequency. In many cases,
the oscillator's frequency is 32.768 kHz. This is the same frequency used in quartz clocks
and watches, and for the same reasons, namely that the frequency is exactly 215 cycles per
second, is a convenient rate to use with simple binary counter circuits.

2.8 Ethernet Shield W5100


The Wiznet W5100 Ethernet Shield for Arduino allows an Arduino board to connect to the
internet. It is based on the Wiznet W5100 ethernet chip. The Arduino Ethernet Shield
supports up to four simultaneous socket connections. The Wiznet W5100 ethernet chip
provides a network (IP) stack capable of both TCP and UDP. It supports up to four
simultaneous socket connections. The standard Arduino Ethernet library can be used to
write sketches which connect to the internet via a standard RJ45 Ethernet jack using the
shield.
The latest revision of this shield, which adds a micro-SD card slot, that can be used
to store files for serving over the network. It is compatible with the Arduino Uno and Mega.
The on-board SD card can be accessed using the SD library which is included with W5100.
This latest revision of the shield also includes a reset controller, to ensure that the
W5100 Ethernet module is properly reset on power-up. Previous revisions of the shield
were not compatible with the Mega and needed to be manually reset after power-up. The
reset button on the shield resets both the W5100 and the Arduino board.

15

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.6: Arduino Ethernet Shield


Communicating with the W5100 and SD Card is done via the SPI bus (through the ICSP
header). Digital pins 11, 12, and 13 are used on the Duemilanove and pins 50, 51, and 52 on
the Mega. On both boards, pin 10 is used to select the W5100 and pin 4 for the SD card.
These pins cannot be used for general I/O. On the Mega, the hardware SS pin, 53, is not
used to select either the W5100 or the SD card, but it must be kept as an output or the SPI
interface won't work.
The W5100 and SD card share the SPI bus, only one can be active at a time. If you
are using both peripherals in your program, this should be taken care of by the
corresponding libraries. If you're not using one of the peripherals in your program, however,
you'll need to explicitly deselect it. To do this with the SD card, set pin 4 as an output and
write a high to it. For the W5100, set digital pin 10 as a high output.

2.8.1 Features
1. Operating voltage 5V (supplied from the Arduino Board)
2. Ethernet Controller: W5100 with internal 16K buffer
3. Micro-SD card slot
4. Connection speed: 10/100Mb
5. Connection with Arduino on SPI port Requires an Arduino board

2.8.2 How to give Internet Connectivity to Ethernet Shield?


To give connectivity to Ethernet Shield there are two ways by which shield is connected to
the Network:

16

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

1. Direct connection to the Router. There is an RJ-45 port on Router & a straight RJ45
cable to plug Ethernet shield to Router. Now PC/Laptop is also connected to the same
Router either by wire or through Wifi (if Router is WiFi capable).
2. Indirect connection shield is connected to the Laptop’s RJ45 with wire. Now the laptop
is connected to Router through WiFi. In this case you need to bridge the connections or
use the shield as unidentified second network with a different IP.

2.8.3 Ethernet Shield – Connecting with Laptop as a Direct Router


Ethernet shield is connected directly to Router. PC is also connected to the same Router by
WiFi. Router is provided Internet access by the Internet Service Provider ACT.

Figure 2.7: Connection of Router with Ethernet Shield

Figure 2.8: Internet Access by the Ethernet Shield


To start with let us fix the IP of Ethernet shield STATIC, so that it is always the same on
every boot up of Router.
From the PC RUN –> CMD

17

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Type in ipconfig /all


The Default Gateway here is 192.168.0.1 which is the IP of the Router.
All clients connected to this Router will be assigned IP in this range 192.168.0.xxx where
the last byte is from 2 to 255 (allotted on first come basis)

Figure 2.9: CMD Prompt


In the above screenshot we can see (ipV4 address), PC is assigned IP 192.168.0.101. IP is
assigned automatically by Router, only when the DHCP is enabled in Router setting. Type
in any browser 192.168.0.1, the gateway IP is feed in the Router’s username & password
(generally both are “admin”). Under DHCP settings ensure that DHCP is enabled.

Figure 2.10: DHCP enable


Now click on the DHCP CLIENT LIST to know the devices connected to the Router. In this
case 2 devices connected. One is the PC which is allotted IP 192.168.0.101 & the second

18

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

device is Ethernet shield which is allotted 192.160.0.100. Let us change the IP to


192.168.0.150 & make it STATIC.

Figure 2.11: Configure IP to PC and Ethernet Shield


Click on ADDRESS RESERVATION under DHCP & then click ADD NEW

Figure 2.12: Accessing New IP Address


Feed in the MAC address of the Ethernet shield & the reserved IP as 192.168.0.150. The
MAC address is the one which is used in the code. This may be random unless we use more
than one shield in the same network.

19

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.13: Accessing MAC Address to Ethernet Shield


Click on SAVE & then REBOOT the Router to enable the changes made.

Figure 2.14: Save the Changes to Router


Now under DHCP Client list we can see that the shield allotted 192.168.0.150

20

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.15: IP allotted to Ethernet Shield


Ethernet Shield – Connecting with Laptop Instead of Direct Router
First step is to enable SHARING of your existing internet.
Laptop is connected to Router over WIFI.
Open Control Panel –> Network & Internet –> Network & Sharing Center
Click on the existing internet connection

Figure 2.16: Enable Network and Sharing Centre


On the next screen click PROPERTIES and then SHARING

21

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.17: Wireless Network Connection Status


Tick mark to ENABLE SHARING of Internet connection

Figure 2.18: Enable Sharing of Internet Connection


Now plug in the USB cable to Arduino & then connect the RJ45 Straight cable from shield
to the RJ45 Port of LAPTOP.

Figure 2.19: Connect USB Cable to Arduino

22

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

As soon as we connect the RJ45 cable you can see an UNIDENTIFIED NETWORK

Figure 2.20: Connecting to an Unidentified Network


Click on that new Network, select PROPERTIES.
On the next screen double click on Internet Protocol version 4 (TCP/IPV4)

Figure 2.21: TCP/IPV4


We can see an IP address like 192.168.137.1.
Note that this is the new Gateway IP of the new network formed by Ethernet shield. If you
do not see any IP, just select the “Use the following IP” and feed in manually the IP.

23

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Figure 2.22: Gateway IP


Now RUN –> CMD > IPCONFIG /ALL
To verify the IP.
Under Ethernet adapter the Gateway IP of new network is displayed.
Note that this is the GATEWAY IP & Ethernet shield will be allotted IP in this range. [2]

Figure 2.23: New Gateway IP Accessed

24

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 3
PROJECT WORKING

3.1 Working
First of all Arduino sends a high to low start signal to DHT11 with 18µs delay to ensure
DHT’s detection. And then Arduino pull-up the data line and wait for 20-40µs for DHT’s
response. Once DHT detects starts signal, it will send a low voltage level response signal to
Arduino of time delay about 80µs. And then DHT controller pull up the data line and keeps
it for 80µs for DHT’s arranging of sending data.
When data bus is at low voltage level it means that DHT11 is sending response
signal. Once it is done, DHT again makes data line pull-up for 80µs for preparing data
transmission. Data format that is sending by DHT to Arduino for every bit begins with 50µs
low voltage level and length of high voltage level signal determines whether data bit is “0”
or “1”.
One important thing is to make sure pull up resistor value because if we are placing
DHT sensor at <20 meter distance, 5k pull up resistor is recommended. If placing DHT at
longer the 20 meter then use appropriate value pull up resistor. Data loggers in present
market are too costly making them not to be feasible for important but low cost systems.
The data acquired may be important in such systems but the cost of acquisition shoots up
the system cost making it an economic constraint for project developers. The present DAQ
systems are costly, this project intends to develop a product which beats the present market
cost of the DAQ with additional features such as database storage with real time plotting of
collected data. This concept is implemented using microcontrollers and sensor circuits
which are developed and are custom designed as per the physical data to be captured.
Usual 8051 microcontroller uses external ADC which is interfaced with it and
converts the analogue signal fed into digital signal which is then fed to microcontroller for
processing. Here in this project Arduino Microcontroller board is used which has inbuilt
ADC and other peripheral circuitry necessary for operation. The physical parameter is
sensed by the sensors and is converted into analogue signal. This analogue signal is fed to
the Arduino board ADC pins which is then converted in to an equivalent digital quantity
and is further processed in the microcontroller. The raw digital signal or processed signal
out of microcontroller may be displayed on the LCD display or it’s saved in a database or

25

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

even at the same time this data is sent to computer through the USB serial port. The serial
port data is then accessed and is imported in MATLAB, Python or excel for computation
and graphical representation. This developed product can be readily implemented in
industry for logging of any physical quantity such as temperature, humidity or pressure etc.
The project is even suitable for digital signal processing of a physical signal into
computational software like MATLAB or Microsoft excel or even PYTHON.
Working of the Arduino Data Logger is simple. Once the hardware and the software are
ready it is time to burn the program into your Arduino Board. As soon the program gets
uploaded, the temperature and humidity values will start to get stored in your SD card.
Follow the steps below to enable PLX-DAQ to log the into Excel sheet in the computer.
Step 1: Open the “Plx-Daq Spreadsheet” file that was created on the desktop during
installation.
Step 2: If there is a Security block, click on Options->Enable the content -> Finish ->
OK to get the following screen.

Figure 3.1: Spreadsheet of Data logger


Step 3: Now select the baud rate as “9600” and the port to which the Arduino is connected
and click on connect.

Figure 3.2 Data Acquisition for Excel

26

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Now leave this excel sheet open and monitor the values as they get logged. As this is
happening the SD card would also have saved the same values. To check is that is working
simply remove the SD card and open it on the computer. Now find a text file
named “LoggerCD.txt” in it. When opened it would look something like this.

Figure 3.3 Logger CD


This file has data, but it would be hard to analyze them on a notepad. Hence we can open it
on Excel as a CSV (Comma Separated Values) file, thus making it more effective. To open
in excel
1. Open Excel. Click on File->Open and select “All file” at bottom right corner and select
the “Logger CD” file from the SD card. This will open a text import wizard.
2. Click on “Next” and select comma as a delimiter. Click on “Next” again. Then Finish.
3. Now the values will be opened in a Excel file. [1]

Figure 3.4: Data Readings


The logged values for every 5 seconds and you can log them for any desired time by
changing the delay function in the program.

27

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 4
SIMULATION OF PROJECT

4.1 Circuit Diagram


The Arduino consist of 14 digital input/output pins and 6 analog inputs, a 16 MHz crystal
oscillator, a USB connection, a power jack, and a reset button. The DHT consist of 3 pins
that is positive, negative and signal. All the pins of DHT are connected with Arduino pins.
The Arduino digital pin 2 is connected with the signal pin of DHT and GND is connected
with negative of DHT and Positive with 5V.
RTC consist of 4 terminals which are connected to Arduino pins. The SDA and SCL
pins of RTC are connected to A4 and A5 of Arduino.
Ethernet Shield is directly mounted on the pins of Arduino for the internet connection and
the RJ45 cable is used for the connection of Ethernet shield to laptop. We are going to
create the Hotspot from the laptop which works as a new connection for Ethernet shield and
with this the Ethernet shield get the internet connectivity. There is SD card Module in
Ethernet shield which helps to store data in it. The SD card is connected to A4 of Arduino.

Figure 4.1: Circuit Diagram

28

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

4.2 Flow Chart

Figure 4.2: Block Diagram of Proposed Data Acquisition System

4.3 Simulation Steps


We have to write the Arduino program which can do the following.
1. Read data from DTH11 Sensor (or any other data that you wish to log).
2. Initialize the I2C bus to read data from RTC module.
3. Initialize the SPI bus to interface the SD card module with Arduino.
4. Store the Date, Time, Temperature and Humidity into the SD card.
5. Store the Date, Time, Temperature and Humidity on a Excel Sheet running on a
computer/Laptop.
1. Reading Data from DS3231:
DS3231 is a RTC (Real Time Clock) module. It is used to maintain the date and time for
most of the Electronics projects. This module has its own coin cell power supply using
which it maintains the date and time even when the main power is removed or the MCU has
gone through a hard reset. So once we set the date and time in this module it will keep track
of it always.
Note: When using this module for the first time you have to set the date and time.
2. Reading Data from DHT11:
a. Initializing the SC card module:

29

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

Using an SD card with Arduino is easy because of the SD card library which will be added
to the Arduino IDE by default. In the SD card initialize function we will create a text file
named “LoggerCD.txt” and write the first row of our content. Here we separate the values
by using a “,” as a delimiter. Meaning when a comma is placed it means we have to move to
the next cell in the Excel sheet.
b. Writing Data to SD card
As said earlier our intention is to save the Date, Time, Temperature and Humidity into
our SD card. With the help of the DS3231 library and the DHT11 library our Arduino will
be capable of reading all these four parameters and storing them into the following
parameters as shown in table below
c. Writing Data to PLX-DAQ
PLX-DAQ is Microsoft Excel Plug-in software that helps us to write values from Arduino
to directly into an Excel file on our Laptop or PC.
1. We can write and monitor the data at the same time and provides us way to plot them as
graphs. Data loggers in present market are too costly making them not to be feasible for
important but low cost systems.
2. We do not need a RTC Module like DS3231 to keep track of date and time. You can
simply use the date and time running on your Laptop/computer and save them directly on
Excel.
The software can recognize keywords like LABEL, DATA, TIME, DATE etc. In the
Initialize function the keyword “LABEL” is used to write the first ROW of the Excel sheet.

4.4 Programming Coding


Source code is any collection of computer instructions, possibly with comments, written
using a human-readable programming language, usually as plain text.

4.4.1 Code to Create Spreadsheet


/*

* Program to demonstrate Data Logging/Visualisation using Arduino

* ###Connection with SD card module###

* Vcc->5V

30

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

* Gnd->Gnd

* MISO->pin 12

* MOSI->pin 11

* SCK-> pin 13

* CS-> pin 4

* ###Connection with DS3231###

* Vcc->5V

* Gns->Gnd

* SCL->pin A5

* SDA-> pin A4

* ###Connection with DT11###

* Vcc->5V

* Gnd->Gnd

* Out-> pin 7

*/

#include <DS3231.h> //Library for RTC module (Download from Link in article)

#include <SPI.h> //Library for SPI communication (Pre-Loaded into Arduino)

#include <SD.h> //Library for SD card (Pre-Loaded into Arduino)

#include <dht.h> //Library for dht11 Temperature and Humidity sensor (Download from
Link in article)

#define DHT11_PIN 2 //Sensor output pin is connected to pin 7

dht DHT; //Sensor object named as DHT

const int chipSelect = 4; //SD card CS pin connected to pin 4 of Arduino

// Init the DS3231 using the hardware interface

DS3231 rtc(SDA, SCL);

void setup()

31

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

// Setup Serial connection

Serial.begin(9600);

Initialize_SDcard();

Initialize_RTC();

Initialize_PlxDaq();

void loop()

Read_DHT11();

Write_SDcard();

Write_PlxDaq();

delay(5000); //Wait for 5 seconds before writing the next data

void Write_PlxDaq()

Serial.print("DATA"); //always write "DATA" to Indicate the following as Data

Serial.print(","); //Move to next column using a ","

Serial.print("DATE"); //Store date on Excel

Serial.print(","); //Move to next column using a ","

Serial.print("TIME"); //Store date on Excel

Serial.print(","); //Move to next column using a ","

Serial.print(DHT.temperature); //Store date on Excel

Serial.print(","); //Move to next column using a ","

Serial.print(DHT.humidity); //Store date on Excel

Serial.print(","); //Move to next column using a ","

Serial.println(); //End of Row move to next row

32

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

void Initialize_PlxDaq()

Serial.println("CLEARDATA"); //clears up any data left from previous projects

Serial.println("LABEL,Date,Time,Temperature,Humidity"); //always write LABEL, to


indicate it as first line

void Write_SDcard()

// open the file. note that only one file can be open at a time,

// so you have to close this one before opening another.

File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);

// if the file is available, write to it:

if (dataFile) {

dataFile.print(rtc.getDateStr()); //Store date on SD card

dataFile.print(","); //Move to next column using a ","

dataFile.print(rtc.getTimeStr()); //Store date on SD card

dataFile.print(","); //Move to next column using a ","

dataFile.print(DHT.temperature); //Store date on SD card

dataFile.print(","); //Move to next column using a ","

dataFile.print(DHT.humidity); //Store date on SD card

dataFile.print(","); //Move to next column using a ","

dataFile.println(); //End of Row move to next row

dataFile.close(); //Close the file

else

Serial.println("OOPS!! SD card writing failed");

33

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

void Initialize_SDcard()

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

Serial.println("Card failed, or not present");

// don't do anything more:

return;

// open the file. note that only one file can be open at a time,

// so you have to close this one before opening another.

File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);

// if the file is available, write to it:

if (dataFile) {

dataFile.println("Date,Time,Temperature,Humidity"); //Write the first row of the excel file

dataFile.close();

void Initialize_RTC()

// Initialize the rtc object

rtc.begin();

//#### The following lines can be uncommented to set the date and time for the first
time###

/*

rtc.setDOW(FRIDAY); // Set Day-of-Week to SUNDAY

rtc.setTime(18, 46, 45); // Set the time to 12:00:00 (24hr format)

rtc.setDate(6, 30, 2017); // Set the date to January 1st, 2014

34

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

*/

void Read_DHT11()

int chk = DHT.read11(DHT11_PIN);

/*void Read_DateTime()

// Send date

Serial.print(rtc.getDateStr());

Serial.print(" -- ");

// Send time

Serial.println(rtc.getTimeStr());

}*/

/*void Read_TempHum()

Serial.print("Temperature = ");

Serial.println(DHT.temperature);

Serial.print("Humidity = ");

Serial.println(DHT.humidity);

// delay(1000);

}*/

4.4.2 Code to Create Web Server


#include <DHT.h>

#define DHTPIN 2 // what pin we're connected to

// Uncomment whatever type you're using!

35

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

#define DHTTYPE DHT11 // DHT 11

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Connect pin 1 (on the left) of the sensor to +5V

// Connect pin 2 of the sensor to whatever your DHTPIN is

// Connect pin 4 (on the right) of the sensor to GROUND

// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

DHT dht(DHTPIN, DHTTYPE);

#include <SPI.h>

#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.

// The IP address will be dependent on your local network:

byte mac[] = {

0x90, 0xA2, 0xDA, 0x00, 0x23, 0x36 }; //MAC address found on the back of your ethernet
shield.

IPAddress ip(192,168,137,177); // IP address dependent upon your network addresses.

// Initialize the Ethernet server library

// with the IP address and port you want to use

// (port 80 is default for HTTP):

EthernetServer server(80);

void setup() {

// Open serial communications and wait for port to open:

Serial.begin(9600);

while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only

dht.begin();

36

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

// start the Ethernet connection and the server:

Ethernet.begin(mac, ip);

server.begin();

Serial.print("server is at ");

Serial.println(Ethernet.localIP());

void loop() {

// Reading temperature or humidity takes about 250 milliseconds!

// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)

float h = dht.readHumidity();

float t = dht.readTemperature();

// check if returns are valid, if they are NaN (not a number) then something went wrong!

if (isnan(t) || isnan(h)) {

Serial.println("Failed to read from DHT");

} else {

Serial.print("Humidity: ");

Serial.print(h);

Serial.print(" \t");

Serial.print("Temperature: ");

Serial.print(t);

Serial.println(" *C");

// listen for incoming clients

EthernetClient client = server.available();

if (client) {

Serial.println("new client");

// an http request ends with a blank line

37

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

boolean currentLineIsBlank = true;

while (client.connected()) {

if (client.available()) {

char c = client.read();

Serial.write(c);

// if you've gotten to the end of the line (received a newline

// character) and the line is blank, the http request has ended,

// so you can send a reply

if (c == '\n' && currentLineIsBlank) {

// send a standard http response header

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println("Connection: close"); // the connection will be closed after completion of the


response

client.println("Refresh: 5"); // refresh the page automatically every 5 sec

client.println();

client.println("<!DOCTYPE HTML>");

client.println("<html>");

// output the value of the DHT-11

client.println("<H2>");

client.print("Humidity: ");

client.println("</H2>");

client.println("<p />");

client.println("<H1>");

client.print(h);

client.print(" \t");

client.println("</H1>");

38

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

client.println("<p />");

client.println("<H2>");

client.print("Temperature: ");

client.println("</H2>");

client.println("<H1>");

client.print(t*1.8+32);

client.println(" &#176;");

client.println("F");

client.println("</H1>");

client.println("</html>");

break;

if (c == '\n') {

// you're starting a new line

currentLineIsBlank = true;

else if (c != '\r') {

// you've gotten a character on the current line

currentLineIsBlank = false;

// give the web browser time to receive the data

delay(1);

// close the connection:

client.stop();

Serial.println("client disonnected");

39

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

4.5 Results

Figure 4.3: Final Project

4.6 Application
1. This system can be altered marginally to log and record other physical signals rather than
temperature, humidity or pressure in requisite application.
2. Data acquired can be imported further into computational software like MATLAB,
Python for mathematical computations.
3. Multiple channel Data Logger can be implemented using collective number of sensors as
per sensing parameter and sensor specifications.

4.7 Advantages
1. Readings are accurate because there is no human error involve.
2. It automatically gives report to the user.

4.8 Disadvantages
1. If something goes wrong, you are the only person who can put it right. All updates need
to be done by you.
2. If you temporarily loose your internet connection or power your website will be offline.

40

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 5
FUTURE SCOPE AND CONCLUSION
5.1 Future Scope
1. This system can be altered marginally to log and record other physical signals rather than
temperature, humidity or pressure in requisite application.
2. Product can be custom build to suit prerequisite accuracy and precision of measurement
by upgrading the analog to digital converter rather than using inbuilt 10 bit converter
embedded in microcontroller.
3. Data acquired can be imported further into computational software’s like MATLAB,
Python for mathematical computations.
4. Multiple channel data acquition can be implemented using collective number of sensors
connected to analog or digital inputs respectively as per sensing parameter and sensor
specifications.

5.2 Conclusion
1. The system is fully automated and once it is setup no human intervention is required for
monitoring. This will also reduce errors in measurements as because many times human
intervention leads to errors.
2. Designed system consumes very less power so this is also power efficient

41

Dept. of E&C, PCE


SOIL MOISTURE DATA LOGGER AND WEB SERVER USING ARDUINO

CHAPTER 6
REFERENCES

[1] Karthik Krishnamurthi, Suraj Thapa, Lokesh Kothari, Arun Prakash, March 2015,
“Arduino Based Weather Monitoring System”, International Journal of Engineering
Research and General Science Volume 3, Issue 2.
[2] Ms. Vaishali Dhawale, Prof. S.M. Turkane “Data logger system Based on Web
Server” Ms. Vaishali Dhawale et al Int. Journal of Engineering Research and
Applications ISSN: 2248-9622, Vol. 4, Issue 1( Version 3), January 2014,pp.212-
215.

42

Dept. of E&C, PCE

Das könnte Ihnen auch gefallen