0% found this document useful (0 votes)
12 views94 pages

Bore Bot Final Report

The document discusses the development of a robotic system designed for the safe rescue of children trapped in abandoned bore wells in India. It highlights the inefficiencies and dangers of traditional rescue methods, proposing a robot that can monitor the child, supply oxygen, and safely extract them without causing injury. The robot features an adaptive design, advanced sensors, and a gripper mechanism to ensure a quick and safe rescue operation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views94 pages

Bore Bot Final Report

The document discusses the development of a robotic system designed for the safe rescue of children trapped in abandoned bore wells in India. It highlights the inefficiencies and dangers of traditional rescue methods, proposing a robot that can monitor the child, supply oxygen, and safely extract them without causing injury. The robot features an adaptive design, advanced sensors, and a gripper mechanism to ensure a quick and safe rescue operation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 94

ROBOT FOR BOREWELL RESCUE

.
ABSTRACT

In the past few years, there have been several accidents of children falling into abandoned bore
wells in India. Abandoned bore wells that have turned into death pits for children. The problem
is all over India. Rescue teams spend hours and sometimes days in futile attempts to save these
little kids. A lot of money is also spent in these missions. In most cases they are unable to save
the kids. Such events have happened umpteen times in the past, and every time either the
government or the bureaucracy is blamed. The rescue process to save the child from bore well is
a long and complicated process now. The rescue team tries to approach the victim from a
parallel well that take about 20-60 hours to dig. This complicated process makes 70% of the
rescue operations fail. Very few of the victims have been saved in such accidents. Recently
some autonomous robots came on to screen to take out the trapped body in a systematic way.
But the question rises, why these bots are not in action in the real world. This brings out safety
that how far the robot handles the child safely. The rescue operation mainly consists of three
processes; Approaching the Child, Handling the body, Taking child out of the well. A regular
autonomous robot could easily perform the first and third operations. These bots can make up
these two steps within few minutes. But there is a great chance for injury of victim as they try
hooking up body organs and cloths. Our Project deals with extreme Safe Handling of the victim.
The design of handling system is made in such a way that the baby/victim never gets hurt and
the robot itself provides some pretreatment to make the baby survive till the end of operation.
Our Robot design constitutes a best Ergonomic Design and performs safest rescue operation.

INTRODUCTION:
Children often fall down in the borewell which have been left uncovered and get trapped. The
rescue of this trapped children is not only difficult but also risky. A small delay in the rescue
can cost the child his or her life. To lift the child out the narrow confines of the bore wells is
also not very easy. The child who has suffered the trauma of the fall and is confined to a small
area where, with a passage of time the supply of oxygen is also reduces.
Robot for borewell rescue offers a solution to these kind of situations. It is fast, economical and
safe. Moreover, it has the facility to monitor the trapped child, supply oxygen and provide a
supporting platform to lift up the child.

Today’s major problem faced by human society is water scarcity, which leads to a large number
of bore wells being sunk. These bore wells in turn have started to take many innocent lives.
Bores which yielded water and subsequently got depleted are left uncovered. Small children
without noticing the hole dug for the bore will slip in and get trapped. There is no proper
technique to rescue victims of such accidents. When the make shift local arrangements do not
work. In most cases reported so far, a parallel hole is dug and then horizontal path is made to
reach to the subject’s body. It is not only a time taking process, but also risky in various ways.
Moreover, it involves a lot of energy and expensive resources which are not easily available
everywhere and in this process, we always need big space around the trapped bore that we can
dig a parallel bore. These ad-hoc approaches involve heavy risks, including the possibility of
injuries to the body of the subject during the rescue operation. Also, the body may trap further in
the debris and the crisis deepens even more means death. In most cases, we rely on some make
shift arrangements. This does not assure us of any long term solution. In such methods some
kind of hooks are employed to hold the sufferers clothes and body. This may cause wounds on
the body of the subject. After studying all the cases we found a serious issue to do, to make a
such robotic. machine which can go through the trapped bore well without any support and
grasp the trapped body at least minimum time with providing facilities of oxygen cylinder,
safety balloon. With this machine, there is no chance of damaging human body and other minor
damages, and we called that machine as “Bore Well Child Saver Machine”.

To improve security and efficiency of piping networks in industrial units, continuous inspection,
maintenance, cleaning and repairing of pipelines are strongly demanded because due to aging
problems, a lot of troubles like corrosion, cracks and mechanical damages are possible in pipes
[1]. These operations are quite expensive, so robots prove an efficient solution in this situation.
A robot is an intelligent, re-programmable and multifunctional manipulator designed to work in
inaccessible environment to do variety of tasks which are laborious, threatened and risky. The
robots with flexible structure are needed so that they can adapt themselves according to the
pipeline parameters. The wheeled robots are simplest, energy saving and best suited for use on
prepared surfaces [2]. These locomotion systems have main chasis connected to a set of wheels
through links and joints. Along with pipeline inspection, the concept of rescuing the trapped
child from the borehole is also implemented in the robot design. Since water level is decreasing
day by day so more people put ever increasing demands on limited supplies. To fulfill the needs,
bore wells are constructed, but these are usually left uncovered. Many innocent children without
noticing the hole have trapped and lost their lives. In normal rescue operation, a parallel pit is
dug deep to achieve the child and adjacent holes are made to the walls of bore well. A common
method used to find the depth of child is the use of rope .

OBJECTIVES
Following are the aims and objectives of the proposed design:
1. To make an adaptive robotic design having three legs parallelogram structure so as to adjust it
accordingly the pipeline parameters.
2. Add gripper or claw to it which can contract and expand according to necessity and can grasp
the target inside the pipe.
3. To interface it with the controller unit, sensor unit and display unit and camera is mounted
over it. Also PC is interfaced using MATLAB for visual display.
4. Software implementation.
5. To control the whole system with switch pad and to bring the target out of the pipe safely.

METHOD OF RESCUING
The rope is connected to the top of the robot. As the robot is sent into the bore-well hole, electric
wires for the motor from the control unit chip is attached along the rope. The oxygen hose is
fixed to the upper plate of the robot. Depending on the robot movement, the hose length is
adjusted from outside the bore-well. The gas hose from the compressor is connected to the gas
box located on the lower plate through the hole in the upper plate. The gas box act as an
intermediate gas transmitter. Using the motion detector and other special features of the camera,
the baby position is seen through a computer. At the appropriate position, the fork will punch
into the bore-well wall using the motor connected to the bevel gear setup on the upper plate. If
the baby is trapped in the middle of bore-well, using the motor connected at the lower end of the
hollow tube, the lower plate is rotated in such a way the safety balloon gas tube is in the gap
between bore-well and the baby. Initially the gas tube is above the end of robot hands. It will
avoid stabbing of gas tube on the baby. Using the motor connected to the pinion, the rack is
moved lower than the robot hands. Then the robot is moved down in such a way that the robot
hands free to hold the baby head or middle of the body. Then the safety balloon is inflated by
using the air compressor through gas box. The air pressure is measured in analog pressure gauge
connected to the compressor. The Digital display is placed below the upper camera. After the
safety balloon reached the exact pressure, the compressor is cut off. Then the safety balloon is
moved upward using motor connected to the rack and pinion setup till the safety balloon
completely supports the baby. Now the baby is completely in robot control. The baby
movements see through the lower camera and other data readings see through upper camera. The
two way audio communication will help us to know the stipulations of the baby. Then slowly,
the baby is moved upward. by pulling the rope using the pulley control system. The medical
team will be able to prepare for the treatment depending on the already seen temperature of the
baby. When the robot is pulled out, the rope is cut off. The robot is taken outside carefully from
the stand. The hands are loosened by the motor control and the baby is taken for treatment.
The robot will perform the following steps for performing the task:
1. The robot firstly goes down the pipe with by adjusting its legs according to the dimensions. It
is controlled by the operator using switch pad.
2. The video camera mounted on it gives the insight view of the position and location of the
target. This video will be monitored on PC.
3. The robot then grasps the target by contracting or expanding its gripper according to the
requirement.
4. Temperature sensing is also done by the robot which is monitored on LCD display.
5. The robot holds the target tightly and brings it out of the pipe safely.
This whole method is lesser time consumptive and risky than the normal operation.

WHAT IS A ROBOT?
The Webster defines a Robot as - An automatic apparatus or device that performs functions ordinarily ascribed to
humans or operates with what appears to be almost human intelligence, which means Robot, is defined as a
mechanical design that is capable of performing human tasks or behaving in a human-like manner

The Robotics Institute of America defines a robot as follows


A robot is a reprogrammable multifunctional manipulator designed to move material, parts, tools or
specialized devices through variable programmed motions for the performance of a variety of tasks
and used for Relief operations

HISTORY ABOUT THE ROBOTS & ITS EVALUATION


The term “robot” has its origins in a Czech word “robotnik” meaning worker or serf. It was first
introduced by the playwright Karel Capek in a 1920 play. The robot theme was popularized by Isaac
Asimov in science fiction in the late 1940’s and the early 1950’s, and subsequently by Hollywood
movies.
Mechanization and automation can be traced back to the industrial revolution. The first example of
complete mechanization dates back to the development of Jacquard looms (named after the silk
weaver Joseph Maria Jacquard) used in the silk industry in France and Italy in the early 19 th century.
These looms could be mechanically reprogrammed to produce different patterns.
However, these looms were simply machines. There is no notion of “intelligence” that is built into these
looms. Further, the process of programming could be very tedious, particularly for complex patterns,
and had to be done manually.
The next 100-150 years saw many innovative engineering solutions to pressing problems in industry. A
rotary crane equipped with a motorized gripper to remove hot ingots from a furnace was developed by
Babbit in 1892. Pollard invented a mechanical arm for spray painting in 1938.
The first teleoperator or telecheric, a device that allows an operator to perform a task at a distance,
isolated from the environment that the task is performed in, was developed by Goertz 1. It was designed
to manipulate radioactive materials. The operator was separated from the radioactive task by a
concrete wall with viewing ports. Two handles on the “master” side allowed the operator to manipulate
a pair of tongs on the “slave” side
Robots come in different shapes and sizes and with different An Industrial Robot is
capabilities. They also perform several tasks, some of them are a re-programmable
quite beyond the capabilities of human beings. device which is
It was demonstrated by the first human cyborg Prof. Kevin designed to both
Warwick of University of Reading, UK that humans can link manipulate and
with robots to acquire several dimensions of nature for better
transport parts, tools,
functioning.
or used for specialized
manufacturing
implementations
WHY ROBOTS
through variable
 Quality Improvement programmed motions
 Improvement of Working Environment for the performance of
 Better-Cost Effectiveness
 Flexibility to Change
 Multi Specialty Operations
MAJOR APPLICATION AREAS
The four major areas where automation should be considered are as follows
 Heavy Lifting
 Repetitive Work
 Contaminated Environments (Solvents, Noise, Heat, Dust)
 Jobs Requiring Continuously High Levels of Concentration

ANATOMY OF A ROBOT
The Basic Components of a Robot System are
 The Mechanical linkage
 Actuators and Transmissions
 Sensors
 Controllers
 Stepper Motors
 User interface
 Power conversion unit

Applications:
 Heavy power grids.
 Industrial application.
 Crane handling.
 By doing little modifications, this same project can be used for any other power control.

COMPARISON BETWEEN HUMAN TERMS AND ROBOT TERMS


HUMAN TERMS ROBOT TERMS
 Brain  Computer
 Senses  Sensors
 Blood  Electrical/ Hydraulic
 Hands Power
 Feet  Manipulator
 Wheels (normally)
Robots can be Turtles, Vehicles, Rovers, Walkers

ADVANTAGES OF USING ROBOT


 The ROBOT is a basic tool for automation and will be of great use to perform repetitive tasks of
picking and placing in an industrial production line
 Its use can be extended and exploited by few modifications to do difficult and hazardous tasks for
nuclear applications
 It can be used to do work effectively due to its great-added accuracy which will results the
quality improvement in the work

ARTIFICIAL INTELLIGENCE - DEFINITION


