Sei sulla pagina 1di 6

I. A. Zualkernan et al.

: InfoPods: Zigbee-Based Remote Information Monitoring Devices for Smart-Homes


Contributed Paper
Manuscript received June 9, 2009 0098 3063/09/$20.00 2009 IEEE
1221
InfoPods: Zigbee-Based Remote Information Monitoring Devices
for Smart-Homes
Imran A. Zualkernan, A. R. Al-Ali, Mustafa A. Jabbar, Imad Zabalawi, and Ahmed Wasfy
Abstract Recent developments in ad-hoc wireless
networks, single-chip embedded systems and the wide-spread
availability of Internet in homes has made it possible to
remotely monitor status of external data sources and home
appliances using small, independent wireless devices. This
paper presents an open-architecture and an implementation of
such a system called the Infopods System. This architecture is
based on a Zigbee-based controller. The architecture allows
multiple family members to simultaneously monitor their
home appliances as well as external Internet resources using
cheap, stand-alone hand-held mobile wireless devices. The
proposed architecture can be easily integrated with existing
smart-home systems. The architecture is implemented and
demonstrated in the context of an existing Java-based smart-
home architecture.
1


Index Terms smart home, Zigbee protocol, embedded
systems, design patterns, mobile devices.,
I. INTRODUCTION
Smart home appliances are typically controlled locally
and/or monitored remotely. The controllers typically include
computing elements such as single chip microcontrollers [2,
3], PC-based controllers [4, 5], programmable controllers [6],
Television [7] and stand-alone single board microprocessors
[8]. Monitoring techniques, on the other hand, have utilized
communication technologies such as GSM/GPRS networks
[2, 3, 6, and 9], Bluetooth [4, 8], the Internet [4, 10] and
power line carriers [11]. Monitoring typically requires access
to a computer or to a fixed panel. In addition, most of the
above mentioned techniques typically allow a single user
access at a time.
This paper presents a multi-user wireless home monitoring
system called the Infopods System that exploits the Zigbee
protocol [12]. This system can be easily integrated with any
one of the above mentioned smart home architectures. A
unique aspect of this system is that it provides a concurrent
wireless monitoring facility to multiple family members

1
The research reported here was supported by the American University of
Sharjah. UAE.
Imran Zualkernan is with the American University of Sharjah, UAE (email:
izualkernan@aus.edu)
A. R. Al-Ali is with the American University of Shrjah, UAE (email:
aali@aus.edu)
Mustafa A. Jabbar was with the American University of Sharjah, UAE.
(email: mjabbar@gmail.com )
Imad Zabalawi was with the American University of Sharjah, UAE (email:
izabalawi@yahoo.com)
Ahmed Wasfy was with the American University of Sharjah, UAE and
now is at University of Waterloo, Canada (email: awasfy@swen.uwaterloo.ca)

within the same home. In other words, a family member does
not have to go to a specific location in the home (e.g., a panel
or a computer) to access the status of their appliances. Rather,
each family member carries a small wireless device similar to
a T.V. remote controller, which keeps them informed of the
status of their appliances. For example, in one scenario, a
family member could be monitoring the stove while being in
the garden. An additional advantage of this system is that it
can also acquire external information such as weather
prediction data from the Internet. This weather data, in turn,
can be utilized by home appliances to conserve energy. The
system uses the XML-based Really Simple Syndication (RSS)
protocol [13] to interface with any external data source.
The rest of the paper is organized as follows. Section II
describes the Infopods System hardware. Infopods software
architecture is described in section III. Next, a case study
showing how Infopods System can be integrated with an
existing hardwired home monitoring system [1] is presented
and discussed in section IV. Finally, a conclusion is presented
in section V.
II. HARDWARE ARCHITECTURE
The Infopods hardware architecture consists of three basic
building blocks; a standard PC, a coordinator board and
several monitoring boards. Each building block is described
below:
Personal Computer: This is a standard PC equipped with a
large hard disk capacity and substantial amount of DRAM.
This PC is utilized as a hardware server to host the software
server and to provide Internet connectivity.
Coordinator board: This is a commercial Zigbee protocol
based board that consists of a transceiver and an on-chip
microcontroller. The transceiver operates at 2.4GHz and is
IEEE 802.15.4 compliant (wireless communication range of
~50-70m). The microcontroller is a 16MHz 32-bit RISC
optimized for low power, 96kB RAM, 4-input 12-bit ADC, 2
11-bit DACs, 2 Application timer/counters and a 2-wire serial
interface.
Monitoring boards: Each of these boards is similar in
functionality to the coordinator board. However, in addition
to a Zigbee stack, each monitoring board has an LCD display
to enable a user to view the data.
III. SOFTWARE ARCHITECTURE
The Infopods software architecture is divided into three
primary blocks; Monitoring Nodes software (M-Node), the
coordinator node software (C-Node) and the Infopods Server
software (ISS). ISS has Internet access via the local service
IEEE Transactions on Consumer Electronics, Vol. 55, No. 3, AUGUST 2009 1222
provider. In addition, ISS is connected to a Zigbee coordinator
node (C-node) using an RS-232 interface. Figure 1 shows the
Infopods system deployment diagram. This diagram shows
that C-nodes are deployed on the coordinator board, M-nodes
on the monitor board and the ISS on the PC. Each of the three
software building blocks is described below:
A. The Monitoring Nodes (M-Node)
The monitoring nodes (M-Nodes) are based on a
commercial Zigbee platform. Each M-Node runs a Zigbee
stack and has a small LCD display to show data. Each node
runs an embedded operating system. This operating system
executes compiled embedded C-programs utilizing the Zigbee
protocol to access and display data.


