55 lines
2.9 KiB
Plaintext
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> |