Artificial Intelligence is a branch of Science which deals with helping machines find solutions to
complex problems in a more human-like fashion. This generally involves borrowing
characteristics from human intelligence, and applying them as algorithms in a computer friendly
way.
A more or less flexible or efficient approach can be taken depending on the requirements
established, which influences how artificial the intelligent behavior appears. AI is generally
associated with Computer Science, but it has many important links with other fields such as
Maths, Psychology, Cognition, Biology and Philosophy, among many others.
Our ability to combine knowledge from all these fields will ultimately benefit our progress in the
quest of creating an intelligent artificial being.

THE MAIN MODULES INCLUDES & MAJOR COMPONENTS


OF THE ROBOT PROJECT
 Microcontroller Board
 Optocoupler with Stepper Driver Board
 Stepper Power Supply Board
 Pick & Place Arm for Materials Handling
 Fire Sensing Unit and Extinguisher

MICROCONTROLLER BOARD
This is the board, which contains Microcontroller Chip as well as the clock Circuitry, Reset
Circuit and Power Supply for the Microcontroller.
A microcontroller is a highly integrated chip, which includes, on one chip, all or most of the
parts needed for a controller. The microcontroller could be called a ``ONE-CHIP SOLUTION''.
It typically includes: CPU (central processing unit) RAM (Random Access Memory)
EPROM/PROM/ROM (Erasable Programmable Read Only Memory) I/O (input/output) - serial
and parallel timers interrupt controller By only including the features specific to the task
(control), cost is relatively low.
A typical microcontroller has bit manipulation instructions, easy and direct access to I/O
(input/output), and quick and efficient interrupt processing. Microcontrollers are a ``one-chip
solution’’, which drastically reduces parts count, and design costs

STEPPER MOTOR BASICS – MOTOR WITH STEP MOVEMENTS


Motion Control, in electronic terms, means to accurately control the movement of an object
based on either speed, distance, load, inertia or a combination of all these factors. There are
numerous types of motion control systems, including; Stepper Motor, Linear Step Motor, DC
Brush, Brushless, Servo, Brushless Servo and more. This document will concentrate on Step
Motor technology.
In Theory, a Stepper motor is a marvel in simplicity. It has no brushes, or contacts. Basically it's
a synchronous motor with the magnetic field electronically switched to rotate the armature
magnet around.
A Stepping Motor System consists of three basic elements, often combined with some type of
user interface (Host Computer, PLC or Dumb Terminal)
TYPES OF STEPPER MOTORS
There are basically three types of stepping motors; variable reluctance, permanent magnet and
hybrid. They differ in terms of construction based on the use of permanent magnets and/or iron
rotors with laminated steel stators.

BIPOLAR CHOPPER
Bipolar chopper drivers are by far the most widely used drivers for industrial applications.
Although they are typically more expensive to design, they offer high performance and high
efficiency. Bipolar chopper drivers use an extra set of switching transistors to eliminate the
need for two power sources.
Additionally, these drivers use a four transistor bridge with recirculating diodes and a sense
resistor that maintains a feedback voltage proportional to the motor current. Motor windings,
using a bipolar chopper driver, are energized to the full supply level by turning on one set (top
and bottom) of the switching transistors. The sense resistor monitors the linear rise in current
until the required level is reached. At this point the top switch opens and the current in the
motor coil is maintained via the bottom switch and the diode. Current "decay" (lose over time)
occurs until a preset position is reached and the process starts over. This "chopping" effect of
the supply is what maintains the correct current voltage to the motor at all times.

ADVANTAGES OF USING THIS KIND OF MOTOR


1. Can be started with full speed at any time or instant
2. Can be stopped with full speed at any time or instant
3. The speed of the motor will not be affected by Electrical or Mechanical reasons
4. Similarly the Voltage or the Current or the Torque will not decide the Speed of the Motor
5. Speed can be decided by the Pulses width and speed can be increased or reduced using
the external gears
6. Less maintenance & no need for external cooling

OPTOCOUPLER WITH STEPPER DRIVER BOARD


Optocoupler means two electrical signals are optically coupled with Electrical isolation.
Optocouplers are very essential for stepper motor. The need of Optocoupler is to isolate the
Microcontroller Board form the Stepper Motor to restrict any high voltage to the Microcontroller
board, and this board also contains stepper Driver circuit to amplify the Voltage and to
withstand high current because the pulse coming out from the Microcontroller is not tough
enough to drive the Motor.

STEPPER POWER SUPPLY


This board contains the power Supply for the stepper motor and relay driver.
PICK & PLACE ARM FOR MATERIALS HANDLING
The Arm of the Robot will rotate 360 Degrees, Free & easy rotation, which will Pick & Place the
Objects

MECHANICAL FEATURES & MODEL


Unbreakable, Less in Weight, Easy Movements, No need for surface grinding, Economic in
Fabrication, Electrical Isolation, Thermal Stability, Free Rotation, Metal Construction, Stepper
Motors, Hose Clamps, Shaft Collars & Couplers, Universal Joints, Wheels, etc.,

RS232 CONVERTER
It Converts the PC Voltage (-10v to +10) to PIC Microcontroller Voltage (-5v to +5v) and vice
versa

TEMPERATE INDICATOR & CONTROLLER


In certain industries we have to maintain the temperature below 20øC to safe guard the
electronic from thermal runaway failures. We are using THERMISTOR (THERMAL
RESISTOR), which comes under passive transducer classification. Thermistor finds wide
applications and advantages like Fast response, smaller in size, Rugged (Not affected by shock
and vibration), Good sensitivity, Low cost.
A thermistor is a ceramic semiconductor, which exhibits a large change in resistance with a
change in its body temperature. The word thermistor is actually a contraction of the words
"THERMAL RESISTOR". Although there are both positive coefficient (PTC) and negative
coefficient (NTC) are available, for our application we use negative coefficient (NTC) type
thermistor.
These NTC thermistors are compose of oxides such as the oxides of the MANGANESE,
NICKEL, COBALT, COPPER, IRON and TITANIUM

AUTO DIALER
This facility is applicable in the above system for the following Services like Fire Detection
during Night Mode enabled
Auto Dialer means, a device that automatically dials pre-programmed numbers to establish and
complete a call or to gain access to a network

RF TRANSMITTER AND RECEIVER


This is the RF based Transmitter and Receiver module, which can facilitate the remote
applications

RF FEATURES
 Complete super regenerative RF Transmitter & Receiver Module operating @ 433.92 MHz
 Compact in Size & Model
 No External Components & No tuning is required
 High Performance SAW based architecture with a maximum range of 100 feet @ 4800 bps
data rate
 Low Power Consumption
 RF Receiver Module - 433.92 MHz (FT-COM-RX2), Bandwidth–4 MHz
 RF Transmitter Module -433.92 MHz (FT-COM-TX2), Bandwidth – 4 MHz

.EXISTING SYSTEM

The main objective of this project is to make it possible for a child fall inside bore well to
rescue without any injury. This goal is achieved by controlling a robot to take of the child
inside the bore well which is controlled by the person from outside. In existing system, a big
hole is dug beside the bore well up to the depth where the child is stuck. A small delay in this
resources accumulation may reduce the chances of saving child alive. If the area beside the
bore hole contains rocks below certain depth, in such cases the chance of saving child alive is
very low. Lack of oxygen inside the bore well and lack of light sources causes the major
difficulty during the rescue operation. There is no such special equipment for rescuing the
child trapped inside the bore well. There is no proper technique to rescue victims of such
accidents. When the local arrangements do not work, army is called in. In most cases reported
so far, a parallel hole is dug up and then a horizontal path is made to reach to the subject’s
body. It is not only a time taking process, but also risky in various ways. Moreover it involves
a lot of energy and expensive resources which are not easily available everywhere and in this
process we always need big space around trapped bore that we can dig. Whatever may be the
case the success ratio depends on lots of factors like availability of time taken for
transportation of machinery to the situation, human resources and mainly the response time of
various government organizations. In India according to the NCRB report of 2011 there are 5
average deaths per day in the license bore wells. At present there is no proper solution for this
problem; in this paper the model of a robot arm which can be used for rescue operation is
explained.

PROPOSED SYSTEM
This work is aimed towards the construction and designing of a robotic system to work in
borehole rescue operations and to detect faults inside the pipeline. The robot has arms at its
front to pick and place the objects.

HARDWARE REQUIREMENTS

 Power Supply12 v
 NODE MCU
 ESP 32 CAMERA
 DHT 11
 AIR PUMP
 GAS SENSOR
 L298
 DC MOTOR
 GRIPPER

SOFTWARE REQUIREMENTS
o AURDINO IDE
o EMBEDDED C
o BLYNK
BLOCK DIAGRAM

AIRPUMP RELAY N WI FI

MOTOR 1 D POWER SUPPLY


L298 H BRIDGE
E
MOTOR 2
DHT 11 SENSOR

M
GRIPPER PULLEY
C
MQ135 GAS SENSOR
U

ESP 32 CAMERA

DESIGN:
The word system is possibly the most overused and abused term in the technical
lexicon. System can be defined as the “a set of fact, principles, rules etc., classified and
arranged in an orderly form so as to show a logical plan linking the various parts” here the
system design defines the computer based information system. The primary objective is to
identify user requirements and to build a system that satisfies these requirements.
Design is much more creative process than analysis. Design is the first step in the
development of any system or product. Design can be defined as “the process of applying
various techniques and principles for the purpose of defining a device, a process or a system
in sufficient detail to permit its physical realization”.
It involves four major steps they are
1. Understanding how the system is working now;
2. Finding out what the system does now;
3. Understanding what the new system will do; and
4. Understanding how the new system will work.
So as to avoid these difficulties, a new system was designed to keep these requirements in
mind. Therefore the manual process operation has been changed into GUI based
environment, such that the user can retrieve the records in a user-friendly manner and it is
very easy to navigate to the corresponding information.
INPUT DESIGN
Input design is the bridge between users and information system. It
specifies the manner in which data enters the system for processing it can ensure the
reliability of the system and produce reports from accurate data or it may results in output of
error information.
OUTPUT DESIGN

Outputs from the computer system are rewired primary to communicate the results of
processing to the uses. They also used to provide a permanent copy of these results for later
consultation / verification. The main points on designing an output are deciding the media,
designing layout and report to be printed. The outputs are designed from the system, are
simple to read and interpre
DATA FLOW DIAGRAM
A DFD is a logical model of the system. The model does not depend
on the hardware, software and data structures of file organization. It tends to be easy for
even non-technical users to understand and thus serves as an excellent communication tool.
DFD can be used to suggest automatic boundaries for proposed system at pa
very high level; the entire system is shown as a single logical process clearly identifying the
sources and destination of data. This is often referred to as zero level DFD.
Then the processing is exploded into major processes and the same is depicted
as level one DFD.

METHODOLOGY DIAGRAM

Sensor Gateway Middleware Server Application

Sensing data transmission

Sensing data transmission

Data storage compare with


threshold

Data request

Requested data transmission

Requested data transmission

Alert about the state and buzzer on

USE CASE DIAGRAM


Activate controller

Initialize sensor

Microcontroller Read the value from all the


user/admin sensors

Robot

Compare the value with


threshold

Alert and buzzer on


Flow chart

START

CONNECT TO WIFI (ACCESS POINT)

If Wi-Fi
NO connect
ed

yes

Read the value from all the sensors

Weight &
NO vibrationTh
ershold

YES

Alert and buzzer on

Send values
Compare
Sensor Server

Application
DATA FLOW DIAGRAM LEVEL 0

0.0

0.0 Sensor Compare Server


Send values 1.0

Application

Connect
Connect with server

Send
Travel path
Connect

Alert and Buzzer ON

DATAFLOW DIAGRAM LEVEL 1

Initialize Microcontroller

Initialize sensor

Detect the VALUE


Activate Buzzer / SEND
NOTIFICATION

Alert message

Activity diagram
POSSIBLE IDENTIFICATION OF SOFTWARE DEVELOPMENT ACTIVITIES
SOFTWARE DEVELOPMENT AS APPLICATION DOMAIN: A USE CASE MODEL

Software development
<<include>> <<include>>
<<include>>

Problem definition System development System operation

