: 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.
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.