81683 - INTERNET OF THINGS

Anno Accademico 2024/2025

  • Docente: Marco Di Felice
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Inglese

Conoscenze e abilità da conseguire

Al termine del corso, lo studente conosce le principali architetture e metodologie alla base dell’Internet of Things (IoT), con particolare riferimento alle tecnologie wireless, ai protocolli di rete dell’IoT, all’integrazione con dispositivi mobili e pervasivi secondo il paradigma Machine-to-Machine (M2M), ed alle tecniche ed alla piattaforme per la gestione ed analisi dei dati di sensori. Inoltre, lo studente è in grado di progettare e implementare sistemi IoT complessi ed eterogenei, composti da dispositivi edge in grado di fare sensing dell’ambiente, da piattaforme cloud/fog per la gestione scalabile dei dati dell’IoT e da software avanzati per l’analisi dei dati mediante tecniche statistiche e di apprendimento automatico. Saranno illustrate piattaforme middleware per sistemi IoT basati su paradigma M2M, e modelli emergenti di computazione (edge/distributed/cloud/…) legati all’analisi dei dati dell’IoT. Saranno infine progettati e studiati servizi utente avanzati secondo il paradigma dell’IoT.

Contenuti

l corso introduce le tecnologie abilitanti, i protocolli, le architetture software e le applicazioni legate al paradigma emergente dell’Internet of Things (IoT). Dopo una breve introduzione alle tematiche del pervasive computing ed ai suoi campi di utilizzo emergenti (Industry 4.0, domotica, intelligent transportation systems, dispositivi wearable, etc), il corso fornisce una panoramica esaustiva degli elementi abilitanti di un sistema IoT dal punto di vista delle tecnologie per la comunicazione wireless tra dispositivi, delle tecniche di processamento dati, e dei linguaggi per lo sviluppo di applicazioni e la programmazione di prototipi (Arduino, Nucleo STM32, etc). In particolare, le componenti di un tipico sistema IoT vengono illustrate seguendo un percorso data-oriented: dalla generazione dei dati provenienti da sensori, alla loro trasmissione wireless all’interno di una rete WSAN/WLAN/WPAN, al cloud streaming e storage, fino al processing mediante tecniche di AI ed integrazione all’interno di un sistema software.

Segue un elenco sommario dei contenuti del corso:

Introduzione ai sistemi IoT: definizioni, applicazioni, tecnologie abilitanti

Componenti IoT: Comunicazione e Networking

  • Sensori e attuatori, elementi di progettazione di circuiti elettronici (cenni), politiche di sensing e acquisizione dati
  • Tecnologie di comunicazione senza fili e codifiche per IoT
  • Comunicazione Machine-to-machine (M2M) tra dispositivi: tecnologie wireless abilitanti per reti WPAN (BLE, IEEE 802.15.4, Z-Wave, etc.), WLAN e LP-WAN (LoRA, LoRaWAN)
  • Architetture di rete e routing (6LoWPAN, RPL)

Componenti IoT: Sistemi embedded

  • Sistemi embedded: architetture e linguaggi di programmazione (C++ e Micropython)
  • Interfacciamento con sensori/attuatori e protocolli seriali
  • Esempi con framework Arduino ed ESP-IDF

Componenti IoT: Acquisizione dati

  • Protocolli di acquisizione dati: COAP, MQTT, HTTP
  • Framework KAFKA
  • Web of Things e Semantic Web 3.0 Standard for M2M and IoT

Componenti IoT: Gestione e prossamento/analisi dati

  • Storage e processamento di dati di sensori, Time-series e time-series database: INFLUX-DB
  • Visualizzazione di serie temporali: esempi con tool GRAFANA
  • Forecasting di serie-temporali con metodi statistici
  • Forecasting di serie-temporali con techniche di AI/ML
  • Edge AI e TinyML

Componenti IoT: Architetture IoT edge/cloud

  • Architetture di storage/processamento dati: approcci cloud/fog/edge computing
  • Piattaforme IoT: AWS IoT, Watson IoT, ThingSpeak, etc.

Testi/Bibliografia

Slides del docente, link a capitoli di libro, articoli scientifici ed a risorse online indicate sul sito del corso. Testo consigliato: Riccardo Melen, Vittorio Trecordi, "IoT Networking", Pearson, ISBN 8891931934, ISBN13 978-8891931931, 336 pp. (cover price 34 EUR). Altri testi sono consigliati durante il corso in base all'argomento trattato.

Metodi didattici

Il corso prevede lezioni frontali ed esercitazioni svolte in aula, mediante l'ausilio di PC e proiettore da parte del docente.

Le esercitazioni di coding in aula vengono svolte utilizzando dispositivi IoT messi a disposizione dai docenti. Gli studenti devono recarsi in aula muniti del proprio PC per poter partecipare alle esercitazioni.

In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai Moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, [https://elearning-sicurezza.unibo.it/ ] in modalità e-learning.

Modalità di verifica e valutazione dell'apprendimento

Il corso prevede un seminario (obbligatorio) ed un progetto (obbligatorio). Il seminario viene svolto durante l'ultima settimana del corso, e consiste in una presentazione di 20-30 minuti nella quale lo studente presenta un argomento di ricerca legato al programma di corso, prendendo spunto da un articolo scientifico o da un tool esistente. L'argomento del seminario può essere scelto da una lista messa a disposizione dai docenti oppure proposto dallo studente. Il seminario viene valutato su una scala di 4 valori (Insufficiente, Sufficiente, Buono, Ottimo).

Il progetto consiste nello sviluppo di un sistema IoT che implementi tutta la pipeline presentata a lezione (acquisizione dati da sensori, sistema embedded basato su microcontrollore, acquisizione dati su nodo edge con protocolli HTTP/CoAP/MQTT, storage dei dati con database di serie temporali, dashboard, analisi dati/forecasting di serie temporali con approcci AI/ML e di statistical learning). Come per l'argomento del seminario, la traccia del progetto viene proposta dagli studenti ed approvata dal docente, o direttamente proposta dal docente. Il progetto produce un voto in 30-esimi.

Il voto finale viene calcolato tenendo in considerazione il voto del progetto ed il giudizio ottenuto durante il seminario.

Strumenti a supporto della didattica

Il materiale didattico (slides, codice) presentato a lezione viene messo a disposizione dello studente attraverso la pagina web del corso ufficiale su piattaforma Virtuale. La pagina contiene inoltre: link a strumenti software utilizzabili per lo svolgimento del progetto, e puntatori a sorgenti di informazioni (es. forum, articoli scientifici) correlate agli argomenti del corso.

Orario di ricevimento

Consulta il sito web di Marco Di Felice

Consulta il sito web di Luciano Bononi

Consulta il sito web di Luca Sciullo