Client Project manager Developer Administrator End user

THE WATERFALL MODEL OF THE SOFTWARE LIFE CYCLE


Concept
Exploration
Process
System
Allocation
Process

Requirements
Process

Design
Process

Implementation
Process

Verification
& Validation
Process

Installation
Process

Operation &
Support Process
WATERFALL MODEL TO THE V MODEL
ACTIVITY DIAGRAM OF A V MODEL

A Generic Requirements Process


Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements

Requirements
document

A Generic Software Design Process

Requirements
specification

Design activities

Architectural Interface Component Data Algorithm


Abstract
design design design structure design
specification
design

Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification

Design products

V Model: Distinguishes between Development and Verification Activities


A Generic Testing Process

Unit
testing
Module
testing
Sub-system
testing
System
testing
Acceptance
testing

Component Integration testing User


testing testing

V-Model of Test Planning


Requir ements System System Detailed
specification specification design design

System Sub-system Module and


Acceptance
integration integration unit code
test plan
test plan test plan and tess

Acceptance System Sub-system


Service
test integration test integration test

PROTOTYPING

INCREMENTAL DEVELOPMENT
Define outline Assign requirements Design system
requirements to increments architecture

Develop system Valida te Integrate Valida te


increment increment increment system
Final
system
System incomplete

SPIRAL MODEL PROCESS OF DEVELOPMENT IN IOT PROJECTS

Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
next-level product

FEASIBILITY STUDY
Introduction
A feasibility analysis involves a detailed assessment of the need, value and practicality of a p
systems development... Feasibility analysis n forms the transparent decisions at crucial points
during the developmental process as we determine whether it is operationally, economically
and technically realistic to proceed with a particular course of action.
Feasibility analysis can be used in each of the steps to assess the financial, technical and
operational capacity to proceed with particular activities.
Types of feasibility
A feasibility analysis usually involves a thorough assessment of the financial (value),
technical (practicality), and operational (need) aspects of a proposal. In systems development
projects, business managers are primarily responsible for assessing the operational feasibility
of the system, and information technology (IT) analysts are responsible for assessing
technical feasibility. Both then work together to prepare a cost–benefit analysis of the
proposed system to determine its economic feasibility.
Operational feasibility
A systems development project is likely to be operationally feasible if it meets the 'needs' and
expectations of the organisation. User acceptance is an important determinant of operational
feasibility. It requires careful consideration of:
corporate culture;
staff resistance or receptivity to change;
management support for the new system;
the nature and level of user involvement in the development and implementation of the
system; direct and indirect impacts of the new system on work practices;
anticipated performance and outcomes of the new system compared with the existing system;
training requirements and other change management strategies; and
‘pay back’ periods (ie trade-off between long-term organisational benefits and short-term
inefficiencies during system development and implementation).

Technical feasibility
A systems development project may be regarded as technically feasible or practical if the
organization has the necessary expertise and infrastructure to develop, install, operate and
maintain the proposed system. Organizations will need to make this assessment based on:
Knowledge of current and emerging technological solutions;
Availability of technically qualified staff in-house for the duration of the project and
subsequent maintenance phase;
Availability of infrastructure in-house to support the development and maintenance of the
proposed system;
Where necessary, the financial and/or technical capacity to procure appropriate infrastructure
and expertise from outside;
Capacity of the proposed system to accommodate increasing levels of use over the medium
term;
The capacity of the proposed system to meet initial performance expectations and
accommodate new functionality over the medium term.
Economic feasibility
A systems development project may be regarded as economically feasible or good value to
the organization if its anticipated benefits outweigh its estimated costs. Many development
costs are easier to identify. These costs may include the time, budget and staff resources
invested during the design and implementation phase, as well as infrastructure, support,
training and maintenance costs incurred after implementation. Nonetheless, it can also be
difficult to accurately quantify project costs when new technologies and complex systems are
involved. In these high-risk situations it may be appropriate to use sophisticated cost-benefit
analysis tools to make appropriate assessments of financial feasibility.

SOFTWARE ENGINEERING PARADIGM APPLIED:

As per the Software development lifecycle,


1. The requirement specification of the project is collected properly.
2. Feasibility studies are taken upon the requirement collected to test the
feasibility of the project.
3. According to the requirement the project gets modularized.
4. Architectural and detailed designs are drawn for each and every module.
5. During implementation phase, comments are used to describe the actions
that are taking place, which is important for documentation and future reference.
6. Testing is extensively done to check whether the project is doing the task
for what it has been designed.

3.1 Security Feasibility


It is that a third person watching the communication between the sender and
the receiver will not be able to find out whether the sender has been active, and when,
in the sense that he really embedded a message in the cover-text. In other words,
stegotexts should be indistinguishable from covertexts.
3.2 System Feasibility
The proposed system can be developed using the present hardware and
software technologies. The project requires following requirements.
Hardware and software architecture with minimum requirements, which
supports an operating system on which Java toolkit and Media player applications can
be developed and deployed. The estimated time given to different phases in the
project such as Analysis, Design, implementation and testing all sum up to make a
total time required to complete the project as approximately equal to 2 months
(Excluding future Enhancement).
3.3 Special Features
For video, a combination of sound and image techniques can be used. This is
due to the fact that video generally has separate inner files for the video (consisting of
many images) and the sound. So techniques can be applied in both areas to hide data.
Due to the size of video files, the scope for adding lots of data is much greater and
therefore the chances of hidden data being detected is quite low.

Days-180
Gantt chart

40 45 50 20 25

Analysis

Design

Implementation

Testing

Maintenance
Completed
Total Number of days to complete: 180 Days

Implementation
Create/ Delete
Admin Module
User

2 4 5 Testing
20 4 25

Design 45 50 Unit Testing / All Type of


Maintenance
1 Transaction I/O Testing
Login/Logout
Details and

All operation
40
Analysis

LOC – BASED ESTIMATION

AREA OF CODE OPSTEMISTIC MOST LIKELY PESSIMISTIC LOC-EV

Client Programming 2200 3250 3700 3200

Network Programming 1250 1500 1450 1350

The three points or expected value is computed as


EV = (S opt + 4 Sm + S Press ) / 6

Thus the estimated lines of code(LOC) are 4550

Assuming the organization average productivity for system of this type is 1620 LOC/pm

Based on the burden labor rate of Rs. 7000 per month, the cost per line of code is
approximately Rs. 4.00
Based on the LOC estimate,

The estimation effort e is computed as


E = estimated LOC/(LOC / pm)
= 4550 / 1620 = 2.8086
app – 4 persons in a month or 1 person in 4 month

Software Requirements
ARDUINO IDE
Arduino first and foremost is an open-source computer hardware and software company. The
Arduino Community refers to the project and user community that designs and utilizes
microcontroller-based development boards. These development boards are known as Arduino
Modules, which are open-source prototyping platforms. The simplified microcontroller board
comes in a variety of development board packages.

The most common programming approach is to use the Arduino IDE, which utilizes the C
programming language. This gives you access to an enormous Arduino Library that is
constantly growing thanks to open-source community.
Arduino IDE is not: AVR Studio (Yes, we know you loved EE 346, but unfortunately you
won’t be utilizing Assembly Language)
Arduino Uno dev. board (Fritzing part graphic)

Find out all the information you ever wanted to know about Arduino here:
https://learn.sparkfun.com/tutorials/what-is-an-arduino Also, checkout sparkfun’s Arduino
Buying Guide for further information on available dev. boards:
https://www.sparkfun.com/arduino_guide
Download Arduino Integrated Design Environment (IDE) here (Most recent version: 1.6.5):
https://www.arduino.cc/en/Main/Software This is the Arduino IDE once it’s been opened. It
opens into a blank sketch where you can start programming immediately. First, we should
configure the board and port settings to allow us to upload code. Connect your Arduino board
to the PC via the USB cable.

Board Setup
You have to tell the Arduino IDE what board you are uploading to. Select the Toolspulldown
menu and go to Board.This list is populated by default with the currently available Arduino
Boards that are developed by Arduino. If you are using an Uno or an Uno-Compatible Clone
(ex. Funduino, SainSmart, IEIK, etc.), select Arduino Uno. If you are using another
board/clone, select that board.

IDE: COM Port Setup


If you downloaded the Arduino IDE before plugging in your Arduino board, when you
plugged in the board, the USB drivers should have installed automatically. The most recent
Arduino IDE should recognize connected boards and label them with which COM port they
are using. Select the Tools pulldown menu and then Port.Here it should list all open COM
ports, and if there is a recognized Arduino Board, it will also give it’s name. Select the
Arduino board that you have connected to the PC. If the setup was successful, in the bottom
right of the Arduino IDE, you should see the board type and COM number of the board you
plan to program. Note: the Arduino Uno occupies the next available COM port; it will not
always be COM3.
At this point, our board should be set up for programming, and you can begin writing and
uploading code.

BLYNK
Blynkwas designed for the Internet of Things. It can control hardware remotely, it can display
sensor data, it can store data, vizualize it and do many other cool things.
There are three major components in the platform:
 Blynk App - allows to you create amazing interfaces for your projects using various
widgets we provide.
 Blynk Server - responsible for all the communications between the smartphone and
hardware. You can use our Blynk Cloud or run your private Blynk server locally. It’s
open-source, could easily handle thousands of devices and can even be launched on a
Raspberry Pi.
 Blynk Libraries - for all the popular hardware platforms - enable communication with the
server and process all the incoming and outcoming commands.
Now imagine: every time you press a Button in the Blynk app, the message travels
to space the Blynk Cloud, where it magically finds its way to your hardware. It works the
same in the opposite direction and everything happens in a blynk of an eye.

Features
 Similar API & UI for all supported hardware & devices
 Connection to the cloud using:
o WiFi
o Bluetooth and BLE
o Ethernet
o USB (Serial)
o GSM
 Set of easy-to-use Widgets
 Direct pin manipulation with no code writing
 Easy to integrate and add new functionality using virtual pins
 History data monitoring via SuperChart widget
 Device-to-Device communication using Bridge Widget
 Sending emails, tweets, push notifications, etc.
 new features are constantly added!
You can find example sketches covering basic Blynk Features. They are included in the
library. All the sketches are designed to be easily combined with each other.

What do I need to Blynk?

At this point you might be thinking: “Ok, I want it. What do I need to get started?” – Just
a couple of things, really:
1. Hardware.
An Arduino, Raspberry Pi, or a similar development kit.
Blynk works over the Internet. This means that the hardware you choose should be able to
connect to the internet. Some of the boards, like Arduino Uno will need an Ethernet or Wi-Fi
Shield to communicate, others are already Internet-enabled: like the ESP8266, Raspberri Pi
with WiFi dongle, Particle Photon or SparkFunBlynk Board. But even if you don’t have a
shield, you can connect it over USB to your laptop or desktop (it’s a bit more complicated for
newbies, but we got you covered). What’s cool, is that the list of hardware that works with
Blynk is huge and will keep on growing.
2. A Smartphone.
The Blynk App is a well-designed interface builder. It works on both iOS and Android.
Getting Started
Let’s get you started in 5 minutes (reading doesn’t count!). We will switch on an LED
connected to your Arduino using the Blynk App on your smartphone.
Connect an LED as shown here:
Getting Started With TheBlynk App
1. Create a Blynk Account
After you download the Blynk App, you’ll need to create a New Blynk account. This account
is separate from the accounts used for the Blynk Forums, in case you already have one.
We recommend using a real email address because it will simplify things later.

Why do I need to create an account?


An account is needed to save your projects and have access to them from multiple devices
from anywhere. It’s also a security measure.
You can always set up your own Private Blynk Server and have full control
Create a New Project
After you’ve successfully logged into your account, start by creating a new project.

Choose Your Hardware


Select the hardware model you will use. Check out the list of supported hardware!
Auth Token
Auth Token is a unique identifier which is needed to connect your hardware to your
smartphone. Every new project you create will have its own Auth Token. You’ll get Auth
Token automatically on your email after project creation. You can also copy it manually.
Click on devices section and selected required device :

