E-Book, Deutsch, 392 Seiten
Kühnel MicroPython
1. Auflage 2026
ISBN: 978-3-367-11570-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Das Handbuch für Maker und IoT-Development
E-Book, Deutsch, 392 Seiten
ISBN: 978-3-367-11570-9
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Mikrocontroller-Programmierung muss nicht schwierig und umständlich sein. Mit Micropython haben Sie ein Werkzeug, das die Arbeit mit den Arduinos, dem ESP32/8266 oder dem Raspberry Pi Pico einfach macht: Im Handumdrehen lesen Sie Sensoren aus, richten Webserver ein und versenden Daten über Bluetooth LE oder WLAN. Wie das geht, zeigt Ihnen Claus Kühnel in diesem Praxisbuch.
Aus dem Inhalt:
- Grundlagen: Python für Maker
- Entwicklungsboards und -umgebungen
- Bibliotheken und Tools
- Multitasking mit Threads und AsyncIO
- Interrupts und Timer
- UART, SPI, I2C und CAN
- Ein LoRa-Netz aufbauen
- Debugging und Fehlersuche
Dr. Claus Kühnel studierte Informationstechnik an der Technischen Universität Dresden und hat über viele Jahre Embedded Systems für die Labordiagnostik u.a. entwickelt. In diesem interdisziplinären Spannungsfeld kam er mit der Maker-Szene in Berührung. Er hat zahlreiche Artikel und Bücher zu Hard- und Software von Mikrocontrollern im In- und Ausland veröffentlicht. Von der Zeitschrift Elektronik erhielt sein Beitrag „Arduino & Co“ die Auszeichnung „Artikel des Jahres 2011“. Mit Leidenschaft gibt er sein umfangreiches und fundiertes Wissen an interessierte Leser weiter.
Autoren/Hrsg.
Weitere Infos & Material
1. Python 3 vs. MicroPython ... 11
1.1 ... Popularität von Programmiersprachen ... 12
1.2 ... Gemeinsamkeiten und Unterschiede ... 14
2. Entwicklungsboards und -umgebungen ... 19
2.1 ... Eingesetzte Hardware ... 20
2.2 ... Entwicklungsumgebungen ... 43
2.3 ... Firmware installieren ... 51
2.4 ... MicroPython-Benchmarks ... 66
3. Die Sprachelemente von MicroPython ... 73
3.1 ... Grundlegende Syntax ... 73
3.2 ... Operatoren ... 87
3.3 ... Kontrollstrukturen ... 92
3.4 ... Funktionen ... 102
3.5 ... Module in MicroPython ... 111
3.6 ... Besonderheiten von MicroPython ... 131
4. Daten speichern, teilen und anzeigen ... 167
4.1 ... Dateien und Dateisystem ... 167
4.2 ... Kommunikation ... 176
4.3 ... Anzeigeeinheiten ... 210
5. Fortgeschrittene Programmierung ... 229
5.1 ... Multitasking mit Threads und AsyncIO ... 229
5.2 ... State Machines ... 235
5.3 ... Raspberry Pi Pico: PIO-Programmierung ... 239
5.4 ... Bildverarbeitung ... 248
6. Debugging ... 257
6.1 ... Statische Codeanalyse ... 257
6.2 ... Debugging über REPL ... 259
6.3 ... print()-Debugging ... 261
6.4 ... Thonny-Debugger ... 262
7. Best Practices ... 265
7.1 ... Auswahlkriterien für den Mikrocontroller ... 265
7.2 ... Auswahl der Firmware ... 267
7.3 ... MicroPython und das CPU Diagnostic Tool ... 270
7.4 ... Fazit ... 280
8. MicroPython-Anwendungen ... 283
8.1 ... Anwesenheitsdetektion zur Raumüberwachung ... 283
8.2 ... BLE-Sensor-Netzwerk mit BLE-MQTT-Gateway ... 299
8.3 ... Monitoring des Raumklimas ... 310
8.4 ... Intelligenter Regenalarm ... 330
8.5 ... Messwerterfassung und Visualisierung im Webserver ... 345
8.6 ... Visualisierung von Bilddaten im Webserver ... 355
8.7 ... Echtzeit-Audiovisualisierung ... 363
8.8 ... Internetzugriff auf IoT-Geräte ... 372
Index ... 385
1.2 Gemeinsamkeiten und Unterschiede
Bevor ich ausschließlich auf MicroPython eingehe, möchte ich Ihnen die Gemeinsamkeiten zwischen Python 3 und MicroPython aufzeigen. Eine ideale Ableitung von Python 3 zu MicroPython ist erstrebenswert, aufgrund der unterschiedlichen Hardware-Basis wohl aber kaum erreichbar. Tabelle 1.1 zeigt die Gemeinsamkeiten, die in den grundlegenden Merkmalen liegen.
| Bereich | Beschreibung |
|---|
| Syntax | MicroPython basiert auf Python 3, daher ist die Syntax (z. B. Schleifen, Bedingungen, Funktionen, Klassen) weitgehend identisch. |
| Datentypen | Unterstützt die gleichen grundlegenden Typen, wie int, float, str, list, tuple, dict, set, bool. |
| Kontrollstrukturen | if, for, while, try/except, with werden gleich verwendet. |
| Funktionen und Klassen | Definition und Nutzung von Funktionen (def) und Klassen (class) sind fast identisch. |
| Module | Das Importieren von Modulen mit import funktioniert gleich (z. B. import math). |
| Objektorientierung | vollständig objektorientiert wie Python 3 |
| Interaktivität | REPL (Read–Eval–Print Loop) ist vorhanden – man kann Befehle direkt eingeben und testen. |
Tabelle 1.1 Gemeinsamkeiten von Python 3 und MicroPython
Abhängig von der Performance der Zielplattform ist bei MicroPython mit Einschränkungen zu rechnen. Tabelle 1.2 listet deshalb die Unterschiede zwischen Python 3 und MicroPython auf, die Sie bei der Programmierung unbedingt beachten müssen.
| Bereich | Python 3 | MicroPython |
|---|
| Zielplattform (Target) | Läuft auf Computern (Windows, Linux, macOS). | Läuft auf Mikrocontrollern (z. B. ESP32, RP2040, STM32). |
| Speicher und Performance | Rechnet mit viel RAM und hoher Rechenleistung. | Es läuft extrem ressourcenschonend mit wenigen KB RAM und Flash. |
| Standardbibliothek | vollständige Standardbibliothek (os, re, threading, multiprocessing, tkinter …) | Verwendet nur einen Teil der Standardbibliothek, angepasst für Embedded Systems. |
| Hardware-Zugriff | kein direkter Zugriff auf GPIOs, I²C, SPI usw. | Enthält spezielle Module wie machine, pyb, esp für die direkte Arbeit mit der betreffenden Hardware. |
| Dateisystem | Nutzt das Host-Dateisystem. | Nutzt ein kleines Flash-Dateisystem auf dem Mikrocontroller. |
| Threading und Multiprocessing | vollwertige Unterstützung | meist kein echtes Multithreading – nur »Lightweight«-Varianten (uasyncio) |
| Garbage Collection | automatisch und effizient | Vereinfacht, um Speicher zu sparen; erfordert teils manuelles Eingreifen (gc.collect()). |
| Kompatibilität | standardisiert (PEP-konform). | Nicht alle PEPs unterstützt; manche Features fehlen (z. B. komplexe Metaklassen, async eingeschränkt). |
| Paketmanagement | pip über PyPI | upip oder mip mit geringerem Funktionsumfang |
| Floating Point | voll unterstützt, inklusive decimal | abhängig vom Chip (manchmal nur einfache float-Unterstützung) |
Tabelle 1.2 Unterschiede zwischen Python 3 und MicroPython
Was sind eigentlich PEPs?
PEP steht für Python Enhancement Proposal (dt. »Vorschlag zur Verbesserung von Python«).
Ein PEP ist ein offizielles Dokument, das
-
neue Features oder Sprachfunktionen,
-
Änderungen an der Syntax oder Standardbibliothek,
-
Empfehlungen für Programmierstil oder Best Practices
-
oder Informationen zu Designentscheidungen in der Python-Sprache
beschreibt.
Die Liste aller PEPs zu Python 3 finden Sie unter https://peps.python.org/. MicroPython folgt der Philosophie und Syntax von Python 3, implementiert jedoch nur die PEPs, die auf einem Mikrocontroller effizient umsetzbar sind. Ziel ist Kompatibilität bei minimalem Speicherbedarf, ohne unnötigen Overhead.
Eine Reihe von PEPs haben eher universellen Charakter, wobei ich vor allem auf die beiden folgenden PEPs verweisen möchte:
-
PEP 8 – Style Guide for Python Code
-
PEP 20 – The Zen of...




