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
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.
I'll come up with a detailed bio later. Bear with me.
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).