INTERNET OF THINGS

Luca GRECO INTERNET OF THINGS

0612700109
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA
INGEGNERIA INFORMATICA
2022/2023



ANNO CORSO 3
ANNO ORDINAMENTO 2017
SECONDO SEMESTRE
CFUOREATTIVITÀ
324LEZIONE
324ESERCITAZIONE


Obiettivi
L’INSEGNAMENTO INTRODUCE LE ARCHITETTURE, LE TECNOLOGIE E I PROTOCOLLI PER L’INTERNET OF THINGS, PRESENTANDO INOLTRE I PRINCIPALI AMBITI APPLICATIVI.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
ARCHITETTURA DI UN’APPLICAZIONE IOT. ARCHITETTURA DI UNA SCHEDA EMBEDDED PER APPLICAZIONI IOT. METODI E PROTOCOLLI PER L’INTERFACCIAMENTO SOFTWARE CON SENSORI ED ATTUATORI. PROTOCOLLI DI COMUNICAZIONE TRA DISPOSITIVI IOT (MQTT). PIATTAFORME SOFTWARE PER LA REALIZZAZIONE DI APPLICAZIONI IOT.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE
INTERFACCIARE A LIVELLO FISICO ED APPLICATIVO UNA SCHEDA EMBEDDED CON SENSORI ED ATTUATORI. PROGETTARE ED IMPLEMENTARE SEMPLICI APPLICAZIONI IOT PER DISPOSITIVI EMBEDDED IN GRADO DI COMUNICARE CON UN SERVER MQTT.
Prerequisiti
È PREFERIBILE AVERE CONOSCENZE DI BASE SUI PROTOCOLLI DI RETE E LINGUAGGI DI PROGRAMMAZIONE ORIENTATI AGLI OGGETTI.
Contenuti
Unità Didattica 1: Introduzione all’Internet of Things e basi per lo sviluppo in linguaggio Python
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 3/6/0)
1. (3 ore lezione): Internet of Things. Introduzione generale. Esempi di applicazioni. Architettura di un'applicazione IoT. IoT Frameworks.
2. (3 ore esercitazione): Python: espressioni e variabili. Selezione e iterazione. Definizione di funzioni.
3. (3 ore esercitazione): Array, tuple e dizionari. Esercizi ed esempi Python

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprensione dell’architettura di un sistema IoT. Acquisire le conoscenze relative agli elementi fondamentali del linguaggio di programmazione Python.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Saper codificare in Python semplici programmi mediante l’uso di funzioni, array, tuple e dizionari.


Unità Didattica 2: Introduzione alla scheda ESP32 e sua programmazione in MicroPython
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 9/6/0)

1. (3 ore lezione): Panoramica sulla scheda ESP32: architettura e caratteristiche principali. Il framework MicroPython
2. (2 ore lezione e 1 ora esercitazione): GPIO. Gestione di output digitali e di input digitali; input analogici tramite conversione analogico-digitale. Primi esempi di sviluppo in MicroPython
3. (2 ore lezione e 1 ora esercitazione): Organizzazione di una breadboard ed esempi di semplici circuiti con LED, resistori, pulsanti e potenziometri. Gestione GPIO ESP32 con MicroPython: accensione di un LED, connessione e gestione di un pulsante esterno, lettura dei segnali provenienti da un fotoresistore. Gestione di un potenziometro.
4. (2 ore lezione e 1 ora esercitazione): Introduzione al Pulse Width Modulation (PWM). Primi esempi PWM con ESP32: controllo dell’intensità luminosa e fading di un LED.
5. (3 ore esercitazione): Ulteriori esempi PWM. Controllo del timbro e dell’intonazione di un buzzer passivo. Controllo della velocità di un motore DC. Controllo rotazione di un motore Servo.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprensione dell’architettura della scheda ESP32 e suoi input/output digitali. Comprensione del principio di funzionamento di semplici sensori ed attuatori. Acquisizione delle conoscenze di base relative al framework Micropython.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Saper predisporre su breadboard semplici circuiti con resistori, led, pulsanti e sensori. Saper codificare in microPython programmi per ESP32 che consentono di acquisire dati provenienti da sensori. Saper codificare in Micropython programmi per ESP32 che consentono il controllo di motori DC e Servo.


Unità Didattica 3: Interfacciamento seriale con sensori ed attuatori
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 2/4/0)

1. (2 ore lezione e 1 ora esercitazione): Introduzione ai protocolli seriali: RS232, I2C, SPI. Esempio di driver I2C per un sensore di intensità luminosa.
2. (3 ore esercitazione): Sviluppo di un driver I2C per un sensore di temperatura e umidità

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprensione del principio di funzionamento dei più comuni protocolli seriali per sistemi IoT.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Saper codificare in MicroPython un driver per un semplice sensore provvisto di interfacciamento tramite protocollo seriale.


Unità Didattica 4: Protocolli di rete per sistemi IoT
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 2/7/0)

1. (2 ore lezione e 1 ora esercitazione): Il paradigma Publish&Subscribe e il Protocollo MQTT. Livelli di qualità del servizio in MQTT. Sviluppo di un client MQTT in Python con Eclipse Paho. Tipologie di funzioni loop e funzioni callback.
2. (3 ore esercitazione): Connessione del microcontrollore ESP32 alla rete WiFi e comunicazione tramite modulo socket. Uso della libreria Micropython MQTT per ESP32 e sviluppo di un sensore di intensità luminosa “smart”.
3. (3 ore esercitazione): Ulteriori esempi MQTT su ESP32. Esempio di un progetto completo. Strumenti per la realizzazione di semplici interfacce grafiche.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprensione del paradigma Publish&Subscribe e delle caratteristiche fondamentali del protocollo MQTT.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Saper codificare in MicroPython un programma per ESP32 che consenta lo scambio dati tramite protocollo MQTT.