Fig. 1. Infopods System Deployment Diagram

The displayed data can originate from an appliance, from a
local controller, from a home automation controller, or from
an external source such as the Internet. For example, Figure 2
shows a monitoring node showing live data from the
NASDAQ stock exchange. The same display can also be used
to display status of home appliances. With appropriate
packaging, a monitoring node can easily be carried around in
a typical shirt pocket.
Figure 3 shows the UML sequence diagram of the C code
running on an M-Node. Each M-Node performs the following
functions:
1. AppColdandWarmStart() Function: This is the main
entry point for the M-Node which is called after the
ROM-resident boot loader is executed. It initializes
the input/output digital ports, and sets up the message
object parameters such as the communication
channels.
2. VstackEvent Function: This function is used to add
simple descriptors for each node, (i.e., ProfileId and
DeviceId) on the M-Node.

3. JZA_bAfMsgObject(): On the M-Node, the
MSG_Object is received by this function and this
function is used to store the information passed from
the C-Node. This function also identifies the sending
device through the devices address, and it checks the
destination address embedded within the broadcasted
MSG_Object. Once verified, the message is then
decoded and displayed by the M-Node using the
function DisplayData().
4. DisplayData(): Displays the received data on the
LCD screen in the M-Node.




Fig. 2. An M-node showing stock market data

B. Coordinator Node (C-Node)
The Coordinator Node (C-Node) provides a link between
the ISS and the M-Nodes. Data exchange between the C-
Node and M-Nodes is based the Zigbee protocol. C-Node
communicates with ISS using an RS232 serial port.
The C-Node programs are coded using the C language. As
Figure 3 shows, this C code is divided into five major
functions to perform the following tasks:

1. AppColdandWarmStart() Function: This function
performs the same task as in the M-Node in
addition to setting up the personal area network
(PAN) ID for the C-node.
2. VstackEvent Function: This function is used to
add simple descriptors for each node, (i.e.,
ProfileId and DeviceId) on the C-Node.
3. EnableUARTInterrupt(): This function enables the
C-Node to be interrupted whenever the ISS sends a
request.
4. ReceiveData() Function: This function represents
the call-back function that receives the data from
the ISS through the serial port.
I. A. Zualkernan et al.: InfoPods: Zigbee-Based Remote Information Monitoring Devices for Smart-Homes 1223
5. SendData() Function: The C-Node uses this
function to send a message object transaction to
the corresponding M-Node with the specified
object parameters.
C. The Infopods Server (ISS)
The primary design objective of ISS is to provide a reliable
interface between data sources and hand-held M-Nodes via
the C-Node. Consequently, the ISS performs the following
tasks:
1. Configure external data sources.
2. Receive and process user requests through an
Internet-based application.
3. Obtain up-to-date data from the specified data
sources.
4. Parse incoming data from data sources.
5. Arrange data into packets conforming to a
prescribed transmission protocol.
6. Send the data via the RS-232 interface to the C-
Node where it will be forwarded to the respective
M-Node.


Fig. 3. C-Node and M-Node UML Sequence Diagram

