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.

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.