ESP32 mit microPython

» home «

Micropython ist eine hervorragende Alternative für die Programmierung der NodeMCU ESP32. Der Beitrag zeigt die Installation und erste Gehversuche mit microPython und Thonny auf dem ESP32. Beispielscripte zur Steuerung der GPIO oder auch WiFi.

In diesem Beitrag möchte ich einen Blick auf die Programmierung der NodeMCU ESP32 werfen. Ich selbst habe einige dieser kleinen IoT-Controller im Einsatz und habe die dazugehörige Software auf ganz unterschiedlichen Plattformen entwickelt. Ganz traditionell habe ich mit der Entwicklung meiner Software für den ESP32 auf der überaus beliebten ARDUINO IDE im typischen C++-ähnlichen Dialekt begonnen, bin dann ziemlich schnell zu Eclipse und (pure) C++ geschwenkt und entwickle aktuell in Micropython meine Programme. Was mich zu meinem Wechsel auf Micropython veranlaßt hat, wie Sie es installieren, nutzen und welche Vorteile es mitbringt, soll dieser Beitrag zeigen.

Was ist microPython?

Bei Micropython handelt es sich natürlich um die Programmiersprache Python - logisch. Der Präfix "Micro" soll allerdings der Tatsache Rechnung tragen, das es sich dabei um ein Subset an Befehlen und Leistungsdaten der großen Programmiersprache Python handelt. Ziel ist es, eine der weit verbreitetsten Programmiersprachen des Internets auch auf moderne IoT-Geräte zu übertragen, denn viele Entwickler betreiben bereits fertige Pythonprojekte die sie nun auf kleine Microcontroller (mit wenig Aufwand) portieren möchten - dabei hilft Micropython.

Python ist neben PHP, Java und JavaScript die populärste Programmiersprache dieser Welt. Anders als PHP ist Python jedoch in der Lage sowohl im Internet als auch auf einem Desktop-Computer eigenständig lauffähig zu sein und genau diese Eigenschaft macht es so ideal für viele Entwickler und Projekte. Es verwundert daher nicht, das die Community dieser Sprache sehr groß ist und viele Beispielcodings nun mal mit Python verfasst sind.

Vor- und Nachteile

Es gibt jedoch auch Schattenseiten. Python ist, genau wie seine Geschwister PHP und JavaScript, eine interpretierende Sprache. Dies bedeutet, das geschriebene Programm muss zur Laufzeit von einem Interpreter auf dem Gerät Zeile für Zeile interpretiert werden, in Maschinensprache umgewandelt und ausgeführt werden, das kostet Zeit. Die Folge ist, das interpretierende Sprachen etwas langsamer ablaufen als Sprachen wie C++ oder Java, denn diese erzeugen ein so genanntes Kompilat das bereits sehr machinennahen Code enthält, den die CPU verdaulicher abarbeiten kann. Diese Tatsache ist heutzutage jedoch hinlänglich bekannt und akzeptiert und stört 99,99% der Projekte nicht, da die geringen Performanceunterschiede kaum noch eine Rolle spielen. Möchten Sie jedoch die maximale Performance und absolute Kontrolle über jedes Bit und Byte der CPU haben, dann ist C++ ideal. Ist dies nicht der Fall, abstrahiert Micropython viele lästige Register- und Byteoperationen weg, mit denen Sie sich ansonsten herumschlagen müssten.

ARDUINO IDE

Die Programmierung von Software erfolgt in der Regel in einer so genannten IDE. Die wohl bekannteste IDE im Bereich Microcontroller ist die ARDUINO IDE. Die ARDUINO IDE ist vollkommen kostenlos und auf Grund der einfachen Bedienung extrem beliebt und natürlich mittlerweile sehr ausgereift. Software zu erstellen macht in dieser Entwicklungsumgebung sehr viel Spass und Sie haben schnelle Erfolge. Haben Sie jedoch Python-Projekte die Sie beispielsweise auf dem Raspberry Pi entwickelt haben und möchten diese jetzt auf ein noch kleineres Gerät (ESP32) übertragen, dann hilft Ihnen die ARDUINO IDE kaum weiter, Sie müssten eine vollkommen neue Sprache (C++) erlernen und Ihre Code-Logik Zeile für Zeile in die ARDUINO-Sprache überführen - das ist extrem aufwändig und fehleranfällig.

Eclipse IDE

Eine weitere Alternative ist das bekannte Eclipse. Ich habe Eclipse aus persönlichem Interesse ein Zeit lang für meine ESP32 Projekte genutzt und habe immer wieder festgestellt das diese IDE in Verbindung mit C++ die volle Kontrolle über den ESP32 bietet aber es ist kaum zu beherrschen. Auch hier habe ich das Problem, meine bisherigen Pythonprojekte in C++ übertragen zu müssen.

Thonny

Thonny ist die Python IDE wie sie vom Raspberry Pi bekannt ist (natürlich auch unter Windows verfügbar) und ist in der Lage die ESP32 mit Micropython zu programmieren. Der wirklich große Vorteil ist, das ich meine Python-Projekte mit nur minimalen Anpassungen vom Raspberry Pi (oder von Windows) auf die ESP32 übertragen kann. Im wesentlichen beschränken sich die Anpassungen darauf, die Namen der Bibliotheken anzupassen, denn beispielsweise heißt die Python Bibliothekt requests unter Micropython urequest oder die bisherige GPIO-Bibliothek GpioZERO heist in Micropython ganz banal GPIO - und schon laufen meine Programme auch auf der ESP32 mit exakt der selben Fachlogik.

Oliver Lohse   •  13.Jun.2020

Navigation


home
Omega 2
ESP32 NodeMCU
Arduino
Raspberry Pi
Python
PHP

Es geht um den heißem Scheiß über den alle reden - IoT (das Internet der Dinge). Doch zunächst der rechtliche Teil auf dieser rein privat betriebenen Webseite.

Die Webseite verwendet keine Cookies oder sonstigen Tracking-Tools, um das Leserverhalten zu speichern.

Serielle Kommunikation


Verschalten Sie 2x ARDUINO UNO für eine Zweidrathkommunikation mit den RX und TX Leitungen (in Vorbereitung auf BC417 und HC-06). Die beiden Geraete koennen dann Befehle hin und her senden.

Firmware flashen


Einen anderen Weg zum flashen der ESP32-Firmware möchte ich Ihnen in diesem Beitrag vorstellen, denn das Internet ist bisweilen voll von interessanten Anleitungen wie dies zu bewerkstelligen wäre. Für mich hat sich jedoch ein anderer Weg etabliert.


© by O.Lohse • Impressumhome