To perform the above tasks, a Java program was developed.
This program is divided into six packages. Figure 4 shows the
UML package diagram for ISS. Each package consists of
several classes. A brief description of each package is
provided below:
1. Configuration Interface this interface links the
Java server with the web application. This package
also contains the functions that specify the
communication protocol of the system.
2. Configuration this package contains all the
classes that handle configuring the nodes to track
user defined data sources
3. Data Access this package allows users to save
their data source configurations and (re) load them.
4. Node Tracker this package contains classes that
keep track of the physical nodes currently alive in
the network.
5. Realtime Info Tracker- this package contains
classes to track the different sources specified by
the user.
6. Display Factory this package is responsible for
generating different displays depending on the
users preference.

Fig. 4. Infopods Server UML Packages Diagram

Figure 5 shows the high level UML class diagram for the
above mentioned packages. In order to enforce modularity
and low coupling, the ISS software design employs a number
of well-known software design patterns. For example, the
interaction between data sources (like the home monitoring
system) and the monitoring nodes (M-Nodes) are modeled
using the Observer design pattern [14]. Each M-Node is
explicitly represented as an observer and is registered with the
subject (the ISS-Server) through the configuration interface.
Similarly, the Factory pattern is used to generate different
types of displays for the M-Nodes (text vs. graphical, for
example). Currently, M-Nodes support both a textual and a
graphical interface. Similarly, the Singleton design pattern is
used to create internal queues. The Dispatcher design pattern
is used to tackle the synchronization issues of M-Nodes in a
multi-threaded manner. Finally, a Model-View-Controller
(MVC) design pattern is used to separate the data from the
view and control properties of each M-Node.
As Figure 5 shows, the ISS also uses an open-source
ODBC-compliant relational database management system
(DBMS) to store and retrieve the configuration information.
Figure 6 shows a UML sequence diagram that explains how
a particular M-Node is configured to track data from a data
source. The user interacts with the system through a GUI to
configure an available M-Node to track data from a particular
data source like a home appliance. The GUI sends a
sendConfig message to the Configuration object where a new
subject instance is created for each data source and a new
observer instance is created for the M-Node tracking that
source (1). The subject then creates a new thread to track any
changes in data (2,3). Finally, the data is sent to the C-Node
through the serial port where it is routed to the physical
Zigbee node representing the M-Node (4).
IEEE Transactions on Consumer Electronics, Vol. 55, No. 3, AUGUST 2009 1224
Figure 6 also shows the UML sequence diagram showing
how the threads are notified when new data arrives for a
subject (5 and 6). This notification process is critical to ensure
that the data displayed on the M-Nodes is always up-to-date.
As soon as the subject instance for an M-Node is created, it
immediately polls the chosen data source to check if the data
has been updated since the last read operation. If so, the
appropriate threads are notified, and in turn the data is sent to
the C-Node.


Fig. 5. UML Class Diagram for the Infopods Server

Configuration Subject Dispatcher DispFactory C-Node
1
2
3
4
5
6
1. Add To Observer
2. Create Thread
3. Create Display
4. Send To C-Node
5. Check Source
6. Notify Thread

Fig. 6. UML Sequence Diagram notifying threads

The ISS sends data to the C-Node as soon as it becomes
available. The format of the datagram sent is shown in Figure
7. Data is sent in packets of 1 byte each where the first byte
contains the node address; therefore the system can support up
to a maximum of 256 endpoints. Each of the following bytes
contains data, and the datagram is terminated with a byte
containing a \0.

Fig. 7. Datagram Format

When the C-Node receives the data packet, it determines
its destination address, which is an 8-bit address appended to
the beginning of the data to forward it to the corresponding
endpoint by broadcasting the MSG frame via the central PAN
coordinator (C-Node). There is no communication among M-
Nodes; all communications takes place through the C-Node
thus effectively forming a star based network.
The ISS also supports a web application interface allowing
users to configure their M-Nodes online. The web application
interface uses the Java Servlets [15] technology to
communicate with the server application. Figure 8 shows data
source like an Real Simple Syndication (RSS) feed [13] being
used as a standard interface for one of the sources for four M-
Nodes in the system. Simple check-boxes and a drop-down
menu make the web interface easy to use for nave home-
users. In addition, the home owners can change the
configuration of their M-nodes remotely from the Internet
using a standard web-browser.



Fig. 8. Remotely configuring an M-Node

