Course Syllabus
Obiettivi
La tecnologia Internet of Things sta rimodellando il mondo integrando sempre di più le nostre vite con componenti tecnologiche. Il corso si propone di fornire la comprensione generale ei concetti relativi alle tecnologie alla base dell'Internet of Things (IoT) ed in particolare alle applicazioni alla cosiddetta Industria 4.0. Il corso discuterà le considerazioni sulla progettazione dell'IoT, i vincoli e l'interfaccia tra il mondo fisico e i dispositivi IoT e come fare compromessi di progettazione tra hardware e software. Verranno trattati gli aspetti chiave della rete per capire come sono collegati i dispositivi.
Contenuti sintetici
Le tecnologie coinvolte nello stack hardware/software IoT comprendono un ampio spettro, inclusi sistemi embedded, sensori, sistemi operativi, reti, protocolli di comunicazione, gestione e analisi dei dati. Il corso introdurrà i concetti principali di ciascun dominio, con particolare attenzione ad alcuni aspetti specifici selezionati. Il corso prevede lezioni pratiche sulle basi della programmazione per l'IoT utilizzando il linguaggio di programmazione Python.
Programma esteso
- Definizione di "Internet of Things" e Industria 4.0
- Tendenze tecnologiche che hanno portato all'IoT
- Impatto dell'IoT sulla società ed esempi di applicazioni
- Definizione e architettura dei sistemi embedded
- Interfacciamento dei sistemi embedded con il mondo fisico (sensori e attuatori)
- Sistemi operativi e pianificazione in tempo reale
- Nozioni di base sulle macchine a stati finiti
- Stack hardware e software di rete di base
- Protocolli di rete (MQTT, CoAP) e formati di dati (JSON, XML) per l'IoT
- Introduzione al linguaggio di programmazione Python
- Competenze di programmazione Python relative a MQTT, JSON, HTTP
- La libreria Python tkinter per interfacce grafiche
- Il framework web flask e REST API
Prerequisiti
I seguenti prerequisiti possono essere utili, ma data la natura introduttiva del corso, non sono obbligatori:
- programmazione computer
- architettura software dei computer
- reti di computer
Modalità didattica
Il corso è organizzato in lezioni frontali che tratteranno tutti gli argomenti indicati nel programma. Le lezioni frontali ammontano a circa 2/3 del corso. Le restanti lezioni consisteranno in lezioni in laboratorio ed esercitazioni relative alla programmazione dei dispositivi IoT.
Materiale didattico
Tutto il materiale presentato durante le lezioni è disponibile nella pagina web del corso sotto forma di slide in formato PDF. Ulteriori risorse includono i seguenti libri:
David Hanes et al., “IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things”, Cisco Press, 2017.
Andy King, “Programming the Internet of Things: An Introduction to Building Integrated, Device-to-Cloud IoT Solutions”, O’Reilly, 2021.
Periodo di erogazione dell'insegnamento
Secondo semestre
Modalità di verifica del profitto e valutazione
L'esame consiste in un'unica prova scritta con domande ed esercizi relativi agli argomenti presentati durante il corso. Non sono previste prove intermedie durante il semestre. Una prova orale facoltativa può essere concordata su richiesta dello studente o del docente.
Orario di ricevimento
Inviare una email al docente per un appuntamento.
Sustainable Development Goals
Aims
The “Internet of Things” is reshaping the world by more and more integrating our lives with technological components. The course aims at providing the general understanding and concepts about the technologies behind the Internet of Things (IoT) and in particular to applications to the so-called Industry 4.0. The course will discuss IoT design considerations, constraints and interfacing between the physical world and IoT devices, and how to make design trade-offs between hardware and software. Key aspects of networking will be covered to understand how devices are connected.
Contents
The technologies involved in the IoT hardware/software stack encompass a broad spectrum, including embedded systems, sensors, operating systems, networking, communication protocols, data management and analysis. The course will introduce the main concepts of each domain, with more focus on some specific selected aspects. The course will include hands-on lectures on the basics of programming for the IoT using the Python programming language.
Detailed program
- Definition of “Internet of Things” and Industry 4.0
- Technological trends which brought to IoT
- Impact of IoT on society and examples of applications
- Definition and architecture of embedded systems
- Interfacing of embedded systems with the physical world (sensors and actuators)
- Operating systems and real-time scheduling
- Basic of Finite State Machines
- Basic networking hardware and software stacks
- Network protocols (MQTT, CoAP) and data formats (JSON, XML) for the IoT
- Introduction to the Python programming language
- Python programming skills related to MQTT, JSON, HTTP
- The tkinter Python library for graphical interfaces
- The flask web framework and REST API
Prerequisites
The following prerequisites may be useful, but given the introductory nature of the course, they are not mandatory:
- computer programming
- software architecture of computers
- computer networks
Teaching form
The course is organized in frontal lectures that will cover all the topics listed in the program. Frontal lectures amount to around 2/3 of the course. The remaining lessons will consist in laboratory lectures and exercises related to the programming of IoT devices.
Textbook and teaching resource
All the material presented during the lessons is available from the course webpage as slides in PDF format. Additional resources include the following books:
David Hanes et al., “IoT Fundamentals: Networking Technologies, Protocols, and Use Cases for the Internet of Things”, Cisco Press, 2017.
Andy King, “Programming the Internet of Things: An Introduction to Building Integrated, Device-to-Cloud IoT Solutions”, O’Reilly, 2021.
Semester
Second semester
Assessment method
The exam consists in a single written test with questions and exercises related to the arguments presented during the course. There are no intermediate tests during the semester. An optional oral exam can be agreed upon request by the student or by the teacher.
Office hours
Send an email to the teacher for an appointment.