Post Request auslesen

Hallo, ich suche eine einfache Möglichkeit einen einfachen Post-Request mit einem ESP32 auszulesen, den ich dann z.B. zum Anschalten einer LED nutzen kann.

Ich habe auf meinem PC nen Webserver laufen, mit dem ich dann mit einem Klick im Formular per POST / GET eine LED am ESP einschalten möchte. Also braucht der ESP nichts weiter machen als die Post-Variable auslesen.

Ich suche sowas wie ($variable = $_POST[„name“]:wink: in PHP. Nur halt in C/C++ für den ESP mit der Arduino IDE.

Könnt Ihr mir da weiterhelfen?

Wenn Du auf dem ESP etwas über HTTP schalten willst, dann ist der Webserver auf dem ESP und der Client (Browser) auf dem PC. Auch die HTML-/JS-/CSS-Dateien sollten dann auf dem ESP (im SPIFFS/LittleFS) sein.

Schau Dir mal die Beispiele bei Fips an.

Gruß Tommy

Danke für die schnelle Antwort. Der ESP soll ja gar nichts ausgeben. Er soll nur reagieren, indem er die LED anstellt.

PS: Wie ich mit dem ESP eine Website ausgebe, hab ich bereits erfolgreich herausgefunden. Doch das ist nicht mein Problem.

die einfache Möglichkeit dazu ist ein

if (server.hasArg("name"))  {
    Serial.println(server.arg("name"));
}

Da hätte ich einige Beispiele drinnen:

https://werner.rothschopf.net/microcontroller/202310_esp_webserver_maxi_en.htm

Beispiel 50 und 55 (aber trotzdem alles lesen!)

Wenn Sie eine HTTP-POST-Anfrage auf Ihrem ESP empfangen möchten, muss Ihr ESP in der Lage sein, eine solche Anfrage zu empfangen. Das Einrichten eines HTTP-Servers auf dem ESP ist eine einfache Möglichkeit, dies zu erreichen.

Hallo,
letztlich rufst Du ja mit dem send Button einen URL auf die im ESP als Handle bezeichnet wird. Das ist letztlich eine funktion in der Du die Daten übernehmen kannst.

Der ESP stellt Dir mehrere Varianten zur Verfügung, beide sind in dem Beispiel "Hallo Server" verwendet.
schau Dir da die Fehlerauswertung an.

message = server.args()
message =server.arg(i)
message = server.argName(i)

im einfachsten Fall könnte das in einer Anwendung so aussehen.

im Setup

server.on("/btnsend", getDaten); // handle definieren

und dann

void getDaten(){ // handle auswerten
  String variable  = server.arg(0)

}

hier ein link zur esp8266 core doku . Bein ESP32 ist da vieles gleich.

Danke, funktioniert super

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.