Non-communicable diseases, like myocardial infarction, stroke, chronic respiratory diseases, or diabetes, impose a great burden on societies all over the world, causing 71% of all deaths globally. However, these diseases are evitable since risk factors, such as smoking, unhealthy diet, or lack of physical activity, are known and can be avoided. Hence, lifestyle changes play a major role in the prevention and management of non-communicable diseases. (cf. WHO Factsheet on Noncommunicable Diseases) Nowadays, it is possible to collect different types of data from daily life with consumer wearables, like smartwatches or fitness trackers. Based on that, we can give patients feedback on their health status and provide healthcare professionals with insight on the progression of lifestyle interventions, such as changed diet, exercise routines, stress management.
The SensorHub framework was developed as part of one master and one bachelor project titled Unobtrusive Health Monitoring for Driving Lifestyle Changes using Wearables. The goal of SensorHub is to simplify studies for scientists, researchers and patients. It allows users to create virtual studies and collect data from subjects using multiple Bluetooth sensors of different manufacturers in a single place. It consists of three main components.
The native Android app is written in Kotlin and is responsible for connecting and recording the measurements of different kinds of sensors and wearables via Bluetooth Low Energy (BLE). It can also record measurements of the internal sensors of the smartphone (like accelerometer, gyroscope, etc.). The apps’ architecture allows for easy extensibility when integrating new sensors. A new BLE sensor can be added by writing a new app module which incorporates the sensor by either using a Software Development Kit (SDK) provided by the manufacturer or by directly implementing the Bluetooth connection protocol for the particular sensor. The sensor data is stored temporarily on the smartphone’s internal storage. While recording, the app also allows the subject to tag the data. This is an essential feature as it provides labelled data, which can then be used by the researcher to extract certain correlations between the data and the activities investigated in the study. Furthermore, the app allows the subjects to login and automatically upload their recordings to the backend.
The backend is responsible for storing the collected sensor data. It uses the time-series database InfluxDB to store each sensor measurement within nanosecond precision. It provides a user and role management system and lets researchers create and configure the devices and tags for their studies. Moreover, it also implements key data extraction features like filtering the data by timestamp, sensor type, user, study or recording, and provides the option for a CSV data export.
The dashboard gives researchers access to the features of the backend. It provides the user interface (UI) for the backend functionality to researchers and supports different visual representations of the recorded data.