Die Software wurde vom Stand WS17 aufgegriffen und mit Teilen aus
SS18 ergänzt. Die ursprüngliche Programmablaufplan ist
hier zu sehen. Im Folgenden werden gemachte Verändungen und
Ergänzungen dokumentiert und stark vereinfacht visualisiert.
1. Mikrocontroller im selben Netzwerk wie Benutzer
Hierfür verbindet sich der Mikrocontroller und der
Benutzer mit seinem Endgerät mit dem Netzwerk HIT-FRITZBOX-7490.
Die Implementierung wurde bereits vorbereitet und musste nur noch
passend eingesetzt und im Anschluss ausreichend getestet werden.
Hierfür wurde die Funktion "joinExistingNetwork(ssid, password)" des
NetzwerkHandlers verwendet. Aktiviert wird diese Funktion, wenn beim
Start der Taster gedrückt wird bis zum Verbindungsaufbau. Wird
hingegen kein Taster gedrückt spannt das ESP32, wie bisher auch,
sein eigenes WLAN auf.
2. Taster zum manuellen Starten und Pausieren
Im Loop läuft der "TasterHandler" der den passenden Tasterpin
zur Hardware ausliest und den Status abfrägt. Bei Betätigung wird
das passende Flag im Shared Memory gesetzt, welches die Queue
startet oder stoppt.
3. Motor Disable
Gleich zu Beginn wird
der GPIO, der zum Motortreiber (INH Pin) als Output deklariert und
auf LOW gesetzt. Dies findet statt, bevor die Software seine
Hardware erkennt. Deswegen muss dieser Pin (27) bei allen Hardwares
gleich sein.
4. Pin Konfiguration
Da die beiden
Hardware Versionen eigentlich verschiedene Software Versionen
benötigen (Aufgrund von unterschiedlichen Bauteilen und
Portbelegungen) muss die Software selber erkennen, um welches Board
es sich handelt. Hierfür wird das Extension Board über den I2C-Bus
abgefragt. Ist dieses Vorhanden, so handelt es sich um das Maxi
Board, andernfalls um das Mini Board. Im Anschluss werden die
Port-Arrays umdefiniert. Außerdem ist es notwenig gewesen alle
IOobjects anzupassen, sodass die Eingänge und Ausgänge
hardwarespezifisch geschalten werden können.
5. Remanenz der User Codes
Um den
aktuellen Usercode zu speichern (z.B. Programmierung im Netzwerk,
Ablauf des Fischertechnik-Programms draußen) wird der sogenannte
Übergabe-String auf dem Spiffs abgelegt in einer .txt-File. Dieser
kann dann mit dem Taster wieder abgerufen werden. Hierfür wurde die
CSpiffsTest.h modifiziert und eine neue Klasse erschaffen
(CSpiffs.h). Hierdurch können Daten geschrieben und gelesen werden
auf dem nicht-flüchtigen Speicher.
6. Display
Die Dispay-Implementierung
umfasst die Statusanzeige während des Boots (Verbindungsaufbau etc.)
und anschließend die Anzeige der aktuellen dynamischen IP Adresse
des ESP32-Controllers. Diese ist notwendig zum Verbinden mit dem
Controller. Des Weiteren wird das festeingespeicherte Passwort und
SSID des Netzwerks ausgegeben.
7. Flash tool Für Personen, die mit Python
(2.7) umgehen können, wurde ein Tool für Windows erarbeitet, mit
welchem man einfach den SPIFFS Speicher flashen kann und auch Daten
wieder herunterladen kann. Dadurch kann man den ESP32 auch als
Datenlogger einsetzen. Standardmäßig ist 1.5 MB für SPIFFS
reserviert (erfahrene Benutzer können aber auch das Partitionsschema
ändern). Mit dem Tool, welches mit esptool und mkspiffs arbeitet,
ist es auch möglich den gesamten Flash Speicher zu löschen um somit
etwaige Fehler zu beheben (dauerndes reboot). Die Verwendung setzt
ein funktionierendes Pyton 2.7 vorraus, bei welchem aber erst
diverse packages installiert werden müssen - daher ist dieses
Projekt als nicht vollendet deklariert.
Als Alternative wurde für Windows drei verschiedene Batch-Files
erstellt, die die oben gezeigten Buttons widerspiegeln. Für die
Anwendung ist jedoch ein funktionierendes Python unumgänglich.
Aus dieser Idee heraus entstand das
Datenlogger Projekt. Hierbei
können Messwerte bequem und permanent in einer .txt-Datei auf dem
SPIFFS gespeichert werden (bis zu einer Größe von 1.5 MB bei
Standard Partionierung des ESP32). Über die Download Funtktion ist
die Datei zugänglich. Dies macht in einigen Fällen eine Benutztung
einer SD-Karte überflüssig.
|