einfacher Webserver am ESP32

OP #7531871
Lesenswert?
• ▲
▼

Hi,

ich wollte anhand dieses Beispiel Codes über eine HTTP Seite einen kontinuierliches Ausgangssignal in form von einem Rechteck am Port 18 ein/ausschalten.

Leider komme ich aus der while schleife nicht wieder raus sobald der client auf ausschalten(currentLine.endsWith("GET /L") klickt wenn zuvor eingeschaltet (currentLine.endsWith("GET /H") wurde ab Z.112.

Danke für die Hilfe

Angehängte Dateien:
#7531906
Lesenswert?
• ▲
▼

Generell: Das ist kein Schönes Beispiel. OK um grob die Grundlagen zu sehen, aber das wars dann auch. Zum Erweitern maximal unglücklich.

Erstes Problem: das Pinwackeln soll weitergehen, auch wenn der Webbrowser gerade nicht verbunden ist (das ist er die meiste Zeit nicht). Also muss der "digitalWrite&Delay"-Block Aus dem "if (client)" Block raus.

Nächstes Problem: Das Pinwackeln darf den Webserver nicht blockieren. Also: Statt "while (flag)" nur ein "if (flag)", und das wiederholen der Sequenz erledigt die loop().

Drittes Problem: Dadurch sind deine Puls- und Pausenzeiten ungenau, "jitter".

Viertes Problem: Nur ganz außen in der Loop reicht auch nicht, weil in der loop noch eine "while (client.connected())"-Schleife ist.

Fünftes Problem: Es wird nur eine Connection gleichzeitig unterstützt

usw.

Lösungsideen (Keine Komplettlösung, versuch das selber zu erarbeiten und frag bei Bedarf nochmal nach, so lernst du mehr)

-> Signal per Hardware erzeugen (PWM/Timer). Gibt evtl. auch eine Arduino-Lib dafür -> Signal in einem Timer-Interrupt erzeugen. Auch hier gibt's eine Lib. -> "echte" Webserver-Lib verwenden, die asynchron arbeitet

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.