Io T Ph D2020-Assignment 2

PhD Course on Smart Environments: Technologies, state of the art and research challenges

(A. A. 2019/2020)

Second Assignment

The second assignment builds on top of the design produced during the 1st Assignment. The goal is to implement the system using AWS IoT core services.

Virtual Sensors

Using your favorite programming language you need to create a stand-alone program that represents a virtual station that periodically generates a set of random values based on the sensors that you've design during 1st Assignment and transmits them to the AWS IoT Device Gateway.

You are free to use any of the https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html available native AWS IoT SDK or connect to the AWS IoT Device Gateway via an MQTT client.

Make sure that the virtual station uses a unique ID (identity) to publish these random values on the MQTT channel and timestamp each measurement. Your program needs to be written in a way such that can be executed multiple times in order to concurrently simulate different virtual sensors.

Bonus: If you have identified a dataset relevant to the sensors and usage scenario described during the 1st Assignment, you may choose to replay the data included in the dataset rather than generate random sensor values.
Data

Implement the data structure design produced in the 1st Assignment using AWS DynamoDB.

Data Storage

Use the AWS IoT Rules Engine to store the data arriving from the virtual sensors to the data store designed in the above step.

How To Submit

You need to extend the GitHub public repository you've created during the 1st assignment. Extend the main README.MD file to provide the following information:

  • A link to the source file of the virtual sensor
    • A short description of how the virtual sensor operates.
  • A presentation of the data store you implemented.
    • A short description of the AWS IoT rules that you have used.
    • Provide screenshot with sample data.
  • A link to a YouTube Video presentation of maximum 3-minutes presenting your system, explaining how data are transmitted through the AWS IoT core services and how they are stored in DynamoDB.

The link to the github repository needs to be submitted via Google Classroom.