Since the server supports any arbitrary data-source, any
information from the internet can be shown on an M-Node.
For example, an M-Node showing an RSS feed of current
weather in San Jose, California is shown in Figure 9.
I. A. Zualkernan et al.: InfoPods: Zigbee-Based Remote Information Monitoring Devices for Smart-Homes 1225
IV. INTEGRATION WITH SMART HOME SYSTEM
This section shows how the Infopods System is integrated
with the Java-based smart home automation system developed
by one of the co-authors earlier [1].
A. The smart home system
At its core, the smart home automation system consists
of a server PC and an E-board [1]. In this system, a server PC


Fig. 9. An M-Node showing updated weather from the Internet
is used to host the Java application that enables users to
monitor their home appliances over the Internet. The E-board
is a readymade off-the-shelf 8-bit microcontroller that
contains digital I/O ports, memory, an expansion slot, a two-
line 16 character LCD and extra hardware resources that make
it suitable for this task. The microcontroller has been
programmed using the C language.
Home appliances are connected to the digital output of the
E-board via relays to provide sufficiently high currents and
voltage compatibility. To overcome any defects in the home
appliances, a feedback circuit has been designed and
implemented to indicate the devices actual status. The main
sensing element is a current transformer and a signal
conditioning circuit that outputs a digital signal indicating the
devices status. The control and management engine is
written in the C language, and resides on the boards EPROM.
It is referred to as a C-Control Management Engine (CCAM).
The main function of this engine is to communicate with the
circuits connected to the home appliances. A Java-based
Control and Management engine (JCAM) is used to validate
the user parameters and to display the home-appliance data to
a user.
B. System Integration
The server for the smart home automation system is based
on JSP and JavaBeans. Therefore, one obvious integration
choice would be to merge the Infopods System (ISS) with java
code of the home automation system. However, doing so
violates the modularity of the system. Because of the modular
design of ISS, the integration involves writing a subject for
each appliance state and registering it. As Figure 10 shows, a
subject is created for each appliance state (for example, on or
off) that needs to be tracked via an M-Node. This subject asks
the JCAM for the appliance state. JCAM, in turn connects to
CCAM which returns the appropriate value from the home
appliance. Once the subject receives the value, using the
observer pattern, it calls the call-back for the appropriate
observer or the m-node. This results in the value being
transferred and displayed on the corresponding M-Node.



Fig. 10. System Integration between ISS and a Smart Home System

Figure 11 shows the E-Board and the states of the door and
fan being displayed on an M-Node. The ISS:subject is
running on a computer hooked to the C-Node through an RS-
233 connection. The JCAM server is running on the same
computer. CCAM is running directly on the E-board which
communicates with JCAM through the RS-232 connection.
The home appliances are connected through various ports of
the E-Board as shown in Figure 11.


