Document Type

MS Project Report


Computer Science and Engineering

Publication Date






Technical Report Number



To facilitate the WU Smart Home research [21] we built a system that collects data from sensors and uploads the data to the cloud. The system supports data collection from multiple locations (typically apartments) that are independent from each other, endowing the system with two benefit: distributed data collection and alleviating privacy concerns. Each location is managed by a local micro-server (μServer) that is responsible for receiving data packets from sensors and managing their transient storage. Periodically the μServer triggers a data transport process that moves the data to a cloud server where it is stored in a centralized database. In the cloud, the receiving subsystem verifies that the data is coherent and if so, inserts it to the database for permanent storage. Errors are detected and stored in a designated table for review and correction when possible. The database is relational and referential integrity is defined over the schema to force data coherency. The system was designed to support dynamic module loading allowing system deployers to author their own sensor specific module to validate the data in any way they want. iii Important features of the system are configured without code changes. For example, users can define sensor identification rules by editing a configuration file. There is full support for logging. Input-Output and other expressions that can fail are enclosed within a try-except clauses and an overarching error handling module controls critical events. The system is written in Python 2.7.5 [12] and its runs on Linux (on both the μServers and the cloud server) and the embedded code is written in nesC [18] and runs on TinyOS 2.1.2 [15]. The source code is well documented; each module has introduction section, descriptive variable names and CONSTANTS are used, when appropriate inline (expression level) comments are provided. README.txt files are provided for each module. Excluding Python, the system uses the latest versions of every tool or OS that it rely on.


MS Project in Computer Science, 2014