NOTE: Don’t share your Auth Token with anyone, unless you want someone to have access
to your hardware.
It’s very convenient to send it over e-mail. Press the e-mail button and the token will be sent
to the e-mail address you used for registration. You can also tap on the Token line and it will
be copied to the clipboard.
Now press the “Create” button.

Add a Widget
Your project canvas is empty, let’s add a button to control our LED.
Tap anywhere on the canvas to open the widget box. All the available widgets are located
here. Now pick a button.
Widget Box
Drag-n-Drop - Tap and hold the Widget to drag it to the new position.
Widget Settings - Each Widget has it’s own settings. Tap on the widget to get to them.
Run The Project
When you are done with the Settings - press the PLAY button. This will switch you from
EDIT mode to PLAY mode where you can interact with the hardware. While in PLAY mode,
you won’t be able to drag or set up new widgets, press STOP and get back to EDIT mode.
You will get a message saying “Arduino UNO is offline”. We’ll deal with that in the next
section.

Getting Started With Hardware


How To Use an Example Sketch
You should by now have the Blynk Library installed on your computer. If not - click here.
Example sketches will help you get your hardware online quickly and major Blynk features.
Open the example sketch according to the hardware model or shield you are using.
Auth Token
In this example sketch, find this line:
charauth[] = "YourAuthToken";
This is the Auth Token that you emailed yourself. Please check your email and copy it, then
paste it inside the quotation marks.
It should look similar to this:
charauth[] = "f45626c103a94983b469637978b0c78a";
Upload the sketch to the board and open Serial Terminal. Wait until you see something like
this:
Blynkv.X.X.X
Your IP is 192.168.0.11
Connecting...
Blynk connected!
Congrats! You are all set! Now your hardware is connected to the Blynk Cloud!

Blynking
Go back to the Blynk App, push the button and turn the LED on and off! It should be
Blynking

Check out other example sketches.


Feel free to experiment and combine different examples together to create your own amazing
projects.
For example, to attach an LED to a PWM-enabled Pin on your Arduino, set the slider widget
to control the brightness of an LED. Just use the same steps described above.

Web requirements
Languages
HTML
HTML is a hypertext markup language which is in reality a backbone of any website.
Every website can’t be structured without the knowledge of html. If we make our web page
only with the help of html, than we can’t add many of the effective features in a web page,
for making a web page more effective we use various platforms such as CSS. So here we are
using this language to make our web pages more effective as well as efficient. And to make
CSS
CSS stands for "Cascading Style Sheet" Cascading style sheets are used to format the
layout of Web pages. They can be used to define text styles, table sizes, and other aspects of
Web pages that previously could only be defined in a page's HTML. The basic purpose of
CSS is to separate the content of a web document (written in any markup language) from its
presentation (that is written using Cascading Style Sheets). There are lots of benefits that one
can extract through CSS like improved content accessibility, better flexibility and moreover,
CSS gives a level of control over various presentation characteristics of the document. It also
helps in reducing the complexity and helps in saving overall presentation time. CSS gives the
option of selecting various style schemes and rules according to the requirements and it also
allows the same HTML document to be presented in more than one varying style.
JAVASCRIPT
JavaScript is considered to be one of the most famous scripting languages of all time.
JavaScript, by definition, is a Scripting Language of the World Wide Web. The main usage of
JavaScript is to add various Web functionalities, Web form validations, browser detections,
creation of cookies and so on. JavaScript is one of the most popular scripting languages and
that is why it is supported by almost all web browsers available today like Firefox, We used
the browser Opera or Internet Explorer. JavaScript is considered to be one of the most
powerful scripting languages in use today. It is often used for the development of client-side
web development. JavaScript is used to make web pages more interactive and dynamic.
JavaScript is a light weight programming language and it is embedded directly into the
HTML code. JavaScript, as the name suggests, was influenced by many languages, especially
Java.

PHP
Precisely, PHP is a very powerful server-side scripting language for developing
dynamic web applications. Using PHP, one can build interactive and dynamic websites with
ease. PHP script can be embedded straight into the heart of html code. PHP is compatible
with various web servers like Apache and the Microsoft’s IIS as well. All the PHP scripts are
executed on the server and it supports various databases like MySQL, Oracle, Solid, Generic
ODBC etc.; however, it is mostly used with MySQL.

MySQL
SQL stands for Structured Query Language. MySQL lets us access and manipulate
databases. MySQL is an ANSI (American National Standards Institute) standard. MySQL
can execute queries against a database ,retrieve data from a database, insert records in a
database, update records in a database, delete records from a database, create new databases ,
create new tables in a database , create stored procedures in a database, create views in a
database, set permissions on tables, procedures, and views.

 Software Configuration:
Web based application
 Operating system : Windows XP/7/10
 IDE : Sublime text
 Front-end : Bootstrap framework
 Server side programming : PHP
 Client side scripting : Ajax, Javascript
 Database : MySQLi
 Server : Apache server
 Tool Kit : Google Chrome developer tools
Other libraries : JQuery
● System Design

The System design is the phase where the system functionality is outlined using the
specifications provided in the previous chapters. This system design elaborates the proposed
system with the flow diagrams and the block diagrams of the technique used. By using the
system design the quality of the software can be predicted. Thus it is one among the critical
phases to be carried during the implementation of any project.
The modules and their specifications are also discussed in this chapter. This phase
builds the communication between the requirement and the implementation phase.
DESIGN REQUIREMENTS
The Requirements are determined in light of the craved objectives, the outline
objectives are utilized to distinguish the nature of the framework created or executed. The
majority of the objectives that are really planned falls under non-functional prerequisites and
even the application area take after the same arrangement of criteria. The System outline is
the most basic component influencing the nature of the product and has real effect on the later
stage, particularly on the testing and upkeep. This is used to identify the modules of the
system, specifications and detailed development of these modules that specifies the
interaction with each other to produce the desired output. Once the system has been designed
all major types, modules and expected output, the specifications for implementing are
decided.
This deals with data flow diagram, detailed flow graph, requirement analysis, and the
design process of the front end and back end design of the student information management
system.

Database Design
It is fair to say that database play a critical role in almost all areas where computers are used,
including Business, electronic commerce, engineering, medicine, law, education, and library
science. A database is collection of a related data. A database has the following implicit
properties:

Database Management System (DBMS) is a collection of programs that enables users to


create and maintain a database. DBMS is a general purpose software system that facilitates
the process of defining, constructing, manipulating, and sharing database among various
users and applications. Defining a database involves the specifying the data types, structures,
and constraints of the data to be stored in the database. The database definition or descriptive
information is also stored in the database in the form of dictionary; it is called Meta data
constructing the database is the process of storing the data on the storage medium that is
controlled by the DBMS.
 Manipulating a database includes functions such as querying the database to retrieve
specific data, updating the database to reflect in the mini-world, and generating
reports from the data. Sharing a database allows a multiple users and programs to
access the database simultaneously.
 Application program accesses the database by sending queries or request for data to
the DBMS [5]. A query typically causes some data to be retrieved; a transaction may
cause some data to be read and some data to be written into the database.
 A database represents some aspect of the real world, sometimes called the mini-world
or the Universe OfDiscourse (UOD) changes to the mini world are reflected in the
database.
 A database is a logically coherent collection of data with some inherent meaning. A
random assortment ofdata cannot correctly be referred to as a database.
 A database is designed, built, and populated with data for a specific purpose. It is an
intended group ofusers and some preconceived application which these users are
interested.

● Design Notations
Sequence Diagram:
NODEMCU

The ESP8266 is the name of a micro controller designed by Espressif Systems. The ESP8266
itself is a self-contained WiFi networking solution offering as a bridge from existing micro
controller to WiFi and is also capable of running self-contained applications. This module
comes with a built in USB connector and a rich assortment of pin-outs. With a micro USB
cable, you can connect NodeMCUdevkit to your laptop and flash it without any trouble, just
like Arduino. It is also immediately breadboard friendly.
Specification:
1. • Voltage:3.3V.
2. • Wi-Fi Direct (P2P), soft-AP.
3. • Current consumption: 10uA~170mA.
4. • Flash memory attachable: 16MB max (512K normal).
5. • Integrated TCP/IP protocol stack.
6. • Processor: Tensilica L106 32-bit.
7. • Processor speed: 80~160MHz.
8. • RAM: 32K + 80K.
9. • GPIOs: 17 (multiplexed with other functions).
10. • Analog to Digital: 1 input with 1024 step resolution.
11. • +19.5dBm output power in 802.11b mode
12. • 802.11 support: b/g/n.
13. • Maximum concurrent TCP connections: 5.

Using Arduino IDE


The most basic way to use the ESP8266 module is to use serial commands, as the chip is
basically a WiFi/Serial transceiver. However, this is not convenient. What we recommend is
using the very cool Arduino ESP8266 project, which is a modified version of the Arduino
IDE that you need to install on your computer. This makes it very convenient to use the
ESP8266 chip as we will be using the well-known Arduino IDE. Following the below step to
install ESP8266 library to work in Arduino IDE environment.
Install the Arduino IDE 1.6.4 or greater Download Arduino IDE from Arduino.cc (1.6.4 or
greater) - don't use 1.6.2 or lower version! You can use your existing IDE if you have already
installed it. You can also try downloading the ready-to-go package from the ESP8266-
Arduino project, if the proxy is giving you problems.
Install the ESP8266 Board Package Enter
http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board
Manager URLs field in the Arduino v1.6.4+ preferences.

Next, use
the Board
manager to install the ESP8266 package.
Scroll down to ‘esp8266 by ESP8266 Community ’ and click “Install” button to install the
ESP8266 library package. Once installation completed, close and re-open Arduino IDE for
ESP8266 library to take effect.

Setup ESP8266 Support When you've restarted Arduino IDE, select ‘Generic ESP8266
Module’ from the ‘Tools’ -> ‘Board:’ dropdown menu.
Select ‘115200’ baud upload speed is a good place to start - later on you can try higher speeds
but 115200 is a good safe place to start.

