81683 - INTERNET OF THINGS

Scheda insegnamento

  • Docente Luciano Bononi

  • Moduli Luciano Bononi (Modulo 1)
    Marco Di Felice (Modulo 2)

  • Crediti formativi 6

  • SSD INF/01

  • Modalità didattica Convenzionale - Lezioni in presenza (Modulo 1)
    Convenzionale - Lezioni in presenza (Modulo 2)

  • Lingua di insegnamento Inglese

SDGs

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.

Istruzione di qualità Energia pulita e accessibile Industria, innovazione e infrastrutture Città e comunità sostenibili

Anno Accademico 2019/2020

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.

Programma/Contenuti

Il corso viene tenuto in lingua italiana e in anni successivi si prevede l'attivazione in lingua inglese. Il 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 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: dai sensori al gateway

  • Sensori e attuatori, elementi di progettazione di circuiti elettronici (cenni), politiche di sensing e acquisizione dati
  • Comunicazione Machine-to-machine (M2M) tra dispositivi: tecnologie wireless abilitanti per reti WPAN (BLE, IEEE 802.15.4, Z-Wave, etc.), WLAN e WSAN (LoRA, Dash7, Spirit, etc.)
  • Architetture di rete e routing (6LoWPAN, RPL)
  • Programmazione di prototipi mediante microcontrollori & SoC (Arduino, Nucleo ST32, ESP8266, etc.)

    Componenti IoT: dal gateway al cloud

  • Protocolli di acquisizione dati: XMPP, CoAP, MQTT, AMQP, WebSocket, etc.
  • Architetture di storage/processamento dati: approcci cloud/fog/edge computing
  • Piattaforme IoT: AWS IoT, Watson IoT, ThingSpeak, etc.
  • IoT & Big-data

    Componenti IoT: dal cloud alle applicazioni

  • Web of Things e Semantic Web 3.0 Standard for M2M and IoT
  • Principi di machine-learning (classificazione, clustering, regressione, anomaly detection, etc.) ed applicazioni legate al contesto dell’analisi di dati di sensori
  • Framework per sviluppo integrato di applicazioni IoT: AllJoyn, Google Thing, Apple HomeKit, etc.

    Criticità ed Open Issues

  • Privacy e gestione della sicurezza
  • Efficienze energetica dei dispositivi e tecniche di power-saving
  • Scalabilità.

Testi/Bibliografia

Slides del docente, link a capitoli di libro, articoli scientifici ed a risorse online indicate sul sito del corso

Metodi didattici

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

Modalità di verifica dell'apprendimento

L'esame del corso prevede:

(i) una prova orale, consistente in domande aperte su tutto il programma del corso e su un seminario che lo studente dovrà svolgere su argomenti pertinenti al programma del corso e concordati con i docenti; La valutazione del seminario e dell'orale incide per il 60% della valutazione.

(ii) un progetto, su traccia proposta dai docenti o dagli studenti (previa autorizzazione e definizione concordata del progetto). La valutazione del progetto e della sua discussione incide per il 40% della valutazione.

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. 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.

SITO WEB DEL CORSO:

http://www.cs.unibo.it/iot/

e

https://site.unibo.it/iot

Link ad altre eventuali informazioni

https://site.unibo.it/iot

Orario di ricevimento

Consulta il sito web di Luciano Bononi

Consulta il sito web di Marco Di Felice