PAGE
CONTENTS
This
is to certify that the project Smarthome insignis has been designed and
developed by us and is in no way borrowed from anyone else.
Excluding
the analog circuit, all the other circuits have been designed by us. Apart from
the third party software listed on the next page, all the software we are using
has been designed and developed by us.
________________ (
________________ (
________________
(Jatinder Singh)
For
the development and deployment of this project, we needed various software for
varying purposes, and considering all the aspects we were dealing with, we
found the following packages incredibly helpful and ideal for our development
and deployment.
]
Borland® Turbo C++™ 3.0, the incredible, ever-so-useful package for C++
development, used and taught across all schools and colleges, which in itself
is a complete solution it came to C++.
]
Protel Tech, Inc CircuitMaker® Student V6.2, a very helpful and handy tool for the design and
simulation of our circuit.
]
Microsoft® Visual Basic® 6.0, the undisputed tool for user interface design,
aided with the very helpful WYSIWYG package.
]
Katlina Tech Voice Guide 4.7.12 working trial
version, a powerful and interactive
tool for designing and deployment of computer based interactive voice response
systems.
]
Dragon Naturally Speaking 5.2 Preferred, the leading voice recognition package with the
ability to recognize and decipher the Indian accents.
]
Microsoft® Windows™ 98 Second Edition, which needs no introduction and is an ideal
platform for the SmartHome insignis.
All
product names are trademarks or registered trademarks of their respective
owners.
The Team
No
project can happen unless, of course, you want it to happen. There are a number
of factors that define team organization, but, in all cases the most basic
organization idea would be a spirit to make the project happen. So, like all
powerful projects this project too has a powerful team to back it up, to make
things possible, and to turn dreams to realities.
C++
programming, circuit design, C++ front-end, C++ back end, Control systems
E-mail:
[email protected]
C++
programming, circuit development, C++ backend, Control systems development.
E-mail: [email protected]
Jatinder Singh, 13117020
User
Interface, electrical systems, Control systems implementation.
E-mail: [email protected]
A smarter house for
the common man
Every
person has his own perception of what a SmartHome actually is. We may be
disappointing some very rich people here, but then our project was never aimed
at the superrich, but rather for the everyday user. The kind who feels that
electricity is a precious commodity, the kind who would still like some
sophistication in his life, the kind who likes to draw some real value for
their money.
One
very primary goal of the project is budget minimization, which directly implies
minimizing production costs. A lot of emphasis is placed on providing solutions
through the use of software, the cost of which we do not include in development
or deployment costs. There are a couple of third party software packages
involved which would considerably increase the cost and we are working on
developing solutions so that we can provide our own alternatives for those.
Another
very important factor to be considered when developing something for the
everyday user is the ease of use. Most people seem to get confused by a complex
interface. Even too many buttons can bewilder the not-so-techno-savvy person.
So, another logical aim when developing the system would be to build a user
interface which is really, really simple to understand and use.
There
are no end the features that can be incorporated to make your home smarter, so
regardless of how techno savvy you are you can always personalize the system to
suit your specific needs and attach only those systems which will indeed be
helpful to you. For the average user, we bundle a set of the most essential
features that we consider every home must be equipped with.
Guiding Principles
Simple. Convenient. Robust
Simple Quite simply it should make your life simpler. How
would we do that? Well, to start with you will be having a very friendly
interface to deal with. There’s that mapmode in which you can view a section of
the house and control and check on the lights and appliances. On the whole,
everything will be kept very simple so that you are never at a non-plus because
of the system.
Convenient All control and information will be available at
your fingertips. You can conveniently control and monitor all appliances using
your computer or from any available telephone. You can program any switch to act
in a certain manner using an easy to use programming interface – and no,
programming doesn’t mean you need to use some obscure programming keywords. All
you need to know is how to move the mouse about.
Robust You can’t wait to switch on your bathroom light
because your computer is still initiating a boot sequence. The point is, your
electricals cannot come to a standstill because of any failure in the system.
The system needs to be very robust and should detect errors whenever it can and
take evasive action. If the PC is hung up, it should reboot automatically. If
the system, due to some failure, cannot function, it should automatically
revert to manual control. All components employed should be very reliable so
that failures are minimal. On the whole, the system should be very, very
reliable. After all, it controls your entire home.
Idea Overview
The
central idea of the project is to control all your household appliances,
lighting and other electricals using a computer system programmed for that purpose.
Apart from the control part, a number of sensors would be deployed around the
house so that you can monitor various activities around like doors, the gas
regulator and many more. You can easily program the system to suit your needs
by programming it. Programming here involves using an intuitive graphical
interface, so that you can achieve the most complex tasks in the simplest of
ways. And no, you don’t need to know computers to operate the system. A
5-minute tutorial delivered when the system is installed will tell you all you
should know to enjoy the advantages.
The System
Architecture
Every
system has to have an architecture, either explicit or implicit. So, rather
than have a crude architecture coming up automatically as a result of a
bottom-up design strategy, we decided to carefully analyze an architecture
which we could implement and which could provide us with the necessary
features.
We’re
using a three level architecture, one for central control, one for delegated control
and one for the interface. All the levels in themselves are independent, so
that an error or a failure of one layer does not affect the other layers. Thus,
this delegation of control is quite necessary to make the system robust.
Covered
in the following pages are the details of the functions of each layer and how
the layers would interact.
The Three Level Architecture
The Central Control and Monitoring Station
The CCMS is, as the name suggests, the central point
where all the ends meet to make the SmartHome. The CCMS is a limited power
computing station with an associated circuit for decoding the signals from the
parallel port and communicating information to the appropriate room circuit.
The CCMS also communicates with the Interface, if it is a separate station,
over a network link. The CCMS, may, if required assume the role of the
interface itself.
The CCMS is, by far, the most important part of the
SmartHome, and the functioning of all the automation systems depend on this
system. The basic tasks of the CCMS can be summed up as below:
Ø
Providing an Application backend, which the various applications like voice command,
tele-control, etc can communicate to, since it would be the only way that
signals can actually be transmitted to or received from the various room
control units.
Ø
Providing a control interface. The CCMS also provides an interface for controlling
and monitoring the various switches and sensors.
Ø
Timer Control. The CCMS is also responsible for monitoring the execution of various
timers that have been defined by the user.
Ø
Event Triggering. The CCMS would be responsible for monitoring the various sensors and
then executing any events that may be related to those sensors.
Ø
Tele-Control. The CCMS would be running a tele-control application. This would be
responding to all incoming calls after a specific number of rings and would
present the caller with an interactive voice guided menu to control and monitor
various appliances around his house.
Ø
Camera Control. The CCMS would be responsible for capturing images using a camera
deployed at the entry point so that the visitor control system and the intruder
photographing system can use the images.
Ø
Centralization. This is the point where all the control systems synchronize to
activities around the house to provide an integrated system.
The
Independent Room Control Unit
The IRCU would be an independent hardware unit
installed in each room the SmartHome controls. The unit would control and monitor
the various switches on instructions from the CCMS. The CCMS would have a
memory system for maintaining the status of all switches in the room. The CCMS
would also be provided with a user switch interface so that users can switch
appliances and electricals from within the room itself. The IRCU would be
responsible for disabling the actual switches and then enabling the special
switches which can be automatically controlled.
The IRCU is independent of the functioning of the
CCMS, and even if the CCMS is not functioning, the IRCU will function as usual.
The basic functioning of the IRCU is thus to hold the status of all the
switches in the room, and respond to user requests from within the room itself.
Additionally, the computer may also direct it to toggle it a specific switch,
or read the status of the switches and the various sensors. Thus the IRCU also
acts as a feedback to the CCMS.
The
Interface
The interface is the part which the user deals with,
that is, the user interface, the voice command system and the direct control
system. Here, the user may check the status of any appliance around the house,
or issue commands to the system from the house map, from other categorized
menus or using simple voice commands. The interface may be a remote PC
networked to the CCMS over a LAN, over telephone lines or over the internet.
Alternatively, the CCMS may assume the role of the Interface itself and be
equipped with the required software for monitoring and control.
Since the interface needs to interact with the user,
it needs to be incredibly simple so that nobody feels like a novice when
dealing with it. Simplicity shouldn’t, however, crush the power of the system.
So, the greater challenge lies in bringing about the power of the system to the
novice user, so that he can easily customize the system in accordance to his
needs.
The Software
Architecture
The software architecture is again divided into
three levels, one for the backend, one acting as an interface, and one level
for the various functions that need to be performed.
Event Triggering Tele Control
Module User Interface Command Line
Interpreter Voice Command
Module The Parallel port
control program Timer Control
Program
The Backend
The
backend is a C++ program that receives requests from the other user and system
programs and directs the various IRCUs accordingly, using the parallel port.
Thus, the implementation details of the various room and switch codes are
limited to this program. All the other programs simply enter a request for
access through the common request file, which the backend interprets and issues
directives accordingly.
Apart
from this program, there would be other programs that do the automation work
like implementation of timer and event triggering. They read corresponding
information from the various control files and then append information to the
CRF, when required.
The User
Interface
The
user interface is the program which is presented to the user and the
administrator, which implies that there would be two versions of the interface
itself, one with a very easy-to-understand interface for the user, and one with
a more complex interface with extensive control features which give the
administrator complete control over the system.
The Voice
Command System
The
voice command system receives requests from the user in the form of speech
recognition over a VB application, when then executes a command line program
with parameters accordingly.
The IVR
Tele Control System
The
Interactive Voice Response System responds to telephone calls through a modem
and then presents the user with an interactive voice guided menu, so that the
user can control and monitor his various electricals and appliances through any
available telephone.
Introduction to the hardware
Needless to say, some key hardware components will be
involved in the design of the project. What we basically intend to do is use
the signals from the PC parallel port (the printer port) to control switches
electronically using relays. Since the output from the parallel port would be
limited to eight lines, we need to encode the signals using software which
would then be decoded using some specific decoding circuitry. Discussed
overleaf are the key hardware elements for the project
The PC Parallel port
The
PC parallel port is a 25-pin port commonly referred to as the printer port. For
most PC configurations the base address is configured as 0x378 (where 0x specifies that the value is in
hexadecimal).
The
general operating data is summed up below
PIN |
Use |
Port Name |
R/W |
Address |
2-5 |
Data Out |
|
W |
Base |
6-9 |
Data Out |
|
W |
Base |
1 |
Strobe |
|
R/W |
Base + 2 |
14 |
Auto Feed |
|
R/W |
Base + 2 |
16 |
Init |
|
R/W |
Base + 2 |
17 |
Select i/p |
|
R/W |
Base + 2 |
15 |
Error |
|
R |
Base + 1 |
13 |
Select |
|
R |
Base + 1 |
12 |
Paper end |
|
R |
Base + 1 |
10 |
Ack |
|
R |
Base + 1 |
11 |
Busy |
|
R |
Base + 1 |
Pins
18-25 serve as Ground.
For this project we’d
probably be using pins 2-9 for the signal. Additional pins would be used as
required.
The Relay
Simply
stated, a relay is a switch which can be operated using a current source. That
is, is we can switch it on or off by applying a voltage across its terminals.
We actually apply the voltage across a coil of wire, as a result of which a
magnetic field is generated. This magnetic field attracts one terminal and
connects it to the other. This way we can switch it on. And when the current is
stopped, the coil de-energizes and the terminals separate, thus switching the
switch off.
This is what a relay looks like ..
The Relay
The Relay terminals
Decoding the Signals
The parallel port has eight lines for data output. Using
them directly implies we can control up to eight devices from the computer. But
an average house would need significantly more control ports. So, to overcome
this limitation we will need to encode the signals using software before they
are output from the parallel port. Thus, the signals the parallel port now
emits from its eight lines can control up to 256 devices using this port by
encoding all 8 bits directly. Instead, we choose to encode the lines separately
so that we can select the rooms and the switches in the room. For this purpose,
we assume we have to control seven rooms and seven switches in each room. And
then, we’ll be using one line for diagnostic purposes. So, we have eight rooms
and eight switches per room. For selecting eights, we need three output lines.
Thus, three output lines for the rooms and three output lines for the switches
enable us to control upto sixty-four devices. If we increase the room count to
sixteen, we now need four lines for the room and thus using seven lines we can
control sixteen rooms with eight switches per room, which adds up to 128
switches, which we control using the computer.
And now, since the computer is providing us with
encoded signals, the hardware would need to decode the signals to understand
which room and which switch is being selected. To accomplish this decoding
process, we need to use an electronic IC known as a decoder/demultiplexer. The
IC 74138 is a
Thus,
using this chip, along with a couple of other like buffers, invertors, etc.,
the signals can be effectively decoded and we can control 64 lines using the
parallel port.
The Circuit
The
circuit can basically be divided into two parts, the analog and the digital
part.
The Analog Circuit
Since
the digital circuit provides a 5V output and we would be controlling 6V relays,
we need to convert the output to 6V. We do this by using the circuit below
using a transistor as a switch to switch the 6V supply on or off using the 5V
from the PC.
The Digital Circuit
Since
the signals available from the parallel port are encoded, we need a circuit to
decode those signals. Further, the circuit also needs to remember the state of
the various switches connected to it. It will also need to respond to requests
from the manual switches or the computer, and would also need to report the
status of the various switches and sensors to the computer.
Crisis Prevention
Inspite
of all our best efforts, problems are bound to appear when the system is
implemented. There may be many problems which can only be detected and removed
once the system is actually implemented. Since the system would be controlling
some very important electricals around the house, it is imperative that we
adopt a approach where there is an easy alternative route to take in case of
any problems.
To
work around any such changeover crisis scenarios, we, instead of scrapping the
traditional switches, choose to override the switches, still keeping them as an
integral part of control. So, the user can, with a simple flick of the switch,
disable the automatic control and resort to the simple tried and trusted
standard switches.
Overriding Manual Control
Now
that we have decided that we would actually be overriding manual control, how
do we disable the manual control and transfer control to the automatic control.
Well, we’ll be using this circuit ..
We simple attach the manual switch to this circuit.
A 6V lines serves as the override line. When this 6V line is active, the
Control Enable and Override relays are energized. This causes the control
signal bridging to be complete and control signals are transmitted to the
control relay. The override relay, on the other hand is connected in the
normally closed (NC) state, and the 6V signal thus disables the manual switch.
The circuit, as a CAD output..
Override
Sig Manual S/W Ctrl Sig. N/C N/O
So now we understand that, if the 6V Override signal
is cut-off we revert back to manual control. There are three ways of disabling
this 6V supply.
The Main Kill Switch
The main kill switch is attached to the main power
supply. When this switch is switched off, the central power supply is cut off
and all control systems are shut down and the manual switches in all rooms are
enabled.
Central AutoControl Disable Switch
The central autocontrol disable switch is
electronically controlled and cuts off the power supply to all the room
circuits and thus, all manual switches are enabled. This option can be
triggered from the computer itself.
Room AutoControl Disable Switch
The Room AutoControl disable will cut off the 6V
supply for the room, thus enabling the manual switches and disabling the
automatic control relay.
Bootable Media
The system is supplied with a bootable CD-ROM and a
bootable floppy disk which can be used in the event of any software failure to
keep all essential system running until some preventive action can be taken.
This way, in the event of an emergency, any PC can be deployed to control the
system, which would be up and running as soon as it boots.
Security and
Visitor Control
The SmartHome insignis would be equipped with a
Security and visitor control system to help make your house more secure.
The security system would gather data from various
sensors around the house and ensure that their have been no intrusions. In the
event of an intrusion, the system would raise an alarm, and, if the owners and
outside, can even call them on their telephone. If there is no response, the
system may then call the neighbor’s telephone and deliver the message. The system would be enabled automatically at
specific times and would also disarm itself as and when required, for example,
when you open a door from inside.
The visitor control system would, as soon as the
doorbell is rung, display a photograph of the doorway and thus the visitor. The
user would be presented with various choices, like unlocking the doors, opening
the gate or opening the gate, sending a tele-message, etc.
Personal Profile
Identification Panel
There are various people around the house and each
has his own different preferences. Well, a smarter house has to understand this
simple fact and make it’s users, however different they may be, feel more
comfortable.
Well, one way to accomplish this would be to use a
personal profile identification panel. Each room would have a panel with a
button for each user of the room. So, as soon as a user enters a room and
selects his profile, the system would act according to his very own settings.
For eg, if person1 selects his profile and the time is 7am , the curtains draw
open, the lights switch on and then the radio switches on. If however, profile2
is selected, nothing of the sort happens, as the user likes to sleep till late.
The curtains draw open at
System Requirement
Specifications
For the
basic system:-
Hardware
o A P-1 200Mhz
; 32MB ; 2.1GB would do just fine
Software
For the
fully functional version:-
Hardware
Software
A Perspective on the future
Real Smartness
Nothing can really be considered smart unless it
exhibits some form of intelligence. Hence, the SmartHome cannot be called smart
unless and until it learns to take some decisions on it’s own.
In a very lucid sense when we say the house is
‘smart’ it should have the capability to understand the user’s needs and should
then program itself to suit the user. Thus, the system should automatically
understand the patterns by which the user operates. There should be no need for
the user to explicitly program the system or issue instructions. The system
should do all that for him.
Only when the SmartHome exhibits such behaviour can
it be really considered ‘smart’, and that is the penultimate aim of the project
… real smartness.
(D) 2005
iDC. All rights reserved.