PROGRAMMAZIONE PER L'INTERNET OF THINGS
INTERNET OF THINGS PROGRAMMING
A.A. | CFU |
---|---|
2022/2023 | 6 |
Docente | Ricevimento studentesse e studenti | |
---|---|---|
Emanuele Lattanzi | Lunedì ore 16.00-18.00 |
Didattica in lingue straniere |
---|
Insegnamento con materiali opzionali in lingua straniera
Inglese
La didattica è svolta interamente in lingua italiana. I materiali di studio e l'esame possono essere in lingua straniera. |
Assegnato al Corso di Studio
Giorno | Orario | Aula |
---|
Giorno | Orario | Aula |
---|
Obiettivi Formativi
Il Corso ha lo scopo di illustrare l'architettura, le funzionalità ed i metodi di comunicaizone dei sistemi per l'Internet of Things con particolare riferimento alle tecniche di programmazione utilizzate. In particolare, il corso affronta i metodi e le tecnologie per la programmazione dei sistemi embedded dedicati all'Internet of Things e basati su microcontrollori e sistemi operativi realtime.
Programma
01. Introduzione all’IoT
01.01 Panoramica e definizioni
01.02 Punto di vista funzionale
01.03 Punto di vista dell’infrastruttura
01.04 Applicazioni
02. Edge computing
02.01 Sensori e attuatori
02.02 Acquisizione ed elaborazione dei dati
02.03 Gestione dei dati
02.04 Database per serie temporali
03. Tecniche di programmazione per sistemi embedded
03.01 Super-loop
03.02 Macchine a stati finiti
03.03 Programmazione Event-driven
03.04 Sistemi operativi Real-time
04. Comunicazione
04.01 Network layers
04.02 Wireless Edge Network per IoT
04.03 Constrained Application Protocol (CoAP)
04.04 Message Queuing and Telemetry Transport (MQTT)
05. Machine Learning per IoT
05.01 Machine Learning centralizzato
05.02 Machine Learning distribuito
05.03 Machine Learning per edge computing
06. Attività di laboratorio
06.01 Gestione di sensori e attuatori con Raspberry Pi
06.02 Configurazione di un database per serie temporali (InfluxDB)
06.03 Programmazione di un MCU ESP con FreeRTOS
06.04 Raccolta dati da un MCU ESP con ThingSpeak
06.05 Utilizzo del protocollo MQTT con Mosquitto
Eventuali Propedeuticità
Non vi sono propedeuticità obbligatorie.
Risultati di Apprendimento (Descrittori di Dublino)
- Conoscenza e capacità di comprensione: Lo studente al termine del corso acquisirà le conoscenze fondamentali sulla struttura e sulle funzionalità dei sistemi per l'Internet of Things. Conoscerà le più diffuse tecniche di programmazione, le piattaforme di sviluppo ed i protocolli di comunicazione dedicati a questi sistemi.
- Conoscenza e capacità di comprensione applicate: Lo studente acquisirà competenze sulla creazione di applicazioni lato dispositivo e lato cloud tipiche dei sistemi per l'Internet of Things. In particolare, acquisirà competenze di programmazione su sistemi operativi real-time in linguaggio C, su piattaforme Arduino compatibili in linguaggio Processing e su piattaforma Raspberry Pi in linguaggio Python
- Autonomia di giudizio: Lo studente, al termine del corso, saprà distinguere i principali vantaggi e svantaggi delle possibili soluzioni IoT e sarà in grado di scegliere autonomamente le tecnologie hardware/software, i protocolli di comunicazioni e le piattaforme cloud per la creazione di un sistema IoT sulla base dello scenario di riferimento.
- Abilità comunicative: Lo studente acquisirà la capacità di esprimere i concetti fondamentali che stanno alla base del funzionamento e della programmazione dei sistemi per l'Internet of Things con terminologia appropriata e rigorosa. Imparerà a descrivere i problemi inerenti la programmazione e le metodologie adottate per la loro soluzione. Inoltre, la presentazione in classe del progetto d'esame darà agli studenti la capacità di integrare in autonomia le conoscenze apprese durante il corso con ulteriori conoscenze e di sintetizzare tali argomenti al fine di impostare con chiarezza una presentazione.
- Capacità di apprendere: Lo studente acquisirà la capacità di studiare ed apprendere la struttura, il funzionamento e le tecniche di programmazione dei sistemi per l'Internet of Things.
Materiale Didattico
Il materiale didattico predisposto dalla/dal docente in aggiunta ai testi consigliati (come ad esempio diapositive, dispense, esercizi, bibliografia) e le comunicazioni della/del docente specifiche per l'insegnamento sono reperibili all'interno della piattaforma Moodle › blended.uniurb.it
Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento
- Modalità didattiche
Lezioni frontali ed esercitazioni di laboratorio.
- Obblighi
Sebbene fortemente consigliata, la frequenza delle lezioni non è obbligatoria.
- Testi di studio
- Milan Milenkovic, Internet of Things: Concepts and System Design, Springer.
- Dominique Guinard, Building the Web of Things: With Examples in Node.js and Raspberry Pi, Manning.
- Gary Smart , Practical Python Programming for IoT: Build advanced IoT projects using a Raspberry Pi 4, MQTT, RESTful APIs, WebSockets, and Python 3, Packt Publishing
- Modalità di
accertamento La prova d'esame prevede la consegna di un progetto ed una sua presentazione orale.
- Il progetto, preventivamente concordato con il docente, dovrà essere corredato da una relazione sintetica (massimo 10 pagine) e dovrà essere consegnato almeno una settimana prima della prova orale.
- La prova orale consisterà in una presentazione (utilizzando delle opportune slide) e in una dimostrazione del funzionamento del progetto. Alla presentazione seguirà una discussione.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
« torna indietro | Ultimo aggiornamento: 07/07/2022 |