Nuova ricerca

PAOLO SANTINELLI

Docente a contratto
Dipartimento di Scienze e Metodi dell'Ingegneria

Insegnamento: INTERNET OF THINGS

Tecnologie per l'industria intelligente (Offerta formativa 2023)

Obiettivi formativi

In termini di conoscenza e comprensione, gli obiettivi del corso sono i seguenti:

Fornire allo studente una conoscenza di base dei principali principi di funzionamento di sistemi Internet of Things, con particolare attenzione ai protocolli di comunicazione, architetture distribuite e principi di progettazione e sviluppo;
Fornire allo studente una conoscenza applicata basata sull'utilizzo di un testbed e dispositivi IoT in laboratorio

Prerequisiti

Nessun prerequisito obbligatorio

Programma del corso

Il corso, da 6 CFU, è suddiviso in una parte didattica frontale ed una parte di laboratorio ed esercitazioni pratiche. La modalità didattica prevede che l’esposizione degli argomenti teorici sia accompagnata da attività pratiche di laboratorio rendendo di fatto la fruizione di entrambe le parti un tutt’uno caratterizzato da momenti di approfondimento teorico seguiti da attività di laboratorio. Gli aspetti teorici comprendono l’introduzione all’Internet of Things (IoT), l’analisi dei principali elementi architetturali, sia hardware che software, inclusa una introduzione ai principali protocolli di comunicazione. La parte di laboratorio, dedicata alla sperimentazione diretta delle tecnologie IoT, potrà essere affrontata sia utilizzando ambienti virtuali di sviluppo, i quali non implicano l’impiego di dispositivi hardware fisici, sia mediante l’impiego di dispositivi reali.

Programma dettagliato del corso:
1) Introduzione (2h): Definizione, storia, il concetto di Internet of Things, campi di applicazione ed esempi di applicazioni IoT, sfide ed innovazione, trend tecnologici e sviluppi di mercato.
2) IoT, architettura hardware e sistemi embedded (28h): (14h) Introduzione alle reti logiche, sistemi in logica cablata e sistemi in logica programmabile; (2h) architettura di un sistema a microprocessore, CPU (architettura di Harvard e di von-Neumann), memorie, dispositivi di I/O, microcontrollori; (1h) architettura dei microcontrollori AVR Atmel, ATmega328; (1h) caratteristiche della piattaforma Arduino, la scheda Arduino Uno; (2h) Ambiente di sviluppo Integrato (IDE) di Arduino, programmazione scheda Arduino Uno; (8h) organizzazione del software mediante macchine a stati finiti, esempio vari.
3) sensori, attuatori (4h); concetti generali, esempi di sensori (accelerometri, giroscopi, magnetometri, GPS, sensori di luce);
4) Principi di comunicazione in IoT e tecniche di interfacciamento (20h): (2h) Introduzione alle principali tecniche di comunicazione tra microcontrollore e dispositivi periferici; comunicazione seriale bilanciata e non bilanciata, comunicazione seriale asincrona, temporizzazione dei segnali, applicazioni; (3h) bus I2C; (5h) bus SPI, caratteristiche generali, esempi di architettura master slave, funzioni di libreria in ambiente Arduino, codice C di esempio per il controllo di un registro di tipo SIPO ad 8 bit con latch, bus sincrono I2C, funzioni di libreria in ambiente Arduino, codice C di esempio per il controllo di un I/O expander PCF8574, introduzione all'esempio "weather display", applicazione Arduino per la visualizzazione di dati meteorologici su display LCD; (3h) cenni ai principi di funzionamento delle reti IP, concetto di socket. Introduzione al protocollo http, esempio di server e client mediante l'uso del comando NETCAT, accesso ai dati meteorologici forniti dal sito https://openweathermap.org/ mediante il protocollo http REST, Installazione ed uso dell'ambiente NODE-RED per lo sviluppo di un semplice programma "bridge" per l'accesso ai dati meteorologici ed il trasferimento seriale alla scheda Arduino; (2h) esempio di uso shield ethernet Arduino e delle principali funzioni di libreria; (5h) protocollo MQTT, campi di utilizzo, clients, broker, esempi di uso mediante clients,e server mosquitto, esempio di bridge seriale-MQTT in Node-RED;

