Internet Of Things2021-Assignment 3

Elective in Internet of Things

(A. A. 2020/2021)

Third Assignment

The goal of this assignment is to replace the wireless mesh network with a long-range low-power wide area network. We will build on top of the components developed in the first and second assignments. The prototype device developed in the 2nd assignment based on the STM32F103REY MCU will be replaced by the STM32L072CZ MCU provided by the ARM CortexM0+ B-L072Z-LRWAN1 nodes of the IOT-LAB. We will replace the MQTT protocol and the short-range wireless 802.15.4 communication technology with LoRaWAN and TheThingsNetwork. The focus on the 3rd assignment is the development of IoT Edge Analytics.

As part of the assignment we are interested in addressing the following points:

  1. How is the long-range low-power wide are network going to affect the IoT platform?
    • Consider the benefits of deploying multiple sensors with overlapping observation areas in terms of simplification of network deployment, fault tolerance, and energy efficiency.
    • Identify the technical limitations of a narrow-band wireless network in terms of data packet sizes, end-to-end delay, downlink communication and security.
    • Given the available bandwidth, the sensor data collected and the desired periodicity of measurements, what are the required data aggregation operations that need to be implemented at the edge of the network?
    • Examine the quality of the data analysis when conducted at the cloud and when conducted at the edge.
  2. What are the connected components, the protocols to connect them and the overall IoT architecture?
    • Provide a new network diagram that includes the wireless sensor network and the new network technologies and communication protocols used to interconnect it with the cloud-based elements.
    • Identify any additional software components required to that make up your system both at IoT device level and at cloud level.
    • Provide a new high-level architecture diagram that depicts the interdependencies of your software components.


Major System Components

IoT Device

Modify the RIOT-OS application developed in the previous assignment so that it can use the sensors connected to the MCU of the B-L072Z-LRWAN1 nodes. You need to make sure that the sampling rate of the sensors will be the same with that used in the previous assignments.

Edge Analytics

Implement the data aggregation operators that will be executed within the IoT Device.

TTN/Cloud transparent bridge

You need to develop, using the programming language of your choice or utilizing existing tools, a bridge between the TheThingsNetwork and the MQTT Broker of AWS IoT.

Cloud-based IoT Backend

Make all the necessary modifications to the backend elements developed during the previous assignments given that data analytics are now executed at the edge.

Web-based Dashboard

The values generated by the updated RIOT-OS application that are aggregated at the edge and transmitted via LoRaWAN should be visible through the website/webapp developed in the previous assignments.


Major Activities

Testbed deployment

Using IoT-LAB you need to deploy your RIOT-OS application to demonstrate the overall operation of the system using real-world devices.

Performance Evaluation

Carry out all the necessary steps to evaluate the performance of the system and address the technical questions stated above.


What/How to submit

  • Extend the GitHub repository of the previous assignments to push all your code and scripts that are needed 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 is properly structured and interoperable.
  • Your system should be able to receive sensor values either from a single STM32 Nucleo F401RE board or via a wireless sensor network deployed on the real-world testbed, or aggregated sensor values received from a low-power long-range wide area network.
  • Update the README.md file where you provide links to the content generated during the new assignment, and also those of the previous one in a structured way.
  • The GitHub repository should include a .MD file that presents all the necessary technical details that address the questions stated above, accompanied by the performance evaluation conducted to support your observations.
  • The GitHub repository should provide a hands-on walkthrough of the system, clearly explaining how to set up and run your system using the IoT-Lab facility.
  • Create a Blog Post where you discuss the main findings of the three individual assignments, focusing on the aspects of your choice.
  • Create a YouTube video with a 3-minute demonstration of your final system.