IoT using Python on Linux: Lessons Learned

This talk is about our experience using Python on a Linux based IoT device, the problems we were facing and the lessons we learned. An appliance using Bluetooth Low Energy, D-Bus, NetworkManager and a proprietary sensor interface - What could possibly go wrong?

Tags: DevOps, Infrastructure, Networks, Programming, Python

Scheduled on wednesday 12:20 in room lounge

Speaker

Thomas Keppler (@diva_excellence)

Interested in technology since the age of 6, I started learning how to program using the traditional LAMP stack in the mid 2000s. From then on I was simply hooked on the field of application development! Developing software for platforms new and old slowly transformed from being a Hobby into a professional career. My journey with Python 3 started in 2013 when I was searching for a platform independent way to write scripts for my sysadmin job at the time.

Matthias Schmidt (https://twitter.com/diva_excellence)

I'll come up with a detailed bio later. Bear with me.

Description

In a distributed sensor network system with a Java based Cloud application, mobile apps and a proprietary radio protocol accompanying it we developed an IoT appliance that connects the existing radio infrastructure to the Cloud service developed in-house.

Using CPython 3.5 + Debian GNU/Linux 9 on an ARMv7 platform, we developed the following features:

  • Secure device <-> app communication via Bluetooth Low Energy using a custom encryption protocol
  • Enabling self healing network connectivity through the use of NetworkManager
  • Controlling the sensor network using proprietary hardware through a custom C library with Python bindings
  • Heavy use of D-Bus through pydbus
  • Interfacing with LEDs and buttons using the Linux GPIO subsystem
  • Internal state management through strictly composable interfaces
  • Secure remote software update

Over the course of this project, we learned a lot about Test Driven Development of Python apps in teams and DevOps in the IoT space. We would now like to share our experience developing a Python application for a headless IoT device and the things we would liked to have known upfront.

The talk is held both by Matthias Schmidt (Senior Architect at diva-e) and Thomas Keppler (Software Developer at diva-e).