So bootet der ESP32

Damit Ihre Programme auf dem ESP32 automatisch starten, sollten Sie das Schema kennen nachdem der Controller bei der Abarbeitung des Bootprozesses vorgeht.

Der Bootvorgang des ESP32 ist sicherlich sehr komplex, dennoch ist dieser Ablauf für Sie als Entwickler vollkommen transparent. Erst nachdem der Controller vollkommen durchgestartet ist, wird es für Sie interessant, denn jetzt versucht der Boot-Prozess Ihre Scripte nach einem festen Schema abzuarbeiten.

boot.py

Erstes Script

Das Script boot.py ist das erste Script welches der ESP32 startet nachdem der Bootvorgang beendet ist, in der Regel wird dies Ihr erstelltes Micropython-Script sein. Möchten Sie, das der Controller Ihr entwickeltes Script automatisch nach dem Einschalten startet, dann müssen Sie es zwingend unter diesem Namen auf dem Controller speichern, andernfalls startet Ihr Programm nicht.

main.py

Das zweite Script

Sofern das erste Script abgearbeitet ist, versucht der Controller das zweite Script main.py zu starten. Existiert dies nicht, passiert auch nichts, der Controller beendet daher seine Tätigkeit und legt sich "schlafen".

Affenscript

So sieht jedoch die Praxis aus

Die meisten Projekte der Praxis sind so aufgebaut, das sich der Controller in einem so genannten Affenscript befindet, also eine Endlosschleife durchläuft, um zyklisch Daten zu verarbeiten. Scripte die nur einmalig bei Start Daten verarbeiten sind sehr unüblich aber natürlich dennoch durchaus legitim und je nach Aufgabenstellung sinnvoll.

Meist werden Sie mit einem Hauptprogramm arbeiten, welches hier und da ein paar Log-Daten liest oder schreibt und das wars auch schon. Sehr komplexe Strukturen sind aufgrund des kleinen Speichers nicht ratsam. Zudem können sehr große Projekte zu Instabilitäten des Controllers führen. Schöpfen Sie den Speicherplatz nicht mehr als 75% aus. Damit können Sie bereits sehr aufwändige und anspruchsvolle IoT-Projekte umsetzen, denn Sie spezialisieren den Controller für EINE(!) konkrete Aufgabe die er brav abarbeitet - für weitere Aufgaben, nehmen Sie einfach weitere Controller und lassen diese statt dessen miteinander Kommunizieren.