Academic Year 2023/2024 - Teacher: Vincenzo CATANIA

Expected Learning Outcomes

Knowing the IoT paradigm. Ability in programming a microcontroller-based system. Ability in programming hardware/software hybrid systems by means of the arduino platform. Having a basic knowledge on FPGA implementation. Knowing the issues and the solutions related to the interfacing with the physical world. Knowing of the issues related to the virtualization and the operating systems in the context of IoT.

Knowledge and understanding

The student will be able to re-elaborate what is presented with respect to each of the elements of an IoT system in order to integrate the different components in order to create a complex system that interacts with the surrounding environment with respect to a set of design requirements.

Applied knowledge and understanding

The student will be able to apply theoretical notions in a laboratory environment in which to personally experience the criticalities that occur when the theoretical notions about the various components are applied to real components.

Making Judgements

Development of autonomous judgment skills to evaluate the feasibility of IoT architectures

Communication Skills

Development of communication skills to represent the salient features of an IoT system

Learning Skills

Being able to use the knowledge and skills learned to design IoT systems

Course Structure

Lectures and laboratory exercises. If the teaching is given in a mixed or remote way, the necessary changes with respect to what was previously stated may be introduced in order to comply the planned program and reported in the syllabus.

Detailed Course Content

Internet of Things e scenari applicativi

  • Smart Objects and the Internet of Things: Overview & Principles
  • Making sense of IoT

IoT enabling technologies and protocols

  • Architetture per l’IoT
  • IoT Building Blocks
    • Identificazione
    • Sensing
    • Comunicazione
    • Computazione
    • Servizi
    • Semantica
  • Protocolli per l’IoT: REST, CoAP.


  • Tassonomia
  • Generalità sui microcontrollori
  • CPU di un microcontrollore: modelli architetturali e repertorio di istruzioni.
  • Interfacciamento con il mondo fisico
    • Problematiche e modelli operativi
    • ADC e DAC
    • Gestione dell’I/O: Memory-Mapped I/O, Programmed I/O, Interrupts, Direct Memory Access
    • Periferiche: porte di I/O e loro programmazione, clock, timer
    • Protocolli di comunicazione wired: UART/USART, SPI, I2C.

Microcontrollori per l’IoT & sistemi di prototipazione

  • Principi dell'Open Hardware e piattaforme di prototipazione
  • La piattaforma Arduino
    • Input digitali e analogici semplici
    • Ricavare input dai sensori
    • Output visivo e audio
    • Controllare dispositivi esterni in remoto
    • Comunicare utilizzando Seriale, I2C e SPI
  • Hands-on (Lab)

Textbook Information

  1. Ovidiu Vermesan and Peter Friess. Building the Hyperconnected Society IoT Research and Innovation Value Chains, Ecosystems and Markets. River Publishers Series in Communications.
  2. Making sense of IoT - How the Internet of Things became humanity’s nervous system By Kevin Ashton.
  3. Introduction to Microcontrollers, Gunther Gridling, Bettina Weiss, Version 1.4
  4. Michael Margolis. Arduino. Progetti e soluzioni. Tecniche Nuove.
  5. Materiale fornito dal docente sotto forma di slides, dispense, e risorse online.

Course Planning

 SubjectsText References
1Trend tecnologici e sistemi embedded5
2Dal sensore al sensore “smart”5
3Internet of Things e scenari applicativi2
4Interfaccia con il mondo fisico: Principi di funzionamento, Sistemi di acquisizione, Campionamento, quantizzazione e codifica, ADC and DAC, Accesso ai dispositivi di I/O Interfaccia di I/O5
5Interfaccia con il mondo fisico: Meccanismi per l’Input/Output: memory-mapped I/O, programmed I/O, interrupts, direct memory access5
6Microcontrollori per l'IoT: Generalità sui microcontrollori1, 3, 5
7Microcontrollori per l'IoT: CPU di un microcontrollore: architettura e repertorio di istruzioni1, 5
8Microcontrollori per l'IoT: Periferiche: porte di I/O, polling, interruzioni, ADC, clocks, timers1, 5
9Microcontrollori per l'IoT: Interfacciamento: sensori, display LCD, motori1, 3, 5
10Microcontrollori per l'IoT: Protocolli di comunicazione wired: UART/USART, SPI, I2C, 1-wire.1, 5
11Microcontrollori per l'IoT: Principi dell'Open Hardware3, 5
12Sistemi di Prototipazione: La piattaforma Arduino, Le comunicazioni seriali, Input digitali e analogici semplici, Ricavare input dai sensori, Output visivo e audio3, 5
13Sistemi di Prototipazione: Controllare dispositivi esterni in remoto, Comunicare utilizzando I2C e SPI3, 5
14Sistemi di Prototipazione: Generalità sulle FPGA, Prototipazione su Xilinx FPGA4, 5
15Smart Sensors: Embedded microprocessor cores: Microprocessors, microcontrollers, DSP, ASIP, GPU.5
16Smart Sensors: Embedded memory technologies: DRAM, SRAM, FLASH, EPROM.5
17Smart Sensors: I/O controllers5
18Virtualizzazione e Sistemi Operativi per l’IoT5