Metodi didattici

Il corso si svolge in presenza e prevede lezioni in aula (40%) ed in laboratorio (60%). La frequenza alle lezioni non è obbligatoria ma fortemente consigliata.
Il corso è erogato in lingua italiana; le slide ed il materiale didattico sono in lingua inglese.

Testi di riferimento

- A. McEwen and H. Cassimally, “Designing the Internet of Things”, John Wiley & Sons Inc, 2013
- J. P. Vasseur and A. Dunkels, “Interconnecting Smart Objects with IP,” Morgan Kaufmann, 2010
- D. Tarnoff, “Computer Organization and Design Fundamentals”, 2005, https://faculty.etsu.edu/tarnoff/138292/

- Slide delle lezioni ed ulteriori note didattiche vengono settimanalmente pubblicate sulla piattaforma moodle del corso (https://moodle.unimore.it)

Verifica dell'apprendimento

L’esame prevede:

1. La valutazione di un progetto, volta a verificare il conseguimento da parte dello studente degli obiettivi di apprendimento. Il progetto viene assegnato agli studenti nella seconda metà del corso. La relazione di progetto deve essere consegnata una settimana prima dell’esame, durante il quale lo studente deve illustrare il progetto svolto ed una demo funzionante. Il progetto riceverà un punteggio da 0 a 27 punti.

2. Una prova orale individuale volta a verificare il raggiungimento da parte dello studente degli obiettivi di apprendimento. Durante la prova orale vengono poste allo studente 3 domande su argomenti teorici. Le domande sono così distribuite: Q1) Caratteristiche generali e classificazione delle reti logiche e dei sistemi digitali. Q2) Tecniche di interfacciamento tra periferiche e microcontrollore. Q3) Programmazione del microcontrollore. Ogni domanda riceverà un punteggio da -2 a +2 punti. La durata tipica della prova orale è di 15 minuti.

La valutazione finale è il risultato della somma dei punteggi relativi alla valutazione dell’attività di progetto e della prova orale. Per i voti con punteggio superiore a 30 si terrà conto dell'attribuzione della lode.

Risultati attesi

Il corso intende fornire le conoscenze di base dei principi di funzionamento e dell’architettura dei sistemi di Internet of Things (IoT) con riferimento ai sistemi digitali, analogici, ai principali bus di comunicazione tra periferiche e microcontrollore, con cenni ai protocolli di comunicazione e ai principi di progettazione e sviluppo del software che li governa. Con riferimento ai descrittori di Dublino, i risultati di apprendimento attesi dal corso possono essere riassunti come segue:

Conoscenza e comprensione: comprendere e applicare i concetti di base relativi ai circuiti analogici e digitali; comprendere le specifiche di un sistema elettronico; comprendere e analizzare i principali componenti hardware utilizzati in un sistema IoT; comprendere il funzionamento di un vero sistema IoT.

Applicare conoscenza e comprensione: analizzare, valutare e definire le specifiche funzionali di un sistema di IoT mediante tecniche analitiche e metodologie progettuali appropriate; avere la capacità di orientare e identificare l'architettura e gli elementi fondamentali di un sistema IoT a partire dalle specifiche di progetto.

Autonomia di giudizio: analizzare e comprendere i principali elementi chiave delle alternative progettuali anche in caso di specifiche progettuali incomplete. Organizzare le fasi di sviluppo di un progetto coerentemente con le valutazioni effettuate.

Abilità comunicative: comunicare in modo chiaro le conoscenze e le capacità di comprensione acquisite. Utilizzare in modo corretto e appropriato il linguaggio, i concetti e i modelli acquisiti per presentare efficacemente le soluzioni relative a tutti gli aspetti di un progetto di sistema IoT a un pubblico specializzato e non. Saper lavorare in team.

Capacità di apprendimento: applicare una metodologia di apprendimento efficace (adatta allo studio individuale e allo studio di gruppo) che permetta di individuare le risorse umane e progettuali necessarie per affrontare e risolvere i problemi. Capacità di autoaggiornamento in merito a conoscenze e comprensioni relative ad aspetti specifici di un progetto o in risposta a cambiamenti legati all'evoluzione tecnologica.