Internet Of Things2020-Assignment 4

Elective in Internet of Things

(A. A. 2019/2020)

Fourth Assignment

In this assignment we will built a mobile application to provide a crowd-sensing extension to our application. We build on-top of the cloud-based and edge-based components developed in the first and second assignments.

Crowd Sensing Application

You need to develop an HTML5 application using the Generic Sensor API that collects data form the accelerator sensor of the mobile phone.

The values collected need to be transmitted to your Cloud infrastructure.

User Activity Recognition

Using the data collected at the cloud, you need to develop a simple activity recognition model that detects if the user is standing still, or walking/running/being on a vehicle.

Consider that assuming a movement of at most 0.5 Hz (i.e., 30 steps per minute), a sampling frequency of 1Hz (i.e., 1 message per second) is theoretically sufficient to recognize the pattern. Note that you can even send 1 message with multiple sampling to reduce the network traffic.

You may look into the following publications to develop a simple activity recognition model:

  • Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra and Jorge L. Reyes-Ortiz: "A Public Domain Dataset for Human Activity Recognition Using Smartphones", European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning (ESANN 2013). View Paper
  • Khan, Adil & Lee, Y.-K & Lee, Soo-Young & Kim, Tae-Hun: "Human Activity Recognition via an Accelerometer-Enabled-Smartphone Using Kernel Discriminant Analysis", Proceedings of 5th International Conference on Future Information Technology (FUTURETECH 2010). View Paper
Cloud-based Deployment

Deploy your activity recognition model to the cloud. Given the data arriving to the cloud, you should execute the model and provide a status for the state of the user either periodically (e.g., every minute / every hour, etc) or whenever new values arrive.

Using your favorite programming language and web development libraries develop a web site that provides the following functionality:

  • Display the latest values received from all the sensors and the resulting activity.
  • Display the values received during the last hour from all the sensors and the resulting activity.
Edge-based Deployment

Deploy your activity recognition model to the mobile phone. Given the data collected by the mobile phone, the model should be executed locally to provide a status for the state of the user.

Modify your system so that in this edge-based deployment the raw sensor data are not transmitted to the cloud. Instead only the outcome of the activity recognition model should be transmitted to the cloud.

Using your favorite programming language and web development libraries develop a web site that provides the following functionality:

  • Display the latest activity of the user.
  • Display the activities received during the last hour.

What/How to submit

  • Create a YouTube video with a 3 minute demonstration of your system.
  • Create a Blog Post where you present a hands-on tutorial on how to setup and run your system.
  • Extend the GitHub repository of the previous assignments to push all your code and scripts that are need to realize the above assignment.
  • Make sure that you re-organize your repository so that the code used in the previous assignments along with the new code are properly structured and interoperable.
  • Update the README.md file where you provide links to your video and post of the new assignment, and also those of the previous one in a structured way.