Files
website/_posts/teaching/2018-10-15-IOT.md

5.4 KiB

layout: single <<<<<<< HEAD title: "IoT Practical Exercise" categories: teaching 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 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

Server Icon{: .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, 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.

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 protocol.
  • Data Persistence: Storing simulated sensor data in an InfluxDB 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. Foundational Python skills were covered in a separate preparatory course.
Diagram showing simulated sensors publishing via MQTT to a broker, which is subscribed to by an InfluxDB logger
Conceptual pipeline for the MQTT-InfluxDB practical exercise.

The exercise aimed to solidify theoretical concepts discussed in the main lecture by applying them in a practical, albeit simulated, IoT scenario.

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

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.
======= title: "IOT: Devices & Connectivity" categories: teaching tags: teaching iot excerpt: "Teaching to plan and develope distributed mobile apps for Android as a team." header: teaser: assets/images/teaching/server.png ---

logo{: .align-left style="padding:0.1em; width:5em"} In the context of the lecture Internet of Things (IoT), 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 based communication approach, which incooperated an InfluxDB backend, while simulating some high frequency sensors. The task was to implement this all from scratch in Python, which was tought in seperate lecture. IOT Influx Pipeline{: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.

Contents

The general topics of the lecture included: 1) Arduino and Raspberry Pi, 2) Wearables and ubiquitous computing, 3) Metaheuristics for optimization problems, 4) Edge/fog/cloud computing and storage, 5) Scalable algorithms and approaches, 6) Spatial data mining, 7) Information retrieval and mining, 8) Blockchain and digital consensus, 9) Combinatorial optimization in practice, 10) Predictive maintenance systems, 11) Smart IoT applications, 12) Cyber security & 13) Web of Things

d0fa738f (rebase from mnml mistakes source)