INTERNET OF THINGS

Anno accademico 2023/2024 - Docente: FEDERICO FAUSTO SANTORO

Risultati di apprendimento attesi

Il corso si propone di introdurre le basi indispensabili per la realizzazione di applicativi e di dispositivi Internet of Things, fornendo una conoscenza generale sui protocolli di messaggistica, di comunicazione e di sviluppo software inerente l’IoT.

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. P2P & WN e laboratorio

  2. Programmazione a microcontrollori

Frequenza lezioni

Le lezioni saranno effettuate in aula ed in laboratorio

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, SigFox)

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