Website overhaul

This commit is contained in:
2025-03-27 22:57:31 +01:00
parent 2b75326eac
commit 755fd297bb
70 changed files with 1389 additions and 709 deletions

View File

@ -1,31 +1,61 @@
---
layout: single
title: "IOT: Devices & Connectivity"
title: "IoT Practical Exercise"
categories: teaching
tags: teaching iot
excerpt: "Teaching to plan and develope distributed mobile apps for Android as a team."
tags: teaching iot mqtt python influxdb distributed-systems practical-course
excerpt: "Designed/taught IoT practical (MQTT, Python) for ~200 students."
header:
teaser: assets/images/teaching/server.png
teaser: /assets/images/teaching/server.png
role: Practical Course Instructor/Designer
skills: Curriculum Design (Practical Exercise), IoT Protocols (MQTT), Time Series Databases (InfluxDB), Python Programming, Live Coding, Large Group Instruction
duration: Winter Semester 2018/19
---
![logo](\assets\images\teaching\server.png){: .align-left style="padding:0.1em; width:5em"}
In the context of the lecture [Internet of Things (IoT)](https://www.mobile.ifi.lmu.de/lehrveranstaltungen/iot-ws1819/), my task was to come up with a practical exercise which could be implemented in the scope of 1-2 classes. We went with a typical [MQQT](https://mqtt.org/) based communication approach, which incooperated an [InfluxDB](https://www.influxdata.com/) backend, while simulating some high frequency sensors.
The task was to implement this all from scratch in [Python](https://www.python.org/), which was tought in seperate [lecture](/teaching/Python/).
![IOT Influx Pipeline](\assets\figures\iot_inflex_pipeline.png){:style="display:block; margin-left:auto; margin-right:auto; padding: 2em;"}
This practical course was held in front of about 200 students in winter 2018.
![Server Icon](/assets/images/teaching/server.png){: .align-left style="padding:0.1em; width:5em" alt="Server/Network Icon"}
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 during the Winter Semester 2018/19.
### Contents
The goal was to provide hands-on experience with fundamental IoT communication patterns. The chosen approach involved:
- Arduino and Raspberry Pi
- Wearables and ubiquitous computing
- Metaheuristics for optimization problems
- Edge/fog/cloud computing and storage,
- Scalable algorithms and approaches
- Spatial data mining,
- Information retrieval and mining
- Blockchain and digital consensus
- Combinatorial optimization in practice
- Predictive maintenance systems
- Smart IoT applications
- Cyber security
- Web of Things
* **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](/teaching/Python/).
<center>
<img src="/assets/figures/iot_inflex_pipeline.png" alt="Diagram showing simulated sensors publishing via MQTT to a broker, which is subscribed to by an InfluxDB logger" style="max-width: 80%;">
<figcaption>Conceptual pipeline for the MQTT-InfluxDB practical exercise.</figcaption>
</center><br>
The exercise aimed to solidify theoretical concepts discussed in the main lecture by applying them in a practical, albeit simulated, IoT scenario.
<div class="container" style="margin-top: 1.5em;">
<div class="sidebar" style="float: right; width: 30%; border: 0.5px grey solid; padding: 15px; margin-left: 15px; box-sizing: border-box;">
<h4 style="margin-top: 0;">Associated Lecture Topics</h4>
<ul style="list-style: none; padding-left: 0; margin-bottom: 0; font-size: smaller;">
<li>Arduino and Raspberry Pi</li>
<li>Wearables & Ubiquitous Computing</li>
<li>Edge/Fog/Cloud Computing</li>
<li>Scalable Algorithms</li>
<li>Spatial Data Mining</li>
<li>Blockchain & Digital Consensus</li>
<li>Predictive Maintenance</li>
<li>Smart IoT Applications</li>
<li>Cyber Security</li>
<li>Web of Things</li>
<!-- Note: This list represents the broader lecture, not just the practical exercise -->
</ul>
</div>
<div class="main-content" style="float: left; width: calc(70% - 15px); box-sizing: border-box;">
<h4 style="margin-top: 0;">Practical Exercise Focus</h4>
The hands-on session concentrated specifically on:
<ul>
<li>Understanding the MQTT Publish/Subscribe pattern.</li>
<li>Implementing MQTT clients (publishers/subscribers) in Python.</li>
<li>Interfacing with InfluxDB for time-series data storage using Python libraries.</li>
<li>Simulating basic sensor data streams.</li>
<li>Integrating components into a functional pipeline.</li>
</ul>
This practical work provided direct experience related to the broader lecture themes of IoT connectivity, data handling, and application development.
</div>
<div style="clear: both;"></div>
</div>