HAUSY

Faculty of Informatics and Management UHK, Faculty of Science UHK

Project Description

HAUSY is an abbreviation for Home Automation System for everyone. This project focuses on the creation of a robust and modular system for controlling an intelligent environment. The three layers architecture is used in this system. The first layer is a server, which controls all the systems. The second layer consists of the subsystems responsible for each logical part of the system, like for example a room in a house. The third layer are nodes, which communicate with the sensors and actuators in the given environment. Different plugins can be easily attached to the system, thanks to which various services for users can be provided, like for example connection with different health/fitness monitoring systems. The design of the system's architecture enables subsystems to work independently of the server in case of a lost connection or a server malfunction.

Detailed information

HAuSy is designed differently from traditional commercial solutions. The three-layer architecture is used for the server, subsystems, and nodes. The server is a generic replacement for the control unit. The Linux operating system is used, and the Java application embedded in the web container runs there. Its goal is to provide the UI applications with API, evaluate the user´s defined rules, maintain security, and fetch or send the data to the subsystems. The architecture of this approach is shown in Figure 1.

 



The subsystems represent the major extension over the framework of traditional architectures. The single server present in the home or cloud service communicates with the multiple subsystems. These are installed in each major room of the house and communicate with hardware endpoints called nodes. The subsystem seems to be redundant if the mode works correctly, but if a malfunction of the server appears, the subsystem is able to work properly with the directly connected nodes. The subsystem is implemented in Raspberry Pi single-board computers with an option to easily migrate onto any available alternative. Two applications reside in them. One written in Java shares a large amount of the code base with the server. It acts as the gateway between the C++ application and the server as default. The C++ application called controller then directly communicates with the nodes.

The nodes are in the lowest layer, they replace modules from the two-layered solutions. Each node must contain a microcontroller, which works with peripherals. The subsystem and nodes communicate with the full duplex industry standard RS485 wired bus or with wireless Bluetooth Low Energy. The critical components such as door locks, lights, and switches should be connected with wires due to their better reliability. Raspberry Pi uses internal UART with RS485 drivers. The nodes use identical drivers and wait for commands from the subsystem. The micro-controller chosen for the implementation of the nodes is 8bit RISC from Microchip, namely 16F690 or any better pin-compatible successor. ANSI C compiled with MicroC proprietary compiler has been selected for their firmware development.

 

Project supervisor