Internet Of Things 2023
10606829 - INTERNET OF THINGS: ALGORITHMS AND SERVICES
(A. A. 2022/2023)
Technology is moving beyond the personal computer to everyday devices with embedded technology and connectivity as computing devices become progressively smaller and more powerful. We are going through a new phase of computing evolution that involves processing capabilities in everything: objects, places, people, and processes. Almost any device, from clothing to tools to appliances to cars to homes to the human body to your coffee mug, can be embedded with chips to connect the device to an infinite network of other devices.
The Internet of Things (IoT) goes beyond the realm of personal computers: devices, networks, and cloud services are being merged with people and their activities - individuals or groups - to provide new and exciting possibilities in everything we do. Such highly interconnected computational components act autonomously and intelligently through the use of software agents that seamlessly integrate humans in the loop, creating new opportunities for intelligent systems where humans and agents interact continuously.
Course Objectives
The course aims to introduce students to the main concepts behind the Internet of Things (IoT) necessary to (a) understand the meaning of digital ubiquity and how connections, sensors, and data are revolutionizing business by examining emerging application scenaria and studying characteristic design approaches of pervasive systems and embedded networks; (b) build physical prototypes of smart objects that embedded processing capabilities to almost any device, from clothing to appliances to homes to cars to business machines taking into consideration the constrained resources available on embedded systems; (c) design robust and efficient information & communication infrastructures for the acquisition, processing and storage of sensor data; (d) examine essential algorithmic techniques and performance limits and provide the foundations for algorithms engineering in open-design; (e) evaluate the performance of the solution implemented in terms of network, energy, and cybersecurity requirements using real-world experimentation facilities.
This course introduces the students to programming for embedded devices, real-time operating systems and hardware platforms based on the ESP32 architecture. Techniques for task scheduling and power management in low-power and real-time operating systems. Networking technologies and standards for low-power and long-range wide area networks. Advanced techniques for over-the-air programming in lossy wireless networks. Low-power cryptographic mechanisms for data encryption and network security.
The students will study data processing architectures that achieve certain service level requirements (a) based on the cloud computing paradigm to integrate sensors data with web and mobile services; (b) combining Big Data analytics for stream processing of sensor data; (c) building upon the edge computing and fog computing paradigms to take advantage all the resources available on the cloud-edge-device processing continuum; (d) utilize distributed ledger technologies and smart contracts to integrate sensor data in advanced services; (e) protect the privacy and confidentiality of date by utilizing privacy preserving aggregation and group computation techniques. The course focuses on technologies to collect, integrate and processing data in the most efficient way rather than in exploiting those data to distill new knowledge (e.g. machine learning).
The course is characterized by a learn-by-doing approach. To pass the exam students have to carry out individual assignments and a final group project.
Syllabus
The course is organized in the following modules:
- Module 1: Service Design for the Internet of Things.
- Introduction to the main concepts of the IoT and design aspects of IoT platform enabled applications. Overview of specific IoT services such as Transportation/Mobility, Energy, Retail and Healthcare. Study of specific use cases and IoT projects. Experience/Interaction design for IoT applications.
- Introduction to research areas of Ambient Intelligence, Collective Intelligence, Participatory sensing and Crowdsensing. Presentation of scientific & technological challenges.
- Connected Things Connecting Europe, Communications of the ACM, March 2019.
- Digital Ubiquity: How Connections, Sensors, and Data Are Revolutionizing Business, Harvard Business Review, November 2014.
- Module 2: Embedded Operating Systems and Hardware Platforms.
- Introduction to embedded operating systems and offered services. Overview of IoT operatings systems (Riot-OS, Contiki, TinyOS). Deployment methodology and offered services. Task scheduling and power management in low-power and real-time operating system.
- Hardware prototyping platforms. The ST Microelectronnics NUCLEO platform and the ARM Cortex M architecture.
- The Future of Sensing is Batteryless, Intermittent, and Awesome, 15th ACM Conference on Embedded Network Sensor Systems (SENSYS), November 2017.
- Internet of Things (IoT) Operating SystemsSupport, Networking Technologies, Applications,and Challenges: A Comparative Review, IEEE Communications Surveys & Tutorials, Vol. 20, No. 3, 2018.
- Module 3: Algorithms.
- Adaptive sampling and filtering algorithms.
- Techniques for Fulfilling the Time-Bound Requirements of Time-Sensitive IoT Applications.
- Data-Driven Synchronization for Internet-of-Things Systems
- Practical Data Prediction for Real-World Wireless Sensor Networks
- Model-Based Approaches to Sensor Data Compression
- A survey of adaptive sampling and filtering algorithms for the internet of things, DEBS '20: Proceedings of the 14th ACM International Conference on Distributed and Event-based SystemsJuly 2020 Pages 27–38
- A Survey of Techniques for Fulfilling the Time-Bound Requirements of Time-Sensitive IoT Applications, ACM Computing Surveys, Volume 54, Issue 11, Article No.: 228, pp 1–36.
- Data-Driven Synchronization for Internet-of-Things Systems, ACM Transactions on Embedded Computing Systems, Volume 16, Issue 3, Article No.: 69, pp 1–24.
- Practical Data Prediction for Real-World Wireless Sensor Networks, IEEE Transactions on Knowledge and Data Engineering, vol. 27, no. 8, pp. 2231-2244, 2015.
- An Evaluation of Model-Based Approaches to Sensor Data Compression, IEEE Transactions on Knowledge and Data Engineering, vol. 25, no. 11, pp. 2434-2447, 2013.
- Module 4: Performance Evaluation.
- Introduction to different aspects of performance evaluation for IoT applications. Elements of network performance and wireless communication. Measuring power consumption and energy efficiency. Looking into the security and privacy of data.
- Tools for conducting performance evaluation. Overview of software simulators. Synthetic models for wireless channels, node mobility and application traffic generation. Using real-world datasets.
- Experimentation-as-a-service: IoT Lab for very large scale open real-world experimentation.
- Flexible experimentation in wireless sensor networks, Communications of the ACM, January 2012.
- A Framework to Implement IoT Network Performance Modelling Techniques for Network Solution Selection, MDPI Sensors, 16(12), article 2038, 2016.
- Module 5: Data, Analytics, Security, Privacy.
- Introduction to data processing architectures. Big Data analytics in IoT enabled applications. AIOT: Artificial Intelligence for IoT. Cloud vs Edge computing, technical challenges and service level requirements. Basic notions of Fog computing and research challenges.
- Presentation of Amazon Web Services for the Internet of Things. Detailed presentation of IoT Core, IoT Analytics, GreenGrass. SageMaker @ Edge
- Machine-to-Machine (M2M) communication, basic principles of interoperability.
- Securing the Internet of Things, TinyDTLS and Elliptic Curve Cryptography.
- Blockchain for IoT. Opportunities and Challenges of Smart Contracts for IoT. Introducing IoT data in Smart Contracts using Oracles. IOTA: open-source distributed ledger and cryptocurrency designed for the Internet of things.
- Privacy Preserving Computation. Privacy preserving aggregation and group computation.
- Analytics for the Internet of Things: A Survey, ACM Computing Surveys, Vol. 51, No. 4, July 2018.
- Applications of Distributed Ledger Technologies to the Internet of Things: A Survey, ACM Computing Surveys, Vol. 52, No. 6, November 2019.
- Blockchain as IoT Economy Enabler: A Review of Architectural Aspects, J. Sens. Actuator Netw. 2022, 11(2), 20.
- Demystifying IoT Security: An Exhaustive Survey on IoT Vulnerabilities and a First Empirical Look on Internet-Scale IoT Exploitations, IEEE Communications Surveys & Tutorials, vol. 21, no. 3, pp. 2702-2733, 2019.
Individual Assignment
Students will need to carry out a single assignment that realizes an IoT system. The assignment is individual and needs to be submitted through Google Classroom.
Students are required to buy an open-design development board based on ESP-32 with WiFi and LoRA connectivity capabilities, such as one of the following: WiFi LoRa 32 (V3) provided by Heltec, WiFi LoRa 32 (V3) provided by Heltec or TTGO T-Beam V1.1 ESP32 provided by LILYGO or other variants.
Students are required to buy an electronics components kit. The electronic components kit in combination with the ESP32 will be used to learn the basics of embedded programming and circuit assembly. Additional components may be needed, depending on your design choices for the realization of the individual assignments.
- Individual Assignment
Deadline: 2nd May 2023
The above assignment is done by each student individually. Clearly you should discuss with other students of the course about the assignments. However, you must understand well your solutions, the code and the final write-up must be yours and written in isolation. In addition, even though you may discuss about how you could implement an algorithm, what type of libraries to use, and so on, the final code must be yours. You may also consult the internet for information, as long as it does not reveal the solution. If a question asks you to design and implement an algorithm for a problem, it's fine if you find information about how to resolve a problem with character encoding, for example, but it is not fine if you search for the code or the algorithm for the problem you are being asked. For the projects, you can talk with other students of the course about questions on the programming language, libraries, some API issue, and so on, but both the solutions and the programming must be yours. If we find out that you have violated the policy and you have copied in any way you will automatically fail. If you have any doubts about whether something is allowed or not, ask the instructor.
Group Assignment
Students are organized in groups of three and take over the design, development and evaluation of a pervasive system.
The development will be based on the ESP32 boardFARM allowing the students to try out their ideas and to quickly create prototypes for evaluation. Each project will be demonstrated at the end of the semester along with a detailed presentation of the evaluation of the end-to-end performance.
The group assignment thematic area, expected results and delivery schedule will be presented in detail during the 1st Lecture.
- 1st Delivery: Initial Idea Pitch
Deadline: 4th April 2023
- 2nd Delivery: Intermediate Delivery
Deadline: 2nd May 2023
- Exam: Final Delivery
Deadline: 26th May 2023
Final Exam
The course will be evaluated based on the performance of (a) the individual assignment, (b) the three deliveries of the group project and the overall quality of the group project, and (c) the active participation of the student during the semester.
You can find detailed information on what you are expected to submit, how and when for each of the individual assignment, the three deliveries of the group project on the previous sections by following the links "Instructions".
Additional information about exam products are given during the class and communicated through the Google Classroom system. We strongly suggest students to attend the class and to participate to these activities in order to complete the assignments within the dates of the course.
Instructors
- Ioannis Chatzigiannakis, Sapienza University of Rome.
- Andrea Vitaletti, Sapienza University of Rome.
- Marco Zecchini, Sapienza University of Rome.
- Stefano Milani, Sapienza University of Rome.
Location & Schedule
- Tuesday, 11:00 - 15:00, SPV Room 41
- Friday, 11:00 - 13:00, SPV Room 41
Contact & Discussions
A Google Classroom is available using the following code: mbmekeo
A discord channel is available at the following URL: https://discord.gg/4qtVX28DdW
Course Plan & Detailed Material
- Lecture 1: Tuesday, February 28, 2023. Presentation of Course Plan, Requirements, Course work and Final Exam. Introduction to the Internet of Things, Application areas and Use cases. Data driven time synchronization and adaptive sampling. node vs edge vs cloud computing approaches.Presentation of Group Projects Thematic Area module 1 module 5
- Key concepts and skills for getting started in IoT, IBM Developer
- Lecture 2: Friday, March 4, 2023. Evaluation Metrics for IoT. Performance Evaluation. Real World dataset, Synthetic Models and Experiments module 4
- Lecture 3: Tuesday, March 7, 2023. Machine-to-Machine (M2M) communications. Cloud vs Edge IoT Services. module 2 module 5
- Architetture dei Calcolatori, Corso di Laurea in Ingegneria Informatica e Automatica.
- Connecting all the things in the Internet of Things, IBM Developer
- Streamlining the development of your IoT applications by using an IoT platform, IBM Developer
- CoAP
- MQTT
- Lecture 4: Friday, March 10, 2023. Introduction to Embedded Operating Systems. RIOT-OS. module 2
- RIOT: An Open Source Operating System for Low-End Embedded Devices in the IoT, Emmanuel Baccelli, Cenk Gündoğan, Oliver Hahm, Peter Kietzmann, Martine Lenders, Hauke Petersen, Kaspar Schleiser, Thomas C. Schmidt, Matthias Wählisch, IEEE Internet of Things Journal, Vol. 5, No. 6, pp. 4428-4440, December 2018.
- RIOT and the evolution of operating systems for IoT devices
- Choosing the best hardware for your next IoT project, IBM Developer
- RIOT-OS Hands-on Introduction
- RIOT-OS Hands-on Tutorial
- How to create a new RIOT application
- Hands-on Examples
- Using a Digital Sensor for measuring Temperature and Relative Humidity: Code, Video Tutorial
- Using an Analog Sensor for measuring Luminosity: Code, Video Tutorial
- Lecture 5: Tuesday, March 14, 2023. Cloud-based IoT Services. Amazon Web Services. module 2 module 5
- Lecture 6: Friday, March 17, 2023. Low-Power Long-Range Networks module 2 module 5
- Lecture 7: Tuesday, March 21, 2023. Wireless Mesh Networking, 802.15.4. Experimentation-as-a-service: Large scale real-world evaluation. module 3 module 4
- Chapter 5: Routing, Data Networks (2nd Edition) by Dimitri P. Bertsekas and Robert G. Gallager
- Mobile Ad Hoc Networks: Routing, MAC and Transport Issues slides by Nitin H. Vaidya
- The Dynamic Source Routing Protocol (DSR) for Mobile Ad Hoc Networks for IPv4, IETF MANET Working Group, INTERNET-DRAFT.
- Ad hoc On-Demand Distance Vector (AODV) Routing, IETF MANET Working Group, INTERNET-DRAFT.
- Public IPv6/6LoWPAN network with RIOT over IOT-Lab
- Running RPL routing protocol with RIOT on M3 nodes over IOT-Lab
- FIT IoT-LAB: A Large Scale Open Experimental IoT Testbed – C. Adjih, E. Baccelli, E. Fleury, G. Harter, N. Mitton, T. Noel, R. Pissard-Gibollet, F. Saint-Marcel, G. Schreiner, J. Vandaele, T. Watteyne – IEEE World Forum on Internet of Things (IEEE WF-IoT), Milan, Italy, December 2015. View Paper
- Step-by-step IOT-Lab Tutorials
- Measuring Consumption using INA226
- Hands-on Example on how to do periodic sampling of the digital sensor using low power sleep
- MQTT-SN with public IPv6 network and A8-M3 nodes
- Lecture 8: Friday, March 24, 2023. Security for IoT (Part 1) module 2 module 5
- Lecture 9: Tuesday, March 28, 2023. Security for IoT (Part 2) module 2 module 5
- Lecture 10: Friday, March 31, 2022. Introduction to Crowd sensing and Blockchain module 5
- Lecture 11: Tuesday, April 4, 2023. Group Projects: Initial Ideas Pitch
- Lecture 12: Friday, April 14, 2023. Blockchains for the IoT module 5
- Lecture 13: Tuesday, April 18, 2023. Algorand, IoTA. module 5
- Lecture 14: Friday, April 21, 2023. Crowdsensing module 5
- Lecture 15: Tuesday, May 2, 2023. Group Project Intermediate Presentations
- Lecture 16: Friday, May 5, 2023. Blockchains for the IoT module 5
- Lecture 17: Tuesday, May 9, 2023. TBD
- Lecture 18: Friday, May 12, 2023. TBD
- Lecture 19: Tuesday, May 16, 2023. TBD
- Lecture 20: Friday, May 19, 2023. TBD
- Lecture 21: Tuesday, May 23, 2023. TBD
- Lecture 22: Friday, May 26, 2023. Group Project Final Presentation (Part 1)
- Lecture 23: Tuesday, May 30, 2023. Group Project Final Presentation (Part 2)