Internet Of Things2021-Assignment 2

Elective in Internet of Things

(A. A. 2020/2021)

Second Assignment

The goal of the assignment is to replace the single MCU by a Wireless Sensor Network comprised of multiple MCUs. We will build on top of the components developed in the first assignment. The prototype device developed in the 1st assignment based on the STM32F401RE MCU will be replaced by the ARM Cortex M3 STM32F103REY MCU provided by the M3 nodes of the IOT-LAB. We will use the 802.15.4 mesh networking technologies and 6LoWPAN protocols to create a wireless sensor network and connect it to the internet. The focus on the 2nd assignment is on the evaluation of the performance of the wireless system.

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

  1. How is the deployment of multiple sensors going to affect the IoT platform?
    • Consider the benefits of deploying multiple sensors with overlapping observation areas in terms of data quality, fault tolerance, and energy efficiency.
    • Identify the technical limitations of a multi-hop wireless network in terms of throughput, end-to-end delay and security.
  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.
  3. How do you measure the performance of the system?
    • Measure the performance of the wireless sensor network. Measure the end-to-end latency and throughput. Measure the overall quality of the wireless communication channel.
    • Evaluate the performance of the system as the number of wireless elements increases. How does the physical location of the nodes affect the performance of the wireless network? Examine wireless network topologies of different diameter.
    • Measure the energy consumption and duty cycling of the nodes keeping in mind the overall performance of the wireless sensor network.


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 IoT-LAB M3 nodes. You need to make sure that the sampling rate of the sensors will be the same as that used in the previous assignment.

MQTT-SN/MQTT transparent bridge

Make sure you properly set up your network so that the MQTT-SN broker and MQTT-SN/MQTT transparent forwarded properly connect and forward the packets received from the IPv6 sensor network to the cloud.

The values generated by the Wireless Sensor Network operating in the testbed deployment should be visible through the website/webapp developed in the previous assignment.

Web-based Dashboard

Modify the dashboard developed in the previous assignment to provide the following functionality:

  • Display the latest values received from all the sensors of a specified device.
  • Display the aggregated values (e.g., average, minimum and maximum) for each sensor of a specified device, during the last hour.
  • Display the values received during the last hour from all environmental station of a specified sensor.
  • Display the aggregated values (e.g., average, minimum and maximum) for each sensor received from all sensor devices, during the last hour.
  • Control the state of the actuators for a specified device.


Major Activities

Testbed deployment

Use IOT-LAB to deploy your code over the M3 nodes available.

Performance Evaluation

Using the tools provided by IoT-LAB carry out all the necessary steps to evaluate the performance of the system and address the technical questions stated above using real-world devices.


What/How to submit

  • Extend the GitHub repository of the previous assignment 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 assignment 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.
  • 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 with 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.