Unità Didattica 5: Project work
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 0/0/9)

1. (3 ore lab): Presentazione dei progetti ed avvio delle attività
2. (3 ore lab): Attività progettuale assistita
3. (3 ore lab): Attività progettuale assistita

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Comprendere e saper interpretare una specifica di progetto per un sistema IoT.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Saper sviluppare ed implementare dal punto di vista hardware/software un sistema IoT, sulla base di una data specifica, costituito da uno o più microcontrollori connessi ad un insieme di sensori ed attuatori.

Totale Ore lezione 16 /Ore esercitazione 23 / Ore Laboratorio 9
Metodi Didattici
L'INSEGNAMENTO PREVEDE LEZIONI FRONTALI ED ESERCITAZIONI VOLTE A ILLUSTRARE L'USO DI STRUMENTI HARDWARE E SOFTWARE PER LA REALIZZAZIONE DI APPLICAZIONI IOT. LE ATTIVITÀ DI ESERCITAZIONE PRATICA SARANNO FINALIZZATE AD APPLICARE LE CONOSCENZE ACQUISITE PER LA PROGRAMMAZIONE DEL MICROCONTROLLORE UTILIZZANDO IL LINGUAGGIO PYTHON, LA PROGETTAZIONE DI SEMPLICI CIRCUITI ELETTRICI FINALIZZATI ALL’INTERFACCIAMENTO ED IL CONTROLLO DI COMPONENTI HW COME LED, MOTORI E SENSORI DI VARIA NATURA UTILIZZANDO I DIVERSI PROTOCOLLI (I2C, SPI, I/O DIGITALE ED ANALOGICO, PWM). LE ORE DI LABORATORIO VERRANNO UTILIZZATE PER AVVIARE LA REALIZZAZIONE DEL PROGETTO CHE DOVRÀ ESSERE DISCUSSO IN SEDE DI ESAME.

PER POTER SOSTENERE LA VERIFICA FINALE DEL PROFITTO E CONSEGUIRE I CFU RELATIVI ALL’ATTIVITÀ FORMATIVA, LO STUDENTE DOVRÀ AVERE FREQUENTATO ALMENO IL 70% DELLE ORE PREVISTE DI ATTIVITÀ DIDATTICA ASSISTITA.
Verifica dell'apprendimento
L'ESAME PREVEDE LA REALIZZAZIONE DI UN PROGETTO DI GRUPPO (CON GRUPPI DI 2-3 PERSONE) E UN COLLOQUIO ORALE INDIVIDUALE. IL PROGETTO È VOLTO A DIMOSTRARE LA CAPACITÀ DI REALIZZARE UNA APPLICAZIONE IOT CON GLI STRUMENTI PRESENTATI NEL CORSO, SARANNO RITENUTI SUFFICIENTI I PROGETTI CHE PREVEDONO L’INTERFACCIAMENTO DI SENSORI CONNESSI TRAMITE PROTOCOLLO I2C O SPI, CONTROLLO DI UN DEVICE TRAMITE PWM E LA COMUNICAZIONE VERSO L’ESTERNO TRAMITE MQTT. LA DISCUSSIONE DEL PROGETTO MIRERÀ A VERIFICARE IL CONTRIBUTO FORNITO DAI SINGOLI MEMBRI DEL GRUPPO NELLA REALIZZAZIONE DELLO STESSO. IL PUNTEGGIO AL PROGETTO VIENE ATTRIBUITO IN BASE ALLA COMPLETEZZA DEL SISTEMA REALIZZATO, LA COMPLESSITÀ ARCHITETTURALE E LA QUANTITÀ E TIPOLOGIA DI SENSORI REALIZZATI, LE INTERFACCE DI CONTROLLO ED INTERAZIONE.
IL COLLOQUIO MIRA A VERIFICARE LA COMPRENSIONE DEGLI ARGOMENTI TEORICI CON PARTICOLARE RIFERIMENTO AI PROTOCOLLI MQTT, I2C E SPI ALL’UTILIZZO DEL PWM PER IL CONTROLLO DEI MOTORI MICRO E SERVO. IL PUNTEGGIO DELLA PROVA ORALE DIPENDE DALLA CAPACITÀ DELLO STUDENTE DI PRESENTARE EFFICACEMENTE I CONTENUTI E DISCUTERE CRITICAMENTE DEGLI ARGOMENTI ESPOSTI.
IL VOTO FINALE SARÀ CALCOLATA COME MEDIA PESATA DEL VOTO ATTRIBUITO AL PROGETTO (60%) ED DELLA PROVA ORALE (35%), IL RIMANENTE 5% COME PARTECIPAZIONE ATTIVA ALLE LEZIONI.
L’ECCELLENZA SARÀ ATTRIBUITA AGLI STUDENTI CHE OTTERRANNO IL PUNTEGGIO MASSIMO IN ENTRAMBE LE PROVE E LA REALIZZAZIONE DI UN PROGETTO CON L’UTILIZZO DI SENSORI NON PRESENTATI A LEZIONE.
Testi
MATERIALE DIDATTICO FORNITO DAI DOCENTI.
MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO.
Altre Informazioni
L'INSEGNAMENTO E' EROGATO IN INGLESE
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-08-21]