Bore Bot Final Report
Bore Bot Final Report
.
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
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.
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
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.
RS232 CONVERTER
It Converts the PC Voltage (-10v to +10) to PIC Microcontroller Voltage (-5v to +5v) and vice
versa
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 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
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
Data request
Initialize sensor
Robot
START
If Wi-Fi
NO connect
ed
yes
Weight &
NO vibrationTh
ershold
YES
Send values
Compare
Sensor Server
Application
DATA FLOW DIAGRAM LEVEL 0
0.0
Application
Connect
Connect with server
Send
Travel path
Connect
Initialize Microcontroller
Initialize sensor
Alert message
Activity diagram
POSSIBLE IDENTIFICATION OF SOFTWARE DEVELOPMENT ACTIVITIES
SOFTWARE DEVELOPMENT AS APPLICATION DOMAIN: A USE CASE MODEL
Software development
<<include>> <<include>>
<<include>>
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
Requirements
document
Requirements
specification
Design activities
Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification
Design products
Unit
testing
Module
testing
Sub-system
testing
System
testing
Acceptance
testing
PROTOTYPING
INCREMENTAL DEVELOPMENT
Define outline Assign requirements Design system
requirements to increments architecture
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.
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
All operation
40
Analysis
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,
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.
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.
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.
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.
Blynking
Go back to the Blynk App, push the button and turn the LED on and off! It should be
Blynking
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:
● 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.
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.
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.
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).
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.
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.
For more information about other features, take a look at the references at the end of this
article.
Top
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
Master
The device which initiates a transfer, generates clock signals and terminates a
transfer.
Slave
Transmitter
Receiver
Standard Mode
Fast Mode
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
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.
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.
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.)
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
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.
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 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.
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.
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.
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 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.
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
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
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
1: unavailable (does
AT+ CPAS=? not allow commands) Note: not support
3: ringing (ringer is
active)
4: call in progress
5: asleep (low
functionality)
0031000BA13105119226F40000AD0A OK
A8C3F6
Note : Successful transmission
30885E9ED301 <ctrl-Z>
at+cnmi=?
F900005001429042802304B0182C
06
OK
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.
Syntax:
Command syntax: AT+CGMI
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 :
GSM_Send_SMS
0x22(ASCII value of “)
Mobile number
0x22(ASCII value of “)
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
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:
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.
TESTING FUNDAMENTALS
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.
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.
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
[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).
[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