Go to your Windows ‘Device Manager’ to find out which Com Port ‘USB-Serial CH340’ is
assigned to. Select the matching COM/serial port for your CH340 USB-Serial interface.
Blink Test
We'll begin with the simple blink test.
Enter this into the sketch window (and save since you'll have to).
Connect a LED as shown in
void setup()
{
pinMode(5, OUTPUT); // GPIO05, Digital Pin D1
}
void loop()
{
digitalWrite(5, HIGH);
delay(900);
digitalWrite(5, LOW);
delay(500);
}
Now you'll need to put the board into bootload mode. You'll have to do this before each
upload. There is no timeout for bootload mode, so you don't have to rush!
• Hold down the ‘Flash’ button.
• While holding down ‘ Flash’, press the ‘RST’ button.
• Release ‘RST’, then release ‘Flash
• When you release the ‘RST’ button, the blue indication will blink once, this means its ready
to bootload.

GRAPHIC LCD DISPLAY WITH I2C

ALPHA-NUMERIC LCD DISPLAY

A liquid crystal display is a thin, flat electronic visual display that uses the light
modulating properties of liquid crystals (LCs). LCs does not emit light directly.
In liquid crystal displays (LCDs) of liquid crystal technology is the most
common applications. An advanced VGA computer screen from the pervasive
wrist watch and pocket calculator, this type of display has evolved into an
important and ambidextrous interface.

Consist of a liquid crystal display, an array of tiny segments (called


pixels) and to present the information that can be manipulated. This basic
common idea is to all displays, alienate from simple calculators to a full color
LCD television.

The primary factor was size, an LCD consisting of primarily with some liquid
crystal material between them of two glass plates. There is no bulk amount
picture tube. This gives LCDs practical for applications where size (as well as
weight) is necessary.

In general, LCDs uses very low power than the cathode-ray tube (CRT)
counterparts. Many LCDs are ruminative, means that they use only atmosphere
light to illuminate the display. Even displays that do consume much less power
than CRT devices require an external light source (i.e. computer displays).

10K VR 1
3 1 +5V

U1
2

VSS
VD D
V0
ALC D _R S RS
R /W
ALC D _E E
D B0 D B0
D B1 D B1
D B2 D B2
D B3 D B3
D B4 D B4
D B5 D B5
D B6 D B6
D B7 D B7
LED A
LED K
16x 2 ALPH A LC D
Make sure that 5V and GND lines are properly connected otherwise you may
end up in damaging parallel port.

If you want backlight than connect pin 15 of LCD to 5V and pin 16 of LCD to
GND. By adjusting 10k resistor make pin 3 of LCD at 0V. If connections are
proper you will see this after power on.

The Graphic LCD display used in this project is 128x64 pixels, where it has 128
columns and 64 rows. Supply voltage is 5V matching the voltage for most microcontrollers.
The LCD controller is Samsung KS0108B. JHD12864J module uses 8-bit data bus (DB0 –
DB7). Nevertheless, it is a straight forward module comparing to other LCD series like
T6963C. JHD12864J is split logically in half with controller #1 (CS1) driving the left half of
the display, and controller #2 (CS2) driving the right half. These two portions map directly to
the physical display area.
RS is equivalent to PIN D/I as stated on JHD12864J data sheet. It controls data or
command action (D/I=LOW _ command; D/I=HIGH _ data). Horizontal pixel addressed by
Y address counter (0-63). The nomenclature is not the same as our convention of Cartesian
coordinate system (x-y) learned in secondary school. The Y address indicates the column
position in the horizontal direction. Why only 64 pixels but not 128 pixels? Because the LCD
is spitted logically in half with controller #1 (CS1) driving the left half of the display, and
controller #2 (CS2) driving the right half. We need to handle each half individually.

The term Page refers to 8-pixel vertically. There are 8 pages ranging from 0 to 7,
thus matching a vertical matrix size of 64 pixels. Refer to Figure 8.1.2 for
illustration.
R/W controls data READ/WRITE (R/W=LOW _ write; R/W=HIGH _ read). The
reason of writing bytes to the LCD is obvious: we need to display something on the LCD.
However, being capable of reading from the module is also important because it is only
possible to write to a whole Page in 8-bit format. As an example, we want to display a single
pixel at the 10th column on 3rd pixel down the top Page where there is an existing byte
0xAB. If we simply output 0x40 (0b0000 0100), the byte pattern 0xAB would be erased. One
possible way is to perform a data read first, store the byte in background to a temporary
variable, and do a bitwise OR operation with 0x40. This makes a new byte value of 0xAF.

Besides D/I, and R/W pins, there are other control pins to take care including CS1,
CS2, E, and RST pins. Direct low-level access and signal timing requirement will be taken
care by hardware dependent functions. The application interface function (API) is hardware-
independent. This idea is to allow easy porting to other microcontrollers since we only have
to re-write the hardware interface for other microcontrollers or compliers.
History

When connecting multiple devices to a microcontroller, the address and data lines of each
devices were conventionally connected individually. This would take up precious pins on the
microcontroller, result in a lot of traces on the PCB, and require more components to connect
everything together. This made these systems expensive to produce and susceptible to
interference and noise.

To solve this problem, Philips developed Inter-IC bus, or I2C, in the 1980s. I2C is a low-
bandwidth, short distance protocol for on board communications. All devices are connected
through two wires: serial data (SDA) and serial clock (SCL).

Figure 1: Sample I2C Implementation.


Regardless of how many slave units are attached to the I2C bus, there
are only two signals connected to all of them. Consequently, there is
additional overhead because an addressing mechanism is required for
the master device to communicate with a specific slave device.

Because all communication takes place on only two wires, all devices must have a unique
address to identify it on the bus. Slave devices have a predefinied address, but the lower bits
of the address can be assigned to allow for multiples of the same devices on the bus.

Top

Theory of Operation

I2C has a master/slave protocol. The master initiates the communication. The sequence of
events are:

1. The Master device issues a start condition. This condition informs all the slave
devices to listen on the serial data line for instructions.
2. The Master device sends the address of the target slave device and a read/write flag.
3. The Slave device with the matching address responds with an acknowledgement
signal.
4. Communcation proceeds between the Master and the Slave on the data bus. Both
the master and slave can receive or transmit data depending on whether the
communcation is a read or write. The transmitter sends 8-bits of data to the receiver
which replies with a 1-bit acknowledgement.
5. When the communication is complete, the master issues a stop condition indicating
that everything is done.

Figure 2: I2CCommunication Protocol


Since there are only two wires, this protocol includes the extra overhead
of an addressing mechanism and an acknowledgement mechanism

Top

Features

I2C has many features other important features worth mentioning. It supports multiple data
speeds: standard (100 kbps), fast (400 kbps) and high speed (3.4 Mbps) communications.

Other features include:

 Built in collision detection,


 10-bit Addressing,
 Mutli-master support,
 Data broadcast (general call).

For more information about other features, take a look at the references at the end of this
article.

Top

Benefits and Drawbacks

Since only two wires are required, I2C is well suited for boards with many devices connected
on the bus. This helps reduce the cost and complexity of the circuit as additional devices are
added to the system.

Due to the presence of only two wires, there is additional complexity in handling the
overhead of addressing and acknowledgments. This can be inefficient in simple
configurations and a direct-link interface such as SPI might be preferred.
I2C Glossary

Print Version | Back

Master

The device which initiates a transfer, generates clock signals and terminates a
transfer.

Slave

The device addressed by a master.

Transmitter

The device which sends the data to the bus.

Receiver

The device which receives data from the bus.

Standard Mode

Maximum bit rate of 100 kbps.

Fast Mode

Maximum bit rate of 400 kbps.

High Speed Mode

Maximum bit rate of 3.4 Mbps.

SDA

Serial Data line. The signal used to transfer data between the transmitter and the
receiver.

SCL

Serial Clock line. The signal used to synchronize communication between the master
and the slave.

Multi-Master

More than one master can attempt to control the bus at the same time without
corrupting the message.

Arbitration

Procedure to ensure that, if mroe than one master simultaneously tries to control the
bus, only one is allowed to do so and the winning message is not corrupted.
Synchronization

Procedure to synchronize the clock signals of two or more devices.

Slave Address

Each slave has a unique address to identify it on the bus. These addresses are pre-
defined, but the least significant bits can be set by the user to allow for multiples of
the same device. In standard I2C, the slave address is 7-bits, but the protocol has
been extended to also support 10-bit addresses.

Inside the box

I2C is appropriate for interfacing to devices on a single board, and can be stretched
across multiple boards inside a closed system, but not much further. An example is a
host CPU on a main embedded board using I2C to communicate with user interface
devices located on a separate front panel board. A second example is SDRAM DIMMs,
which can feature an I2C EEPROM containing parameters needed to correctly configure a
memory controller for that module.

I2C is a two-wire serial bus, as shown in Figure 1. There's no need for chip select or
arbitration logic, making it cheap and simple to implement in hardware.

The two I2C signals are serial data (SDA) and serial clock (SCL). Together, these signals
make it possible to support serial transmission of 8-bit bytes of data-7-bit device
addresses plus control bits-over the two-wire serial bus. The device that initiates a
transaction on the I2C bus is termed the master. The master normally controls the clock
signal. A device being addressed by the master is called a slave.

In a bind, an I2C slave can hold off the master in the middle of a transaction using what's
called clock stretching (the slave keeps SCL pulled low until it's ready to continue). Most
I2C slave devices don't use this feature, but every master should support it.

The I2C protocol supports multiple masters, but most system designs include only one.
There may be one or more slaves on the bus. Both masters and slaves can receive and
transmit data bytes.

Each I2C-compatible hardware slave device comes with a predefined device address, the
lower bits of which may be configurable at the board level. The master transmits the
device address of the intended slave at the beginning of every transaction. Each slave is
responsible for monitoring the bus and responding only to its own address. This
addressing scheme limits the number of identical slave devices that can exist on an I 2C
bus without contention, with the limit set by the number of user-configurable address
bits (typically two bits, allowing up to four identical devices).

Communication

As you can see in Figure 2, the master begins the communication by issuing the start
condition (S). The master continues by sending a unique 7-bit slave device address, with
the most significant bit (MSB) first. The eighth bit after the start, read/not-write (),
specifies whether the slave is now to receive (0) or to transmit (1). This is followed by an
ACK bit issued by the receiver, acknowledging receipt of the previous byte. Then the
transmitter (slave or master, as indicated by the bit) transmits a byte of data starting
with the MSB. At the end of the byte, the receiver (whether master or slave) issues a new
ACK bit. This 9-bit pattern is repeated if more bytes need to be transmitted.

In a write transaction (slave receiving), when the master is done transmitting all of the
data bytes it wants to send, it monitors the last ACK and then issues the stop condition
(P). In a read transaction (slave transmitting), the master does not acknowledge the final
byte it receives. This tells the slave that its transmission is done. The master then issues
the stop condition.

A simple bus

As we've seen, the I2C signaling protocol provides device addressing, a read/write flag,
and a simple acknowledgement mechanism. There are a few more elements to the I 2C
protocol, such as general call (broadcast) and 10-bit extended addressing. Beyond that,
each device defines its own command interface or address-indexing scheme.

Standard I2C devices operate up to 100Kbps, while fast-mode devices operate at up to


400Kbps. A 1998 revision of the I2C specification (v. 2.0) added a high-speed mode
running at up to 3.4Mbps. Most of the I2C devices available today support 400Kbps
operation. Higher-speed operation may allow I2C to keep up with the rising demand for
bandwidth in multimedia and other applications.

Most often, the I2C master is the CPU or microcontroller in the system. Some
microcontrollers even feature hardware to implement the I2C protocol. You can also build
an all-software implementation using a pair of general-purpose I/O pins (single master
implementations only).

Since the I2C master controls transaction timing, the bus protocol doesn't impose any
real-time constraints on the CPU beyond those of the application. (This is in contrast with
other serial buses that are timeslot-based and, therefore, take their service overhead
even when no real communication is taking place.)

The elegance of I2C

I2C offers good support for communication with on-board devices that are accessed on an
occasional basis. I2C's competitive advantage over other low-speed short-distance
communication schemes is that its cost and complexity don't scale up with the number of
devices on the bus. On the other hand, the complexity of the supporting I 2C software
components can be significantly higher than that of several competing schemes (SPI and
MicroWire, to name two) in a very simple configuration. With its built-in addressing
scheme and straightforward means to transfer strings of bytes, I 2C is an elegant,
minimalist solution

The I2C Bus Protocol


The I2C bus physically consists of 2 active wires and a ground connection. The active wires,
called SDA and SCL, are both bi-directional. SDA is the Serial DAta line, and SCL is the
Serial CLock line.

Every device hooked up to the bus has its own unique address, no matter whether it is an
MCU, LCD driver, memory, or ASIC. Each of these chips can act as a receiver and/or
transmitter, depending on the functionality. Obviously, an LCD driver is only a receiver,
while a memory or I/O chip can be both transmitter and receiver.

The I2C bus is a multi-master bus. This means that more than one IC capable of initiating a
data transfer can be connected to it. The I2C protocol specification states that the IC that
initiates a data transfer on the bus is considered the Bus Master. Consequently, at that time,
all the other ICs are regarded to be Bus Slaves.

As bus masters are generally microcontrollers, let's take a look at a general 'inter-IC chat' on
the bus. Lets consider the following setup and assume the MCU wants to send data to one of
its slaves (also see here for more information; click here for information on how to receive
data from a slave).

First, the MCU will issue a START condition. This acts as an 'Attention' signal to all of the
connected devices. All ICs on the bus will listen to the bus for incoming data.

Then the MCU sends the ADDRESS of the device it wants to access, along with an indication
whether the access is a Read or Write operation (Write in our example). Having received the
address, all IC's will compare it with their own address. If it doesn't match, they simply wait
until the bus is released by the stop condition (see below). If the address matches, however,
the chip will produce a response called the ACKNOWLEDGE signal.

Once the MCU receives the acknowledge, it can start transmitting or receiving DATA. In our
case, the MCU will transmit data. When all is done, the MCU will issue the STOP condition.
This is a signal that the bus has been released and that the connected ICs may expect another
transmission to start any moment.

We have had several states on the bus in our example: START, ADDRESS,
ACKNOWLEDGE, DATA , STOP. These are all unique conditions on the bus. Before we take
a closer look at these bus conditions we need to understand a bit about the physical structure
and hardware of the bus.

The I2C Bus Hardware Structure


As explained earlier, the bus physically consists of 2 active wires called
SDA (data) and SCL (clock), and a ground connection.

Both SDA and SCL are initially bi-directional. This means that in a
particular device, these lines can be driven by the IC itself or from an
external device. In order to achieve this functionality, these signals use open
collector or open drain outputs (depending on the technology).

The bus interface is built around an input buffer


and an open drain or open collector transistor.
When the bus is IDLE, the bus lines are in the
logic HIGH state (note that external pull-up
resistors are necessary for this which is easily
forgotten). To put a signal on the bus, the chip
drives its output transistor, thus pulling the bus to
a LOW level. The "pull-up resistor" in the devices
as seen in the figure is actually a small current
source or even non-existent.

The nice thing about this concept is that it has a "built-in" bus mastering technique. If
the bus is "occupied" by a chip that is sending a 0, then all other chips lose their right to
access the bus. More will be explained about this in the section about bus arbitration.

However, the open-collector technique has a drawback, too. If you have a long bus, this
will have a serious effect on the speed you can obtain. Long lines present a capacitive
load for the output drivers. Since the pull-up is passive, you are facing an RC constant
which will reflect on the shapes of the signals. The higher this RC constant, the slower
you can go. This is due to the effect that it influences the slew rate of the edges on the
I2C bus. At a certain point, the ICs will not be able to distinguish clearly between a
logic 1 and 0.

What's more is that you can get reflections at high speed. This can be so bad that "ghost
signals" disturb your transmission and corrupt the data you transmit.
Not even Schmitt triggers at the IC's inputs will be able to eliminate
this effect.

Therefore some strict electrical specifications have been put together.

To overcome this problem, Philips has developed an active I2C terminator. This device
consists of a twin charge pump and you can look at it as a dynamic resistor. The
moment the state changes, it provides a large current (low dynamic resistance) to the
bus. In doing so it can charge the parasitic capacitor very quickly. Once the voltage has
risen above a certain level, the high current mode cuts out and the output current drops
sharply.

Take a look at the following figure. As long as the bus is kept low (transistor C is on),
the charge pump is disabled because the gate of transistor B is kept low by transistor A.
As soon as the chip releases the bus (A and C turn off), the capacitor will start charging,
drawing current trough all four of the resistors (1 - 4). The voltage drop over resistor 2
will cause the transistor B to turn on, shorting out resistor 3. Since resistor 3 is a
relatively low value, the current will rise. At a certain point in time, the drop between
transistor B's gate and source will not be big enough to keep it switched on. It will then
switch off and the charge injection will stop. At that time, only the external pull-up
resistor remains to overcome the charge leakage on the bus.

Please note that this is a simple explanation. The actual device


implements more circuitry, e.g. to prevent "overcharging" if
another chip is still pulling the bus low.

This device can come in handy if you need to overcome several


meters of I2C bus length.

How the I²C-Bus works


Any I²C device can be attached to an I²C-bus and every device can talk with any master,
passing information back and forth. There needs to be at least one master (e.g.,
microcontroller or DSP) on the bus but there can be more than one, with all masters having
equal priority. Devices can be easily added to and removed from the I²C-bus.

Total bus capacitance needs to be less than 400 pF (e.g., about 20-30 devices or 10 m of
trace) to respect rise and fall time requirements. Each device must be able to drive up to 3
mA for a logic low level of 0.4 mA on an open drain bus with pull-ups in the range of 2 K to
10 K ohms. Bi-directional I²C bus buffers are available that isolate the capacitance on
different legs of the bus, allowing larger (e.g., 2000 pF) and longer (e.g., 2000 m) buses.

Each device has a unique 7-bit I²C address so that the master knows specifically whom they
are communicating with. Typically the four most significant bits are fixed and assigned to
specific categories of devices (e.g. 1010 is assigned to serial EEPROMs). The three less
significant bits (e.g., A2, A1 and A0) are programmable through hardware address pins
allowing up to eight different I²C address combinations and therefore allowing up to eight of
that type of device to operate on the same I²C-bus. These pins are held high to VCC (1) or
held low to GND (0). 7-bit addressing allows up to 128 devices on the same bus but some of
these addresses are reserved for special commands so the practical limit is around 120.
I²C-Bus Terminology

Transmitter - the device that sends data to the bus. A transmitter can either be a device that
puts data on the bus on its own accord (a 'master-transmitter'), or in response to a request
from the master (a 'slave-transmitter').
Receiver - the device that receives data from the bus. A receiver can either be a device that
receives data on its own request (a 'master-receiver), or in response to a request from the
master (a 'slave-receiver).
Master - the component that initializes a transfer (Start command), generates the clock (SCL)
signal and terminates the transfer (Stop command). A master can be either a transmitter or a
receiver.
Slave - the device addressed by the master. A slave can be either receiver or transmitter.
Multi-master - the ability for more than one master to co-exist on the bus at the same time
without collision or data loss. Typically "bit-banged" software implemented masters are not
multi-master capable. Parallel to I²C bus controllers provide an easy way to add a multi-
master hardware I²C port to DSPs and ASICs.
Arbitration - the prearranged procedure that authorizes only one master at a time to take
control of the bus.
Synchronization - the prearranged procedure that synchronizes the clock signals provided by
two or more masters.
SDA - data signal line (Serial DAta)
SCL - clock signal line (Serial CLock)

I²C address of the targeted device is sent in the 1st byte and the lest significant bit of this
initial byte indicates if the master is going to send (write) or receive (read) data from the
receiver, called the slave device. Each transmission sequence must begin with the Start
condition and end with the Stop or ReStart condition. If there are two masters on the same
I²C-bus, there is an arbitration procedure if both try to take control of the bus at the same time
by generating the Start command at the same time. Once a master (e.g., microcontroller) has
control of the bus, no other master can take control until the first master sends a Stop
condition and places the bus in an idle state.

Terminology for Bus Transfer

F (FREE) - the bus is free or idle; the data line SDA and the SCL clock are both in the high
state.
S (START) or R (RESTART) - data transfer begins with a Start condition. The level of the
SDA data line changes from high to low, while the SCL clock line remains high. When this
occurs, the bus becomes 'busy'.
C (CHANGE) - while the SCL clock line is low, the data bit to be transferred can be applied
to the SDA data line by a transmitter. During this time, SDA may change its state, as long as
the SCL line remains low.
D (DATA) - a high or low bit of information on the SDA data line is valid during the high
level of the SCL clock line. This level must be kept stable during the entire time that the
clock remains high to avoid misinterpretation as a Start or Stop condition.
P (STOP) - data transfer is terminated by a Stop condition. This occurs when the level on the
SDA data line passes from the low state to the high state, while the SCL clock line remains
high. When the data transfer has been terminated, the bus is free once again.

Level-shifting I²C

As new I²C devices are operating at various voltage levels, Philips Semiconductors developed
a fully bi-directional data transfer circuit for I²C-devices operating from different supply
voltages for almost no additional design-in effort or cost. The simple addition of two low-cost
transistors, placed between the different voltage level sections of the I²C-bus, separates and
transfers the logic voltage levels of the bus lines on either side of the level-shifter. This set-up
also allows the level-shifter to be used to isolate a section of powered-down devices from the
bus, allowing powered I²C devices to operate normally. These level-shifting functions can
also be done with low cost level shifting bus buffer or GTL translator devices. The I²C-bus
specification has been extended for devices operating below 2.7 V to ensure the I²C-bus will
remain the serial bus of choice for future systems into the next century.
High-speed mode I²C-bus

Developments in high-speed serial RAMs and mixed technology telecom systems have
created a demand for buses capable of operating at high speeds and with a variety of supply
voltages. The I²C-bus High-speed mode (3.4 MHz) meets these needs without sacrificing its
compatibility with existing Standard and Fast-mode devices or its low-cost simplicity - no
special logic levels, timing or drive capability are needed. A purpose-designed bridge in a
High-speed mode master allows for bi-directional communications between Fast- and
Standard-mode devices within a single I²C-bus system and, if required, this master can also
perform bi-directional level shifting, supporting a variety of different voltage devices. The
high-speed mode is normally found only on LCD display, high bit count ADC or high
capacity EEPROM devices due to the need to transfer large amount of data. Most
maintenance and control applications, the typical reason to use the I²C-bus, continue to
operate at 100 kHz.

10-bit I²C addressing

10-bit addressing allows the use of up to 1024 additional addresses to prevent problems with
the allocation of slave addresses as the number of I²C devices rapidly expands. It does not
change the format for addresses defined in the I²C-bus specification, using addresses reserved
in the existing specification. 10-bit addressing does not affect the existing 7-bit addressing;
allowing devices with 7-bit or 10-bit addresses to be connected to the same I²C-bus, and both
types of devices can be used in Standard-, Fast- or High-speed mode systems. Most all I²C
devices continue to use 7-bit addressing however as designers work around addressing
concerns by using multiple I²C bus ports or multiplexers/switches to allow smaller device
populations on the active bus.

I²C vs SMBus

Developed by Intel in the mid-1990s, the System Management Bus, also known as SMBus, is
a popular derivative of the I²C-bus that is, in most cases, compatible with I²C. Both buses use
a two-wire communication scheme and have addressable slaves. The SMBus is limited to a
maximum data transfer rate of only 100 kbps, requiring special handling in systems that also
use the higher transfer rates available with I²C. Other differences include timeout and
minimum clock speed, voltage levels, pull-up resistor values, and current levels. New I²C
devices are starting to incorporate SMBus features such as timeout that can be turned on and
off depending on the application requirements.

History of the I2C Bus


The I2C bus was developed in the early 1980's by Philips Semiconductors. Its original
purpose was to provide an easy way to connect a CPU to peripheral chips in a TV-set.

Peripheral devices in embedded systems are often connected to the MCU as memory-mapped
I/O devices, using the microcontroller's parallel address and data bus. This results in lots of
wiring on the PCB's to route the address and data lines, not to mention a number of address
decoders and glue logic to connect everything. In mass production items such as TV-sets,
VCR's and audio equipment, this is not acceptable. In these appliances, every component that
can be saved means increased profitability for the manufacturer and more affordable products
for the end customer. Furthermore, lots of control lines implies that the systems is more
susceptible to disturbances by Electromagnetic Interference (EMI) and Electrostatic
Discharge (ESD).

The research done by Philips Labs in Eindhoven (The Netherlands) to overcome these
problems resulted in a 2-wire communication bus called the I2C bus. I2C is an acronym for
Inter-IC bus. Its name literally explains its purpose: to provide a communication link between
Integrated Circuits.

Today, the I2C bus is used in many other application fields than just audio and video
equipment. The bus is generally accepted in the industry as a de-facto standard. The I2C bus
has been adopted by several leading chip manufacturers like Xicor, ST Microelectronics,
Infineon Technologies, Intel, Texas Instruments, Maxim, Atmel, Analog Devices and others.

2.7 GSM

SIM300 is a Tri-band GSM/GPRS engine that works on frequencies EGSM 900


MHz, DCS 1800 MHz and PCS 1900 MHz. SIM300 features GPRS multi-slot class 10/ class
8 (optional) and supports the GPRS coding schemes CS-1, CS-2, CS-3 and CS-4.

You can use AT Command to get information in SIM card. The SIM interface
supports the functionality of the GSM Phase 1 specification and also supports the
functionality of the new GSM Phase 2+ specification for FAST 64 kbps SIM (intended for
use with a SIM application Tool-kit).Both 1.8V and 3.0V SIM Cards are supported. The SIM
interface is powered from an internal regulator in the module having nominal voltage 2.8V.
All pins reset as outputs driving low.

The "AT" or "at" prefix must be set at the beginning of each command line. To
terminate a command line enter <CR>. Commands are usually followed by a response
that includes.”<CR><LF><response><CR><LF>”. Throughout this document, only the
responses are presented, <CR><LF> are omitted intentionally.

Global system for mobile communication (GSM) is a globally accepted standard for digital
cellular communication. GSM is the name of a standardization group established in 1982 to
create a common European mobile telephone standard that would formulate specifications for
a pan-European mobile cellular radio system operating at 900 MHz. It is estimated that many
countries outside of Europe will join the GSM partnership.
2.7.1 COMMANDS

AT+CBC Request module


battery state.

AT+CBC? <n> +CBC: n,m

0: battery not in OK
charge
AT+CBC=? +CBC: (0-3), (0-100)
1: battery in charge
OK
2: battery full
AT+CBC +CBC: n,m
3: battery low
OK
<m>
AT+CBC=1 +CME ERROR 3
0: battery level 0
Note: not support
25: battery level 1

50: battery level 2

75: battery level 3

100: battery level 4

AT+CGMI This command gives


the manufacturer
identification.

AT+CGMI FLYFOT MODEM

Note: Get manufacture identification OK

AT+CGMI=? Note: Command valid, FLYFOT


modem
AT+CGMI?
OK
AT+CGMI=1
+CME ERROR 3

Note: not support

AT+CPAS This command


returns the activity
status of the mobile
equipment.

AT+CPAS <pas> +CPAS: <pas>

Note :Current activity status 0: ready (allow OK


commands from
AT+ CPAS? TA/TE) +CME ERROR 3

1: unavailable (does
AT+ CPAS=? not allow commands) Note: not support

AT+ CPAS=1 2: unknown

3: ringing (ringer is
active)

4: call in progress

5: asleep (low
functionality)

AT+CMGS= <address> <CR> The <address> field


is the address of the
terminal to which the
message is sent. To
send the message,
simply type, <ctrl-Z>

AT+CMGS=.28.<CR> +CMGS: <mr>

0031000BA13105119226F40000AD0A OK
A8C3F6
Note : Successful transmission
30885E9ED301 <ctrl-Z>

AT+CNMI=<mode>,<mt>,<bm>,< This command selects


ds>,<bfr> the procedure for
message reception
from the network.

AT+CNMI=2,1,0,0,0 <mode> : controls the OK


processing of
Note : <mt>=1 unsolicited result Note: message received and saved
codes in sim, then route the SMS-
DELIVERS with unsolicited result
Important note: only codes: +CMTI: SM, <index>
<mode>=2 is supported.
OK
<mt> : sets the result
Note: message received, then route
AT+CNMI=2,2,0,0,0 code indication
the
routing for SMS-
Note : <mt>=2 DELIVER indications. SMS-DELIVERS with unsolicited
result codes: +CMT: [<alpha>,]
<bm> : defines the
<length> <CR> <LF> <pdu>
rules for storing the
received CBMs (Cell OK
Broadcast Message)
types. Note: SMS-STATUS-REPORTS are
AT+CNMI=2,0,0,1,0 routed using unsolicited code:
<ds> for SMS-STATUS-
Note : <ds>=1 REPORTs. Default is +CDS : <length> <CR> <LF>
0. <pdu>
<bfr> Default is 0. OK

AT+CNMI=2,0,0,0,0 Note: No SMS-STATUS-REPORTs are


routed.
Note : <ds>=0
+CNMI: 2,2,0,1,0

Will return the previous status.


at+cnmi?
+CNMI: (0-3),(0-3),(0-3),(0-1),(0,1)
Note : Read

at+cnmi=?

AT+CMGR=<index> This command allows


the application to
read stored messages

AT+CMGR=1 +CMGR: 1,,24

Note : Read the message 0891683108100005F0040D916831


85716393

F900005001429042802304B0182C
06

OK

AT+CMGL=<stat> This command allows <stat> possible values


the application to
read stored received unread messages(0)
messages, by
received read messages(1)
indicating the type of
the message to read. stored unsent messages(2)

stored sent messages(3)


Does not work. all messages(4)

AT+CMGS= <address> <CR> The <address> field


is the address of the
terminal to which the
message is sent. To
send the message,
simply type, <ctrl-Z>

AT+CMGS=.28.<CR> +CMGS: <mr>

0031000BA13105119226F40000AD0A OK
A8C3F6
Note : Successful transmission
30885E9ED301 <ctrl-Z>
Under Windows, only one application may have access the COM Port at any one
time, preventing other applications from using the COM Port. Flash Magic only obtains
access to the selected COM Port when ISP operations are being performed. This means that
other applications that need to use the COM Port, such as debugging tools, may be used while
Flash Magic is loaded. It requires Windows 95/98/ME/NT/2000/XP operating system.

6.7 General commands for GSM


1. Manufacturer identification +CGMI
Description:
This command gives the manufacturer identification.

Syntax:
Command syntax: AT+CGMI

2. New message indication +CNMI


Description:
This command selects the procedure for message reception from the network.

Syntax :
Command syntax : AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>
3. Send message +CMGS

Description :

The <address> field is the address of the terminal to which the message is sent. To send the
message, simply type, <ctrl-Z> character (ASCII 26). The text can contain all existing
characters except <ctrl-Z> and <ESC> (ASCII 27). This command can be aborted using the
<ESC> character when entering text. In PDU mode, only hexadecimal characters are used
(‘0’…’9’,’A’…’F’).

Syntax :

Command syntax in PDU mode :


AT+CMGS= <length> <CR>
PDU is entered <ctrl-Z / ESC >
The message reference, <mr>, which is returned to the application is allocated by the product.
This number begins with 0 and is incremented by one for each outgoing message (successful
and failure cases); it is cyclic on one byte (0 follows 255).

GSM FLOW CHART:

GSM_Send_SMS

AT+CMGS= command transmitted serially to


GSM module through UART0

0x22(ASCII value of “)

Mobile number

0x22(ASCII value of “)

0x0D(ASCII value of carriage return)


POWER SUPPLY

An AC to DC adaptor as been used to get DC input for the mother board. In mother
board, we have developed a 5V regulator circuit, which is needed for microcontroller as
supply voltage. IR transmitters are also connected to 5V supply, so that they always transmit
high signal. LM7805 is used for 5V regulated supply.
+12V

LED 1
1 R1 2 1 2
1K
LED

1
CON1 U1 +12V +5V
1 U2 LM7805
2 4 - + 2 1 3

GN D
3 VIN VOU T

1
3 PIN D C SO C KET

2
BR ID G E C4 +C2

2
C3+ 10uF /63V
470uF /35V 0.1uF

2
2

LM7805 Positive Voltage Regulator


General Description

The LM78XX series of three terminal positive regulators are available in the TO-220
package and with several fixed output voltages, making them useful in a wide range of
applications. Each type employs internal current limiting, thermal shut down and safe
operating area protection, making it essentially indestructible. If adequate heat sinking is
provided, they can deliver over 1A output current. Although designed primarily as fixed
voltage regulators, these devices can be used with external components to obtain
adjustable voltages and currents.
Features
 Output current in excess of 0.5A
 No external components
 Internal thermal overload protection
 Internal short circuit current-limiting
 Output transistor safe-area compensation
 Available in TO-220, TO-39, and TO-252 D-PAK packages
 Output voltages of 5V, 12V, and 15V

TESTING
The testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality
of components, sub-assemblies, assemblies and/or a finished product It is the process of
exercising software with the intent of ensuring that the Software system meets its
requirements and user expectations and does not fail in an unacceptable manner. There are
various types of test. Each test type addresses a specific testing requirement.

● Functional testing
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user
manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.

● Structural testing
Structural testing ensures that the entire integrated software structure meets requirements. It
tests a configuration to ensure known and predictable results. An example of system testing is
the configuration-oriented system integration test. Structural testing is based on process
descriptions and flows, emphasizing pre-driven process links and integration points.

● Levels of testing
Performance Testing
The Performance test ensures that the output be produced within the time limits, and
the time taken by the system for compiling, giving response to the users and request
being send to the system for to retrieve the results.
Software integration testing is the incremental integration testing of two or more integrated
software components on a single platform to produce failures caused by interface defects.
The task of the integration test is to check that components or software applications, e.g.
components in a software system or – one step up – software applications at the company
level – interact without error.
System Testing
System testing ensures that the entire integrated software system meets requirements. It tests
a configuration to ensure known and predictable results. An example of system testing is the
configuration oriented system integration test. System testing is based on process descriptions
and flows, emphasizing pre-driven process links and integration points.
● Testing the project
Testing was done flowing each testing method mentioned and at last Unit testing was done.
Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program input produces valid outputs. All decision branches
and internal code flow should be validated. It is the testing of individual software units of the
application .it is done after the completion of an individual unit before integration. This is a
structural testing, that relies on knowledge of its construction and is invasive. Unit tests
perform basic tests at component level and test a specific business process, application,
and/or system configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined inputs and
expected results
IMPLEMENTATION
Once the system has been designed, the next step is to convert the
designed one in to actual code, so as to satisfy the user requirements as excepted. If the
system is approved to be error free it can be implemented.
When the initial design was done for the system, the department was
consulted for acceptance of the design so that further proceedings of the system
development can be carried on. After the development of the system a demonstration was
given to them about working of the system. The aim of the system illustration was to
identify any malfunctioning of the system.
Implementation includes proper training to end-users. The implemented
software should be maintained for prolonged running of the software.

Initially the system was run parallel with manual system. The system
has been tested with data and has proved to be error-free and user-friendly. Training was
given to end -user about the software and its features.
MAINTENANCE
The term “software maintenance” is used to describe the software
engineering activities that occur following delivery of a software product to the customer.
The maintenance phase of the software life cycle is the time period in which a software
product performs useful work.Maintenance activities involve making enhancement to
software products, adapting products to new environments and correcting problems.
Software product enhancement may involve providing new functional capabilities,
improving user display and modes of interaction, and upgrading external documents.
Adaptation of software to a new environment may involve moving the software to a
different machine. Problem correction involves modification and revalidation of software to
correct errors. The enhancement of this project can be accomplished easily. That is, any
new functional capabilities can be added to the project by simply including the new module
in the homepage and giving a hyperlink to that module. Adaptation of this project to a new
environment is also performed easily.
Corrective Maintenance
Even with the best quality assurance activities, it is likely that they
customer will uncover defects in the software. Corrective maintenance changes the software
to correct defects.
Adaptive Maintenance
An activity that modifies the software to properly interface with a
changing environment. The system has been modified so that various change include to the
new system.
In case of Fund Transfer, adoptive maintenance has been
performed, that is in earlier system (character based UNIX system) changes are fixed and if
any new changes are to be included, was a difficult task. Now provisions are given so that
the user can define various changes. Such as it designed to accommodate the new change in
further.
Enhancement Maintenance
As software is used, the customer/user will recognize additional
functions that will provide benefit. Perceptive maintenance extends the software beyond its
original functional requirements.
In the case of visual cryptography ,system can be added new
functions such that the user can able to retrieve the information in a user friendly and it will
be very helpful for future development.
SYSTEM TESTING AND IMPLEMENTATION

TESTING METHODOLOGIES:

1. Black box testing


This is done by testing the system without any knowledge of internal design or code.
This typically will be carried by a functional expert than a technical expert. Tests are
based on requirements and functionality.

2. White box testing


This testing is based on knowledge of the internal logic of an application's code. Tests
are based on coverage of code statements, branches, paths, and conditions.

3. Unit Testing
Unit Testing is the first level of dynamic testing and is first the responsibility of the
developers and then of the testers. Unit testing is performed after the expected test
results are met or differences are explainable /acceptable.

4. Parallel/Audit Testing
Testing where the user reconciles the output of the new system to the output of the
current system to verify the new system performs the operations correctly.

5. Functional Testing
Black-box type of testing geared to functional requirements of an application. Testers
should perform this type of testing.

6. Usability Testing
Testing for 'user-friendliness'. Clearly this is subjective and will depend on the
targeted end user or customer. User interviews, surveys, video recording of user
sessions, and other techniques can be used. Programmers and testers are usually not
appropriate as usability testers.
7. Incremental Integration Testing
Continuous testing of an application as new functionality is recommended. This may
require various aspects of an application's functionality be independent enough to
work separately before all parts of the program are completed, or that test drivers are
developed as needed. This type of testing may be performed by programmers or by
testers.

8. Integration Testing
Upon completion of unit testing, integration testing, which is, black box testing, will
begin. The purpose is to ensure distinct components of the application still work in
accordance to customer requirements. Test sets will be developed with the express
purpose of exercising the interfaces between the components. This activity is to be
carried out by the Test Team. Integration test will be termed complete when actual
results and expected results are either in line or differences are explainable/acceptable
based on user/management input.

9. System Testing
Upon completion of integration testing, the Test Team will begin system testing.
During system testing, which is a black box test, the complete system is configured in
a controlled environment to validate its accuracy and completeness in performing the
functions as designed. The system test will simulate production in that it will occur in
the "production-like" test environment and test all of the functions of the system that
will be required in production. The Test Team will complete the system test.
Prior to the system test, the unit and integration test results will be reviewed by
Software Quality Assurance (SQA) to ensure all problems have been resolved. It is
important for higher level testing efforts to understand unresolved problems from the
lower testing levels. System testing is deemed complete when actual results and
expected results are either in line or differences are explainable/acceptable based on
client input.

10. End-to-End Testing


Similar to system testing, the 'macro' end of the test scale involves testing of a
complete application environment in a situation that mimics real-world use, such as
interacting with a database, using network communications, or interacting with other
hardware, applications, or systems if appropriate.

11. Regression Testing


The objective of regression testing is to ensure software remains intact. A baseline set
of data and scripts will be maintained and executed to verify changes introduced
during the release have not "undone" any previous code. Expected results from the
baseline are compared to results of the software being regression tested. All
discrepancies will be highlighted and accounted for, before testing proceeds to the
next level.

12. Sanity Testing


Sanity testing will be performed whenever cursory testing is sufficient to prove the
application is functioning according to specifications. This level of testing is a subset
of regression testing. It will normally include a set of core tests of basic GUI
functionality to demonstrate connectivity to the database, application servers, printers,
etc.

13. Performance Testing


Although performance testing is described as a part of system testing, it can be
regarded as a distinct level of testing. Performance testing will verify the load,
volume, and response times as defined by requirements.

14. Load Testing


Testing an application under heavy loads, such as the testing of a web site under a
range of loads to determine at what point the systems response time degrades or fails.

15. Installation Testing


Testing full, partial, or upgrade install/uninstall processes. The installation test for a
release will be conducted with the objective of demonstrating production readiness.
This test is conducted after the application has been migrated to the client's site. It will
encompass the inventory of configuration items (performed by the application's
System Administration) and evaluation of data readiness, as well as dynamic tests
focused on basic system functionality. When necessary, a sanity test will be
performed following the installation testing.

16. 40Security/Penetration Testing


Testing how well the system protects against unauthorized internal or external access,
willful damage, etc. This type of testing may require sophisticated testing techniques.

17. Recovery/Error Testing


Testing how well a system recovers from crashes, hardware failures, or other
catastrophic problems.

18. Compatibility Testing


Testing how well software performs in a particular hardware / software / operating
system / network etc. environment.

19. Comparison Testing


Testing that compares software weaknesses and strengths to competing products.

20. Acceptance Testing


Acceptance testing, which black box is testing, will give the client the opportunity to
verify the system functionality and usability prior to the system being moved to
production. The acceptance test will be the responsibility of the client; however, it
will be conducted with full support from the project team. The Test Team will work
with the client to develop the acceptance criteria.

21. Alpha Testing


Testing of an application, when development is nearing completion Minor design
changes may still be made as a result of such testing. Alpha Testing is typically
performed by end users or others, not by programmers or testers.

22. Beta Testing


Testing when development and testing are essentially completed and final bugs and
problems need to be found before the final release. Beta Testing is typically done by
end users or others, not by programmers or testers.

TESTING FUNDAMENTALS

Software testing is an important element of S/W quality


assurance and represents the ultimate review of specification, design and coding.
The increasing visibility of S/W as a system element and the costs associated with
a S/W failure are motivating forces for well planned, through testing.
Though the test phase is often thought of as separate and
distinct from the development effort--first develop, and then test--testing is a
concurrent process that provides valuable information for the development team.
There are at least three options for integrating Project
Builder into the test phase:
 Testers do not install Project Builder, use Project Builder functionality to compile
and source-control the modules to be tested and hand them off to the testers, whose
process remains unchanged.
 the testers import the same project or projects that the developers use.
 Create a project based on the development project but customized for the testers
(for example, it does not include support documents, specs, or source), who import
it.
A combination of the second and third options works best.
Associating the application with a project can be useful during the testing phase, as
well. We can create actions to automatically run test scripts or add script types and
make them dependent on the modules to test.
TESTING OBJECTIVES
There are several rules that can serve as testing objectives.
They are
 Testing is a process of executing a program with the intent of finding an error.
 A good test case is one that has a high probability of finding an undiscovered error.
 A successful test is one that uncovers an undiscovered error.
If testing is conducted successfully according to the objectives stated
above, it will uncover errors in the software. Also, testing demonstrates that
software functions appear to the working according to specification, that
performance requirements appear to have been met.

OBJECT ORIENTED TESTING

UNIT TESTING
Unit testing focuses the verification effort on the smallest
unit of S/W design i.e., the module. The unit testing is always white-box oriented
and the step can be conducted in parallel for modules.
During unit test, testers can use the same project or projects
as the developers, if functional units organize the project, or separate projects have
been created for functional units. The project or projects can also be exported, so
unit test can take place in a variety of environments and on a variety of platforms.

UNIT TEST CONSIDERATIONS


The tests that occur as part of unit testing. The module
‘interface’ is tested to ensure that information properly flows into and out of the
program unit under test. The ‘local data structures’ are examined to ensure that
data stored temporarily maintains its integrity during all steps in an algorithms
execution.
‘Boundary Conditions’ are tested to ensure that the module
operates properly at boundaries established to limit or restrict processing. All
‘independent paths’ through the control structures are exercised to ensure that all
statements in a module have been executed at least once. Finally, all ‘error-
handling paths’ are tested.

UNIT TEST PROCEDURES


Unit testing is considered an equivalent to the coding step.
After the source level code has been developed, reviewed and verified for correct
syntax, unit test case design begins since a module is not a stand alone program,
‘driver’ and/or ‘stub’ S/W must be developed for each unit test. In most
applications, a driver is nothing more than a main program that accepts test case
data, passes such data to the module to be tested, and prints the
relevant results. The stubs serve to replace modules that are subordinates called by
the modules to be tested. A stub or a dummy stub or a dummy subprogram uses the
subordinate modules interface, may do minimal data manipulation, prints
verification of entry, and returns. The drivers and scrubs represent overhead i.e.,
both are S/W that must be written but that is not delivered with the final S/W
product. If the drivers and the stub are kept simple, then the overhead is low.
The Unit Test is carried out in this project, and is found
successful. The data is flowing correctly to all part of the project.

INTEGRATION TESTING
Integration testing is a systematic technique for constructing the
program structure while at the same time conducting test to uncover errors
associated with interfacing. The objective is to take unit-tested modules and build a
program structure that has been dictated by design.

TOP-DOWN INTEGRATION
1. This method is an incremental approach to the
construction of program structure. Modules are integrated by moving downward
through the control hierarchy, beginning with the main program module.
Importing the test project and setting up the testing environment
The process of importing a test project
and setting up a testing environment is the same as the process for importing a
project and setting up the environment for development.
Adding test scripts and test data to the project
You may need to add some items, such
as test scripts, to the project. In addition, you may need to add connection strings to
database accounts containing test data.
Remember that you can automate the running of test
scripts just as you can automate actions associated with the modules in your
application.
Modifying actions and macros to facilitate testing
If actions specifying "run with debugging" have not already been
provided, you can either modify existing actions to include a debug flag, or create new
actions.
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality
of components, sub assemblies, assemblies and/or a finished product It is the process of
exercising software with the intent of ensuring that the Software system meets its
requirements and user expectations and does not fail in an unacceptable manner. There are
various types of test. Each test type addresses a specific testing requirement.

6.1 Unit testing


Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program input produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual software
units of the application .it is done after the completion of an individual unit before
integration. This is a structural testing, that relies on knowledge of its construction and is
invasive. Unit tests perform basic tests at component level and test a specific business
process, application, and/or system configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented specifications and contains clearly
defined inputs and expected results.

6.1.1 Functional test


Functional tests provide systematic demonstrations that functions tested are available
as specified by the business and technical requirements, system documentation, and user
manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures: interfacing systems or procedures must be invoked.

6.1.2 System Test


System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system testing
is the configuration oriented system integration test. System testing is based on process
descriptions and flows, emphasizing pre-driven process links and integration points.

6.1.3 Performance Test


The Performance test ensures that the output be produced within the time limits,
and the time taken by the system for compiling, giving response to the users and request
being send to the system for to retrieve the results.

6.2 Integration Testing


Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by interface
defects.
The task of the integration test is to check that components or software applications,
e.g. components in a software system or – one step up – software applications at the company
level – interact without error.

Integration testing for Server Synchronization:


 Testing the IP Address for to communicate with the other Nodes
 Check the Route status in the Cache Table after the status information is received by
the Node
 The Messages are displayed throughout the end of the application

6.3 Acceptance Testing


User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.

Acceptance testing for Data Synchronization:

 The Acknowledgements will be received by the Sender Node after the Packets are
received by the Destination Node
 The Route add operation is done only when there is a Route request in need
 The Status of Nodes information is done automatically in the Cache Updation process
IMPLEMENTATION SOURCE CODE

SNAPSHOTS

CONCLUSION
A lot of lives have been lost due to falling in the bore well because it involves digging a pit beside a
bore well which is a time consuming process. The proposed system is to overcome all these
difficulties. This project is used to reduce human efforts for rescuing operations from bore well. It
performs rescue operations in very less time as compared to traditional methods. Thus, it has been
designed keeping the entire obstacle in mind that may arise during the operation. We like to conclude
with the help of my research project I am able to rescue without any damage

REFERENCES:
[1] Adams, JA 2002,‟Critical Considerations for Human-Robot Interface Developmen‟,
Proceedings of 2002 AAAI Fall Symposium, 2002 - aaai.org, Rochester Institute of
Technology Rochester, New York.
[2] Mikolajczyk, K,Schmid, C & Zisserman ,A 2004, „Human detection based on a
probabilistic assembly of robust part detectors‟ . European Conference on Computer Vision,
Oxford, United Kingdom. [3] Richer, J & Drury, JL 2006 „A Video Game-Based
Framework for Analyzing Human-Robot Interaction ‟, Characterizing Interface Design in
Real-Time Interactive Multimedia Applications. MITRE Corporation, United states of
America

[4] Uschin, K, Inteam, S, Sae-eaw,N, Trakultongchai, A, Klairith, P, Jitviriya, W &


Jenkittiyon , P,‟ RoboCup Rescue 2009 - Robot League Team iRAP_Pro (Thailand)‟,King
Mongkut‟s University of Technology North Bangkok (KMUTNB) , Bangkok Thailand.

[5\ “Pipeline Inspection And Bore well Rescue Robot “Palwinder kaur,Ravinder
kaur,Gurpreet singh.IEEE, VOL 3, NO. 4,April 2014

[6\B.Bharathi, B. Suchitha Samuel “Design and Construction of Rescue Robot and Pipeline
Inspection Using ZigBee” International Journal of Scientific Engineering and Research
(IJSER) Volume 1 Issue 1, September 2013.

[7\Manish Raj, P.Chakraborty and G.C.Nandi “Rescue robotics in bore well Environment”
Cornell university library [v1] Mon, 9 Jun 2014 10:51:44 GMT (244kb).

[8] C. Kemp, A. Edsinger 2007, Challenges for Robot Manipulation in Human


Environments. IEEE Robotics & Automation Magazine, 2007 pp. 20-29.

[9] “Rescue System for Borewell Accidents”, Sanket Arun Talekar, Suraj Bhimrao Katkar,
Pooja Kumari,Department of Electronics and Telecommunication, Dr. D Y Patil School Of
Engineering, Lohegaon, Pune, Maharashtra, India

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy