INTERNET OF THINGS PROGRAMMING
PROGRAMMAZIONE PER L'INTERNET OF THINGS
|Lecturer||Office hours for students|
|Emanuele Lattanzi||Monday from 6:00 pm to 7:00 pm|
|Teaching in foreign languages|
Course with optional materials in a foreign language
This course is entirely taught in Italian. Study materials can be provided in the foreign language and the final exam can be taken in the foreign language.
Assigned to the Degree Course
|Date||Time||Classroom / Location|
|Date||Time||Classroom / Location|
The course aims to illustrate the architecture, functionalities and communication methods of the Internet of Things systems with particular reference to its programming techniques. In particular, the course introduces the programming technologies and methods dedicated to the the embedded systems based on the most popular microcontrollers and realtime operating systems.
01. Introduction to IoT
01.01 Overview and definitions
01.02 Functional view
01.03 Infrastructure view
02. Edge computing
02.01 Sensors and actuators
02.02 Data acquisition and processing
02.03 Data management
02.04 Time-series database
03. Embedded systems programming techniques
03.02 Finite state machines
03.03 Event-driven programming
03.04 Real time operating systems
04.01 Network layers
04.02 Wireless Edge Network for IoT
04.03 Constrained Application Protocol (CoAP)
04.04 Message Queuing and Telemetry Transport (MQTT)
05. Machine Learning for IoT
05.01 Centralized on-cloud Machine Learning
05.02 Distributed Machine Learning
05.03 Machine Learning on the edge
06. Laboratory Activities
06.01 Connect actuators and sensors to a Raspberry Pi
06.02 Mange time-series with InfluxDB
06.03 Program ESP MCU with FreeRTOS
06.04 Sample ESP MCU data with ThingSpeak
06.05 Explore MQTT protocol with Mosquitto
There are no mandatory prerequisites
Learning Achievements (Dublin Descriptors)
- Knowledge and understanding: at the end of the course, the student will acquire fundamental knowledge on the structure and functionality of the Internet of Things systems. Furthermore, the student will know the most widespread programming techniques, development platforms, and communication protocols.
- Applying knowledge and understanding: the student will acquire skills on the creation of device-side and cloud-side applications for Internet of Things systems. In particular, the student will acquire programming skills in C, in Processing, and in Python languages, respectively, on real-time operating systems, on Arduino compatible platforms, and on Raspberry Pi.
- Making judgements: at the end of the course, the student will be able to distinguish the main advantages and disadvantages of possible Internet of Things solutions and will be able to independently choose the hardware/software technologies, communication protocols and cloud platforms to build an Internet of Things system following a reference scenario.
- Communication skills: the student will acquire the ability to communicate the fundamental concepts of the Internet of Things operation and programming with an appropriate and rigorous terminology. The student will learn how to describe the programming problems and the methodologies adopted for their solution. Furthermore, the presentation of the exam project will give students the ability to independently integrate the knowledge learned during the course with further knowledge and to summarize the main topics in order to clearly set up a presentation.
- Learning skills: the student will acquire the ability to study and learn the structure, the functioning and the programming techniques of the Internet of Things systems.
The teaching material prepared by the lecturer in addition to recommended textbooks (such as for instance slides, lecture notes, exercises, bibliography) and communications from the lecturer specific to the course can be found inside the Moodle platform › blended.uniurb.it
Didactics, Attendance, Course Books and Assessment
Theory lectures and laboratory exercises.
Although recommended, course attendance is not mandatory.
- Course books
- 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
The exam includes a programming project and its oral presentation. The project, previously agreed with the teacher, must be accompanied by a summary report (maximum 10 pages) and must be submitted at least one week before the oral exam. The oral exam will consist of a presentation (using appropriate slides) together with a demonstration of the working project. The presentation will be followed by a discussion.
|« back||Last update: 06/09/2021|