Files
website/content/experience/2018-10-15-IOT.mdx
2025-09-12 23:20:36 +02:00

55 lines
2.9 KiB
Plaintext

---
title: "IoT Practical Exercise"
tags: [iot, mqtt, python, influxdb, distributed-systems, practical-course]
excerpt: "Designed and taught an IoT practical exercise using MQTT and Python for approximately 200 students."
teaser: "/images/teaching/server.png"
icon: "/images/teaching/server.png"
---
<InfoBox title="Project Details">
- **Role**: Practical Course Instructor/Designer
- **Skills**: Curriculum Design, IoT (MQTT), Databases (InfluxDB), Python, Live Coding
- **Duration**: Winter Semester 2018/19
</InfoBox>
As part of the lecture **[Internet of Things (IoT): Devices, Connectivity, and Services](https://www.mobile.ifi.lmu.de/lehrveranstaltungen/iot-ws1819/)**, I was responsible for designing and conducting a practical programming exercise suitable for completion within one to two class sessions. This exercise targeted approximately 200 students.
The goal was to provide hands-on experience with fundamental IoT communication patterns. The chosen approach involved:
* **Communication Protocol:** Implementing a typical publish/subscribe system using the **[MQTT](https://mqtt.org/)** protocol.
* **Data Persistence:** Storing simulated sensor data in an **[InfluxDB](https://www.influxdata.com/)** time-series database backend.
* **Sensor Simulation:** Generating high-frequency data streams to mimic real-world sensor behavior.
* **Implementation Language:** Requiring students to implement the entire pipeline from scratch using **[Python](https://www.python.org/)**. Foundational Python skills were covered in a [separate preparatory course](/experience/python/).
<div className="my-6 text-center">
<Image src="/images/teaching/iot_inflex_pipeline.webp" alt="Diagram showing simulated sensors publishing via MQTT to a broker, which is subscribed to by an InfluxDB logger" width={800} height={323} />
<figcaption className="text-sm text-muted-foreground mt-2">Conceptual pipeline for the MQTT-InfluxDB practical exercise.</figcaption>
</div>
The exercise aimed to solidify theoretical concepts discussed in the main lecture by applying them in a practical, albeit simulated, IoT scenario.
## Practical Exercise Focus
The hands-on session concentrated specifically on:
- Understanding the MQTT Publish/Subscribe pattern.
- Implementing MQTT clients (publishers/subscribers) in Python.
- Interfacing with InfluxDB for time-series data storage using Python libraries.
- Simulating basic sensor data streams.
- Integrating components into a functional pipeline.
This practical work provided direct experience related to the broader lecture themes of IoT connectivity, data handling, and application development.
<InfoBox title="Associated Lecture Topics">
- Arduino and Raspberry Pi
- Wearables & Ubiquitous Computing
- Edge/Fog/Cloud Computing
- Scalable Algorithms
- Spatial Data Mining
- Blockchain & Digital Consensus
- Predictive Maintenance
- Smart IoT Applications
- Cyber Security
- Web of Things
</InfoBox>