IoT Sensor Nodes Laboratory (IN0012)
Prof. Dr. Michael Gerndt, M.Sc Isaac Nunez
Dates: | Mondays, 10:00-11:30. We will go to Fraueninsel for three days in July for the final project. The chair will cover the travel and room costs. The participants will have to cover the food ( about 150 €). |
Planning pre-meeting: | On Zoom. Wednesday, January 31st, 17:30-18:00 |
First meeting: | 15.04.24 |
ECTS: | 10 |
Language: | English |
Type: | IN0012 - Bachelor-Praktikum, 6P |
Registration: | Registration is through the matching system |
Matching pre-registration | Please drop me an email with a short description of your interests/previous experiences (not more than 2 paragraphs) |
Goals & Objectives
This course will immerse students in novel sensing workflows with the Internet of Things (IoT) technologies. The course will provide hands-on experience in sensing, visualization, and implementing real-world use cases for sensing and actuating using microcontrollers, the cloud, and edge devices throughout the semester. You will gain experience working with real hardware, connecting it to our IoT Platform, collecting the measurements, processing them, and further designing scenarios where the data plays an important role. Additionally, you will learn through the Praktikum how to work in groups and communicate with teammates from various backgrounds.
To achieve this, the course has the following objectives:
- Provide the space and tools to gather knowledge on how to program sensors.
- Enable the students to discover which aspects are relevant when designing and deploying an IoT application.
- Motivate the students to dive into the field of IoT and its interdisciplinary applications.
Prerequisites
For successful participation in this course, being enthusiastic about developing IoT Applications is most important. You must take part in the trip to be able to participate in this course. Having some background in microcontroller programming, web technologies, or data analysis techniques is also helpful. Furthermore, it is advantageous to have some experience in some of the following topics
- Programming in C/C++
- Machine Learning
- Low Energy Communications
- Networking
- REST API
The ability to work in a team is also needed to successfully complete the course.
Description
Internet of Things (IoT) provides rich platforms with distributed and lightweight applications that have transformed the businesses of companies such as Apple, BMW, Siemens, Huawei, and many others. The main idea of IoT is to collect data from devices and their surrounding environment through sensors. However, it is imperative to consider the limited resources many of these devices have. From battery to memory, everything we program has an effect. Power sources are rarely available when they are remotely located, and exchanging batteries is a complex task. Moreover, their storage units are in the range of megabytes and RAM in kilobytes, which requires avil programming to fulfill many functions while ensuring optimal resource usage. Hence, learning to collect, store, and communicate data efficiently is more critical than ever.
So, during the semester, we'll be able to guide you through the intricacies of embedded programming for IoT devices by solving numerous challenges on the popular ESP32 and ESP-IDF. You will get the chance to explore and apply programming techniques, e.g., threads, memory addressing, and power optimization while learning to address the challenges of resource constraints. The Praktikum will culminate with a group project to record data through multiple sensors and nodes scattered through Fraueninsel and interconnected using our mesh network for sensors. Nonetheless, collecting data is just one part of the story. Therefore, we will also show popular software for communicating and visualizing sensor data.
Organization
The course is organized in two parts. Through the first weeks of the semester, we will explore the fundamentals of programming microcontrollers with the help of ESP32s and ESP-IDF. Additionally, we will introduce the concept of an IoT Platform and the essential parts that compose it. And finally, we will explore the basis of event-driven programming on microcontrollers.
The students will work in groups in the second part (before and at Fraueninsel). Each group will be tasked with implementing certain functionalities for our sensor nodes.
Grading
The course will use an individual weighted-average grading scheme between the assignments during the semester, the final project, and an oral exam. We will use Github Classroom to submit each week's assignment. We will give more details during the semester.
Costs
For the trip to Chiemsee, you will have to cover the food expenses, around 150€ for the three days we plan to stay there. We cover the cost of lodging and transportation by boat. We assume each student has a valid Deutschland (or the respective Student Deutschland) ticket.
Further Opportunities
Further options to go deeper into that field are the bachelor's thesis and, on the master's level, our lecture on cloud computing, the master lab course on IoT edge computing, or a guided research project.