DTU 
 

 

02162: Course on Software Engineering 2 (e14)

Project: A Smart Home Security and Monitoring System
 

The project associated with the course Software Engineering 2 (02162) in autumn 2014 is the development of a Smart Home Surveillance and Monitoring System, which uses smart phones as sensors and actors.

 

The project will be presented and discussed with the students in the lecture and project slots of the course. The rough idea of the project and its scope are outlined below (see slides here).

 

Overview

This system should be designed in a configurable way, so that different sensors of smart phones can be combined and dynamically reconfigured, based on the input from these devices.

 

For example, when a movement is detected at a door (by a phone attached to it), one or more video apps could be automatically activated transmitting the video surveillance to some server. At the same time, the home owner or some security company could be notified, and presented with the online video footage from the activated cameras at the home. Based on that, the user might raise an alarm to the police or just watch what is going on via different video or audio streams. At the same time, another app could switch on some light or play some sound, in order to pretend that someone might be home.

 

The system should be flexible enough to easily create new kinds of sensor and actor apps for phones and to easily register new sensor or actor apps to an existing monitoring configuration; by defining rules for triggering each other and notifying some persons, these apps could trigger each other dynamically — and switch on and off recording based on the given situation and newly incoming events. Of course, it should also be possible to start surveillance manually.

 

Such a Smart Home Surveillance and Monitoring System consists of three main parts:

  1. The apps for smart phones that use the sensors (video, audio, movement, temperature, humidity, ..) for reporting them continuously or on demand to the backend, and apps that serve as actors (flashlight, audio, ...)
  2. The backend to which the different sensor and actor apps register, and which collects and combines their input, and triggers some actor apps, based on some rules defined by the users. It is also the backends responsibility to store (the required) information permanently in a database or in files.
  3. A client, which can be used for monitoring the home and for configuring the rules for the sensor and actuator apps. The client can also be used for online surveillance or for viewing information that was recorded in the past. This client could be either a web application or a smart phone application or a combination of both.

Perspective

CITIES: LogoThis project is done in cooperation and the kind support of the CITIES project. The CITIES project is mostly interested in smart use of energy. Our Smart Home Surveillance and Monitoring System, however, could be easily extended to record and monitor data relevant for reducing energy consumption by taking the weather, temperature and lighting situation and the current energy consumption into account. During the course of this project, the CITIES project will provide some smart phones and also some devices for measuring energy consumption of a home. A feature for monitoring temperature and energy consumption could be chosen as one of the optional features for the system (see below).

 

If you are interested, you will have the chance to pursue some of the ideas of this project in more depth, in continuation of this course in the context of the CITIES project.

 

Minimum requirements

Below, there is a brief overview of the minimum requirements for the system to be implemented.
Sensor and actor apps for smart phones:
  • at least three different sensor or actor apps:
    • video camera
    • movement app (e.g. detecting that a door is opening when attached to it)
    • playing some (pre-recorded) sounds on request
  • one additional sensor or actor app that makes sense in the context of home security or in the CITIES project
Backend:
  • server to which the apps can connect and that (if required) records the data
  • server allows to set up and change the configuration and rules for how the apps are used, and allows apps to register with it
  • once, the apps are connected, the server should be able to control the apps
Clients (apps or web):
  • a client that allows to change the confifuration of the home security system
  • a client on which the online status of the sensor (that can be selected by the user) are shown
  • a client that can be used to view recorded data of the system
  • a client app that raises an alert, when some predefined event or combination of events have occured
Example configuration:
  • a concrete configuration set up with apps, server and clients which demonstrates the value of the system as a home security system.
The system should be implemented for the Android platform by using Eclipse ADT for implementing the Apps. The backend should be implemented using Eclipse WPT and the Glassfish server and some database (could be Derby, which is smoothly integrated with Glassfish and the Eclipse WPT)

 

Scoping

In a productive setting, there would be many additional functional and non-functional requirements on such a system. Due to the short timeframe, however, this project needs to focus on only some of them. In addition to the above minimal requirements, the flexibility and extensibility of the design are very important.

 

Issues like trust, privacy and security — even though extremely important in general — are considered to be less important in the scope of this simple project. So is the performance of the overall system and the energy consumption on the smart phones (it can be assume that they are connected to a power line for now). The system should, however, be performant enough to work for a single home configuration in real-time.

 

Ekkart Kindler (), Aug 14, 2014 (last updated Sep 4, 2014)