Fig. 11. Integration of ISS with Smart Home System
IEEE Transactions on Consumer Electronics, Vol. 55, No. 3, AUGUST 2009 1226
VI. CONCLUSION
This paper has presented the architecture of a wireless
monitoring system that allows home-owners to monitor
various components of their smart home. The architecture is
based on the Zigbee protocol that is cost-effective and scales
to a large number of devices. The system can be interfaced
with existing smart home automation systems to allow
multiple users to wirelessly monitor their home appliances
status and get real-time data from the World Wide Web such
as weather and traffic status, stacks market prices and public
transportation schedule
ACKNOWLEDGMENT
We would like to thank Mr. Suresh Radar for integrating
the ISS server with the smart home automation system.
REFERENCES
[1] A. R. Al-Ali, M. Al-Rousan, Java-based home automation system,
IEEE Transactions on Consumer Electronics,vol. 50, no. 2, pp. 498
504, May 2004.
[2] A. Alheraish, Design and implementation of home automation
system, IEEE Transactions on Consumer Electronics, vol. 50, no.
4, pp. 1087 1092, Nov. 2004.
[3] A.R .Al-Ali, M.A. Rousan, M. Mohandes, GSM-based wireless
home appliances monitoring & control system,
2004 International Conference on Information and Communication
Technologies: From Theory to Applications, 2004. Proceedings.
April 19-23, pp. 237-238, 2004.
[4] A. Z. Alkar, and U. Buhur, An Internet based wireless home
automation system for multifunctional devices, IEEE Transactions
on Consumer Electronics, vol. 51, no. 4, pp. 1169 1174, Nov. 2005.
[5] G. Song, Z. Wei, W. Zhang, W. and A. Song,
Design of a Networked Monitoring System for Home Automation
IEEE Transactions on Consumer Electronics,
vol. 53, no. 3, pp. 933 937, , Aug. 2007.
[6] A. Alheraish, W. Alomar, and M. Abu-Al-Ela, Programmable Logic
Controller System for Controlling and Monitoring Home Application
Using Mobile Network,
Proceedings of the IEEE Instrumentation and Measurement
Technology Conference, 2006. IMTC 2006. pp. 469 472, April
2006.
[7] M. R. Cabrer, R. P. Redondo, A. F. Vilas, J. J. Arias, and J. G.
Duque, Controlling the smart home from TV IEEE Transactions on
Consumer Electronics, vol. 52, no. 2, pp. 421-429, May 2006.
[8] N. Sriskanthan, F. Tan, and A. Karande, Bluetooth based home
automation system, Microprocessors and Microsystems, vol. 26, no.
6, pp. 281-289, 10 August 2002.
[9] B. Yuksekkaya, A. A. Kayalar, M.B. Tosun, M. K. Ozcan, and A. Z.
Alkar, A GSM, internet and speech controlled wireless interactive
home automation system, IEEE Transactions on Consumer
Electronics, vol. 52, no. 3, pp. 837 843, Aug. 2006.
[10] M. Can Filibeli, O. Ozkasap, and M. Reha Civanlar, Embedded web
server-based home appliance networks, Journal of Network and
Computer Applications, vol. 30, no. 2, pp. 499-514, April 2007.
[11] Y. Ping and Y. Heng-Ming, A Practical Intelligent Home System
Based on Power Line Communication, 2nd International Conference
on Power Electronics Systems and Applications, 2006. ICPESA '06.
Nov 12-14, pp. 273-276, 2006.
[12] D. Gislason, Zigbee Wireless Networking, Newnes Press, 2007.
[13] D. Ayers and A. Watt, Beginning RSS and Atom Programming, Wrox
Press, 2005.
[14] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns:
Elements of Reusable Object-Oriented Software, Addison-Wesley
Professional, 1994.
[15] M. Hall, Core Servlets and JavaServer Pages, Prentice-Hall, 2000.


Imran A. Zualkernan Dr. Zualkernan holds a B.S. (high
distinction) and a Ph.D. in Computer Science from
University of Minnesota, Minneapolis, USA. Dr.
Zualkernan has taught at the University of Minnesota,
Pennsylvania State University and the American University
of Sharjah. Dr. Zualkernan was the founding CEO of a
public-limited software services company and the CTO of
an e-Learning technology company. His areas of interest are knowledge
management, organizational learning, software engineering, IT management, six
sigma and e-Learning. He has published over 60 articles in refereed journals and
conferences. He is a recent recipient of the IBM Faculty Research Award.

A. R. Al-Ali Dr. Al-Ali earned his Ph.D. in Electrical
Engineering from Vanderbilt University, Masters from
Polytechnic Institute of New York, USA and BSc in
Electrical Engineering from Aleppo University, Syria.
He is a professor at the AUS Department of Computer
Engineering. Prior to joining AUS, he was at King Fahd
University of Petroleum and Minerals, Saudi Arabia. Dr.
Al-Ali worked as a R&D engineer for MSS Inc. in Nashville, Tennessee,
USA. His research interest are embedded systems, data acquisition units and
PLC hardware/software architectures, computer applications in industry,
industrial plants remote monitoring and control using GSM, GPRS, MMS
networks and the Internet.

Mustafa A. Jabbar received a BS degree in Computer
Engineering from the American University of Sharjah,
Sharjah, UAE in 2008. His research interests include
software Engineering design and development, home
networks, sensor networks and applications of embedded
systems.

Imad Zabalawi received a B.S. degree in computer
engineering from the American University of Sharjah,
UAE, in 2008. His research interests are in the areas of
software engineering including software design,
verification and validation, quality, architecture, and
development.


Ahmed Wasfy received his B.S. degree in Computer
Engineering from the American University of Sharjah,
Sharjah, UAE, in 2008. He is currently pursuing his M.S.
degree in Software Engineering at the University of
Waterloo, Waterloo, Canada. His research interests
include software engineering, software design and
architecture and software evolution and maintenance.

Potrebbero piacerti anche