INTERNET OF THINGS

Anno accademico 2024/2025 - Docente: FEDERICO FAUSTO SANTORO

Risultati di apprendimento attesi

  1. Conoscenza e capacità di comprensione (knowledge and understanding). Il corso di "Internet of Things" si prefigge l'obiettivo di fornire agli studenti le conoscenze sui principi, modelli, tecniche e strumenti per la programmazione e progettazione di sistemi e architetture IoT. 
  2. Capacità di applicare conoscenza e comprensione (applying knowledge and understanding). Attraverso l'analisi di diversi casi di studio e tramite esercitazioni in laboratorio, il corso consente allo studente di ottenere le capacità di applicare le tecniche acquisite durante le lezioni teoriche nei contesti applicativi dove è richiesto l'utilizzo di tecnologie per l'IoT.
  3. Autonomia di giudizio (making judgements). Le lezioni del corso e soprattutto le attività di laboratorio sono organizzate in modo da includere un'analisi critica di casi di studio, delle soluzioni impiegate, delle possibili varianti e dei pro e contro di queste ultime, al fine di consentire allo studente di acquisire un'adeguata autonomia di valutazione delle scelte tecniche.
  4. Abilità comunicative (communication skills). Le abilità comunicative dello studente saranno considerate soprattutto durante le varie esercitazioni e esame finale con progetto annesso, in cui lo studente è chiamato ad esporre le scelte implementative adottate e motivandole opportunamente. 
  5. Capacità di apprendimento (learning skills). Le capacità di apprendimento degli studenti saranno valutate durante le esercitazioni di laboratorio, le quali hanno l'obiettivo di testare quanto e come gli studenti abbiano compreso il funzionamento delle tecnologie introdotte durante il corso.


Modalità di svolgimento dell'insegnamento

Le lezioni sono tenute in aula con l'ausilio di slide, messe a disposizione degli studenti sul portale Studium. Le lezioni frontali teoriche sono intervallate da esercitazioni pratiche, svolte nella stessa aula di lezione o laboratorio adeguato. Gli studenti sono invitati a formare piccoli gruppi di lavoro (massimo 2-4 persone) per lo svolgimento delle esercitazioni proposte.

Il corso prevede delle ore aggiuntive di Didattica integrativa, durante le quali vengono tipicamente svolti approfondimenti sugli argomenti già trattati nelle ore di esercitazione di gruppo.


Prerequisiti richiesti

Altamente consigliabile:

  1. Programmazione a microcontrollori

  2. Programmazione 2

  3. Reti di Calcolatori

Frequenza lezioni

La frequenza delle lezioni è obbligatoria

Contenuti del corso

Contenuti del Corso

  1. Introduzione ai sistemi IoT

    1. Cos’è l’IoT

    2. Elementi di un ecosistema IoT

    3. Tecnologie e business per l’IoT

    4. Applicazioni IoT e implicazioni

  2. Componenti IoT

    1. Dai sensori ai Gateway

    2. Microcontrollori (Esp8266, Esp32, STM32, Arduino, Raspberry)

    3. Sensoristica

    4. Sistemi Embedded (Raspberry, Pi Zero)

    5. Frameworks (Arduino, FreeRTOS, Gobot, etc)

  3. Reti e Connettività

    1. Tecnologie wireless per l’IoT

    2. RFID

    3. Le reti LoWPAN

    4. Introduzione ai protocolli LoWPAN per l’IoT (non-IP) (Bluetooth, BLE, 802.15.4)

    5. Introduzione ai protocolli WLAN per l’IoT (Wi-Fi, 6LoWPAN)

    6. Introduzione ai protocolli WSAN per l’IoT (LoRa)

  4. Comunicazione attraverso Internet

    1. Progettazione di una soluzione Gateway based

    2. Protocolli di comunicazione per l’IoT

      1. HTTP

      2. MQTT

      3. WebSockets

  5. Integrazione dei sistemi IoT

    1. Integrazione con il Web

    2. Progettazione e sviluppo di una soluzione complessa

    3. Introduzione a LoRaWAN

    4. Introduzione a Chirpstack

    5. Introduzione a Docker

    6. Realizzazione di una soluzione LoRaWAN

  6. Machine learning applicato all’IoT

    1. Introduzione a Keras

    2. Introduzione a TensorFlow Lite

    3. Introduzione a TensorFlow JS

    4. Realizzazione ed utilizzo di un modello di rete neurale su dispositivi IoT

Testi di riferimento

Il docente fornirà il materiale

Programmazione del corso

 ArgomentiRiferimenti testi
1IoT Introduction
2IoT Components
3IoT Communication
4IoT Integration
5IoT IA
6IoT Security

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

La verifica delle competenze acquisite viene effettuata tramite esame scritto e colloquio orale. La valutazione complessiva tiene conto della successiva prova progettuale. Il colloquio orale è da intendersi integrativo alla prova scritta, con risultato almeno sufficiente.

Tutte le prove di cui sopra sono obbligatorie.

Il progetto è obbligatorio e potrà essere richiesto esclusivamente dopo il superamento della prova scritta e orale (se richieste). Il progetto assegnato dovrà essere consegnato entro 45 giorni dall'assegnazione e potrà essere proposto dallo studente o dal gruppo di persone. 

Il progetto dovrà essere poi pubblicato in maniera PUBBLICA sul repository ufficiale del corso (https://github.com/UniCT-Internet-of-Things). 


Il voto è attribuito secondo il seguente schema:

  • Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi teorici e pratici.
  • 18-20 : lo studente dimostra una padronanza appena sufficiente dei concetti base, e/o riesce ad impostare gli esercizi teorico/pratici con molta difficoltà e con vari errori.
  • 20 - 25 : lo studente ha superato con successo la prova scritta ed orale, dimostrando una buona padronanza dei contenuti del corso
  • 25 - 29: lo studente ha affrontato la prova progettuale
  • 29 - 30 e lode : lo studente ha affrontato tutte le prove d'esame, riuscendo inoltre a progettare e a sviluppare un progetto IoT senza problemi.

Esempi di domande e/o esercizi frequenti

Realizzare una soluzione IoT per monitorare una coltivazione di piante