Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Konzeptentwicklung
Hochschule Karlsruhe Logo Labor Informationstechnik
FischerTechnik mit ESP 32 - Gruppe Software HMI
Wintersemester 2017/18
trti1011@hs-karlsruhe.de
pafr1013@hs-karlsruhe.de

Konzeptentwicklung

Konzept

Umsetzung der Software

Schnittstellen:

Eingänge vom Benutzer:
- Eingabe der Root-Server URL (http://192.168.4.1/)
- Click-Drag&Drop Events -> Programmblöcke werden platziert
- Start/Stop Button wird gedrückt
- Bidirektionale Verbindung zum Server (Get/Post Request) -> angefragte Ressourcen werden empfangen (Eingang) und dargestellt

Ausgänge der HMI:
- Darstellung der Website (index.hmtl, javascript Dateien und css-Content...)

Ausgäng der HMI an die Software-Queue:
- Befehlskette (Start-Button gedrückt -> Programm wird übersetzt und überprüft und als Syntax String zusammengesetzt) versenden
  -> XML http Request (Serverseitig als Post Request verarbeiten -> handleClient() Funktion)
- Unterbrechung des Programms -> Pause Button gedrückt (laufende Queue muss angehalten werden. Thread pausieren oder
   Container Flag setzen)

Ablauf des Programms

Ist die Spannungsversorgung ordnungsgemäß an den ESP32 angeschlossen, wird zuallererst beim Programmstart der Wireless Access Point erstellt, damit der Benutzer sich mit dem WLAN des ESP32 verbinden kann (SSID: ESP32ap, Passwort: 12345678). Danach wird die Funktion handleClient, welche die Anfragen des Benutzers verarbeitet, in einer Loop aufgerufen. Auf der Konsole (COM Port unter Windows, /dev/ttyUSB0 unter Linux; Baudrate: 115200) können die Boot Nachrichten verfolgt werden (WLAN Settings, geladene Resourcen usw.).

Wird nun der Browser des Client Rechners geöffnet und die Root-Server Addresse eingegeben, wird eine GET Anfrage an den ESP32 Server gestellt. Dieser liefert dann die index.html zurück. Diese HTML Datei wird vom Browser empfangen und verarbeitet. Daraufhin werden alle weiteren Ressourcen geladen (dies kann gut auf der Konsole verfolgt werden).

Ressourcen-Laden

Abb.: Weboberfläche im Chrome Browser geöffnet mit Überwachung des Netzwerktraffics

Ressourcen Verwaltung

Hier gibt es nun drei mögliche Ansätze, um die Ladezeit der Ressourcen zu regulieren:
    1)    Philosophie "Standalone Version": Alle nötigen Ressourcen liegen auf dem ESP32 Speicher (SPIFFS Speicher von 4MB)
            Vorteile:
            - Client Rechner benötigt nur WLAN Verbindung zum ESP32 (keine Installation von Zusatzsoftware)
            - Unabhängig von Ressourcen aus dem Internet
            Nachteile:
            - lange Ladezeit (bis zu 2,5 Minuten)
    2)    Philosophie "Webversion": lokale , kleine Ressourcen werden aus dem internen Speicher geladen, die externen Abhängigkeiten
            werden hingegen aus dem Internet zur Laufzeit heruntergeladen
            Vorteile:
            - kurze Ladezeit, optimalste Zeitoptimierungsmaßnahme
            Nachteile:
            - Ressourcen abhängig von Internetquellen (ändern sich Dateien auf dem Zielserver, können ggf. die Ressourcen nicht geladen
               werden)
            - Client Rechner benötigt, zusätzlich zur WLAN ESP32 Verbindung, einen Internet Zugang
              (Bsp: Labor PC mit LAN Anschluss zum Internet, WLAN USB Dongle zur Verbindung zum ESP32) 
            - Mobiler Einsatz erschwert, da Internetverbindung erforderlich ist
    3)    Philosophie "lokale Webanwendung": alle Ressourcen liegen lokal auf den einzelnen Client Rechnern und werden lokal im
            Browser gestartet; lediglich die WLAN Verbindung zur Kommunikation dient als Schnittstelle zum ESP32
            Vorteile:
            - schnelle Ladezeit
            - Ressourcenschonender Zugriff auf den ESP32
            - nur eine WLAN Verbindung zum ESP32 ist notwendig
            Nachteile:
            - Auf jedem Client Rechner muss die Software installiert sind
            - Änderungen der Webanwendung können u Konflikten mit der ESP32 Webhandler Klasse führen
    4)    Philosophie "Kombination aus lokalen Ressourcen und Webversion": ESP32 erkennt selbstständig, ob die Ressourcen aus dem
            Internet geladen weden können oder ob diese lokal aus dem Speicher geladen werden müssen
            Vorteile:
            - Optimale Außnutzung der Gegebenheiten, d.h. die Anwendung wird in jedem Fall gestartet
            - Benutzerfreundlichste Lösung (da Fehlerfallabdeckung)
            Nachteile:
            - Internetverbindung gegebenenfalls erforderlich
            - Auf jedem Client Rechner muss die Software installiert sind

Kontrollstrukturen

Grundsätzlich muss jede Eingabe vom Benutzer auf der Weboberfläche abgesichert werden. Dies wird gewährleistet zum Beispiel durch Dropdownmenüs und Textfelder, welche es nur erlauben, dass Zahlen in einem gewissen Zahlenbereich eingegeben werden können. Außerdem muss durch die Blöcke gewährleistet, dass nur bestimmte Blocktypen miteinander verbunden werden können.

Konzeptentwicklung - Seite der Gesamtgruppe:
../Fischertechnik/0309Konzeptentwicklung.html/a>


  Mit Unterstützung von Prof. J. Walter Wintersemester 2017/18