Website overhaul
This commit is contained in:
@ -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
|
||||
---
|
||||
|
||||
{: .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/).
|
||||
{: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.
|
||||
{: .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>
|
Reference in New Issue
Block a user