81683 - Internet of Things

Academic Year 2024/2025

Learning outcomes

At the end of the course, students will learn the architectures and methodologies at the basis of the Internet of Things (IoT), and will develop advanced competences about the wireless technologies, the network protocols, the integration of mobile and pervasive end-devices in a Machine-to-Machine (M2M) paradigm, and the techniques and tools for sensor data management and analytics. They will be able to design and implement complex and heterogeneous IoT systems composed of networked edge sensing devices, fog/cloud platforms for scalable data management and advanced software for sensor data analytics via machine-learning and statistical techniques. Middleware platforms for M2M-based IoT systems will be illustrated as well as edge/distributed/cloud computing principles. New services, service platforms and application scenarios will be illustrated, designed and experimented, with high emphasis on advanced and visionary services.

Course contents

The course introduces the enabling technologies, protocols, software architectures, and applications related to the emerging paradigm of the Internet of Things (IoT).


After a brief introduction to the topics of pervasive computing and its emerging application areas (Industry 4.0, smart home automation, intelligent transportation systems, wearable devices, etc.), the course provides a comprehensive overview of the enabling elements of an IoT system from the perspective of wireless communication technologies between devices, data processing techniques, and programming languages for application development and prototyping (Arduino, STM32 Nucleo, etc.).

In particular, the components of a typical IoT system are illustrated following a data-oriented path: from data generation by sensors, to wireless transmission within a WSAN/WLAN/WPAN network, to cloud streaming and storage, up to processing using AI techniques and integration within a software system.

Summary of course contents:

Introduction to IoT systems: definitions, applications, enabling technologies

IoT Components: Communication and Networking

  • Sensors and actuators, basics of electronic circuit design (overview), sensing and data acquisition policies

  • Wireless communication technologies and encoding for IoT

  • Machine-to-machine (M2M) communication between devices: enabling wireless technologies for WPAN networks (BLE, IEEE 802.15.4, Z-Wave, etc.), WLAN and LP-WAN (LoRA, LoRaWAN)

  • Network architectures and routing (6LoWPAN, RPL)

IoT Components: Embedded Systems

  • Embedded systems: architectures and programming languages (C++ and MicroPython)

  • Interfacing with sensors/actuators and serial protocols

  • Examples with Arduino and ESP-IDF frameworks

IoT Components: Data Acquisition

  • Data acquisition protocols: COAP, MQTT, HTTP

  • KAFKA framework

  • Web of Things and Semantic Web 3.0 standards for M2M and IoT

IoT Components: Data Management and Processing/Analysis

  • Storage and processing of sensor data, time-series and time-series databases: INFLUX-DB

  • Time-series visualization: examples with GRAFANA tool

  • Time-series forecasting with statistical methods

  • Time-series forecasting with AI/ML techniques

  • Edge AI and TinyML

IoT Components: Edge/Cloud Architectures

  • Data storage/processing architectures: cloud/fog/edge computing approaches

  • IoT platforms: AWS IoT, Watson IoT, ThingSpeak, etc.

Readings/Bibliography

Instructor’s slides, links to book chapters, scientific articles, and online resources are provided on the course website.

Recommended textbook: Riccardo Melen, Vittorio Trecordi, IoT Networking, Pearson, ISBN 8891931934, ISBN13 978-8891931931, 336 pages (cover price 34 EUR).


Additional textbooks may be recommended during the course depending on the topics covered.

Teaching methods

The course includes frontal lectures and in-class exercises, conducted by the instructor using PCs and a projector.

Coding exercises in class are performed using IoT devices provided by the instructors. Students must bring their own laptops to participate in the exercises.

Considering the type of activities and the teaching methods used, attendance to this training activity requires all students to have previously completed Modules 1 and 2 of the safety training for study environments, available online at [https://elearning-sicurezza.unibo.it/ ] in e-learning mode.

Assessment methods

The course includes a mandatory seminar and a mandatory project. The seminar takes place during the last week of the course and consists of a 20-30 minute presentation in which the student presents a research topic related to the course program, based on a scientific article or an existing tool. The seminar topic can be chosen from a list provided by the instructors or proposed by the student. The seminar is graded on a four-level scale (Fail, Pass, Good, Excellent).

The project involves developing an IoT system that implements the entire pipeline presented in the lectures (data acquisition from sensors, embedded system based on a microcontroller, data acquisition on an edge node using HTTP/CoAP/MQTT protocols, data storage with time-series databases, dashboards, data analysis/forecasting of time-series using AI/ML and statistical learning approaches). As with the seminar topic, the project outline can be proposed by the students and approved by the instructor, or directly proposed by the instructor. The project is graded out of 30.

The final grade is calculated considering the project grade and the seminar evaluation.

Teaching tools

The teaching materials (slides, code) presented during the lessons are made available to students through the official course webpage on the Virtuale platform. The page also contains links to software tools usable for completing the project, as well as pointers to information sources (e.g., forums, scientific articles) related to the course topics.

Office hours

See the website of Marco Di Felice

See the website of Luciano Bononi

See the website of Luca Sciullo