Internet Of Things2020-Assignment 3

Elective in Internet of Things

(A. A. 2019/2020)

Third Assignment

In this assignment we will built on-top of the cloud-based and edge-based components developed in the first and second assignments. Now we will replace the MQTT protocol and the short-range wireless medium with LoRaWAN and TheThingsNetwork. In this assignment you need to develop a new RIOT-OS application that will be executed on the B-L072Z-LRWAN1 LoRa kit. You will use TheThingsNetwork to interconnect the sensor devices with the cloud infrastructure via the MQTT protocol.

LoRaWAN Station

Using RIOT-OS develop an application that represents a virtual environmental station that generates periodically a set of random values for 5 different sensors:

  1. temperature (-50 ... 50 Celsius)
  2. humidity (0 ... 100%)
  3. wind direction (0 ... 360 degrees)
  4. wind intensity (0 ... 100 m/s)
  5. rain height (0 ... 50 mm / h)

The virtual environmental station uses a unique ID (identity) to publish these random values on TheThingsNetwork via LoRaWAN.

TTN/Cloud transparent bridge

You need to develop, using the programming language of your choice, or utilizing existing tools, a bridge between the MQTT broker of TTN and the Cloud-based infrastructure configured during the previous assignment (i.e., via AWS IoT, Azure IoT, Google IoT or ThingsBoard).

The values generated by the RIOT-OS application developed in the previous step and interconnected via LoRaWAN should be visible through the website/webapp developed in the previous assignment.

Testbed deployment

Using IOT-LAB you need to deploy your RIOT-OS application on at least two nodes and test the overall operation of the system using real-world devices.

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 using the IoT-Lab facility.
  • Extend the GitHub repository of the 1st and 2nd 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. The website should be able to receive values via the cloud-based infrastructure either from a set of virtual stations using MQTT (1st assignment), or via RIOT-OS emulated stations using MQTT-SN or via real hardware deployed on the real-world testbed (2nd assignment). or via real hardware connected via LoRaWAN and deployed on the real-world testbed (3rd assignment).
  • 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.