INTERNET OF THINGS
Anno accademico 2024/2025 - Docente: FEDERICO FAUSTO SANTORORisultati di apprendimento attesi
- 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.
- 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.
- 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.
- 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.
- 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
Programmazione a microcontrollori
Programmazione 2
Reti di Calcolatori
Frequenza lezioni
Contenuti del corso
Contenuti del Corso
Introduzione ai sistemi IoT
Cos’è l’IoT
Elementi di un ecosistema IoT
Tecnologie e business per l’IoT
Applicazioni IoT e implicazioni
Componenti IoT
Dai sensori ai Gateway
Microcontrollori (Esp8266, Esp32, STM32, Arduino, Raspberry)
Sensoristica
Sistemi Embedded (Raspberry, Pi Zero)
Frameworks (Arduino, FreeRTOS, Gobot, etc)
Reti e Connettività
Tecnologie wireless per l’IoT
RFID
Le reti LoWPAN
Introduzione ai protocolli LoWPAN per l’IoT (non-IP) (Bluetooth, BLE, 802.15.4)
Introduzione ai protocolli WLAN per l’IoT (Wi-Fi, 6LoWPAN)
Introduzione ai protocolli WSAN per l’IoT (LoRa)
Comunicazione attraverso Internet
Progettazione di una soluzione Gateway based
Protocolli di comunicazione per l’IoT
HTTP
MQTT
WebSockets
Integrazione dei sistemi IoT
Integrazione con il Web
Progettazione e sviluppo di una soluzione complessa
Introduzione a LoRaWAN
Introduzione a Chirpstack
Introduzione a Docker
Realizzazione di una soluzione LoRaWAN
Machine learning applicato all’IoT
Introduzione a Keras
Introduzione a TensorFlow Lite
Introduzione a TensorFlow JS
Realizzazione ed utilizzo di un modello di rete neurale su dispositivi IoT
Testi di riferimento
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | IoT Introduction | |
2 | IoT Components | |
3 | IoT Communication | |
4 | IoT Integration | |
5 | IoT IA | |
6 | IoT Security |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
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).
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.