sefina:
Da ich mit VSC - PlatformIO arbeite habe ich das leider nicht.
Dann schau dir den Arduino ESP32 Core auf Github an:
in den jeweiligen Libraries findest du auch die examples:
das hier ist für den AP
sefina:
Da ich mit VSC - PlatformIO arbeite habe ich das leider nicht.
Dann schau dir den Arduino ESP32 Core auf Github an:
in den jeweiligen Libraries findest du auch die examples:
das hier ist für den AP
Also, ich habe nun die Aduino IDE gedownloadet ....
Dort gibt es keine beispiele von WiFisoftAP´s
der WebServer ist der den ich gestern noch genutzt habe ....
Was nun erklärt warum es immer und immer wieder die gleichen codes im
Netz findet da das alles die Beispiele sind, zumindest auf den ersten Blick.
Leider also keine wirklicher Vortschritt.
Da ich noch an 2 Problemen hänge wo ich nichts zu finde :
Ich kann das Get nicht in ein String speichern (Zum zerlegen und weiterverarbeiten)
Ich kann die HTML Seite nicht wenn ich im AP Mode bin aufrufen
MfG
sefina:
Sorry aber was ist IDE-Beispiel ??
Bei mir beispielsweise in
Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\HTTPUpdate\examples\httpUpdate\httpUpdate.ino
sefina:
Nein Ich habe die ESP32 Doku noch nicht gefunden (Vieleicht doch, kann ich aber nicht sagen)
Ich kann Dir nicht versprechen, daß es Deine Fragestellung behandelt, aber dies ist die Dokumentation des Herstellers: ESP HTTPS OTA
noiasca:
keine Ahnung was man aus dem Code-Schnippel erkennen soll, ...
Ich bewundere Dich, daß Du die Fragen verstehst 8)
Dort gibt es keine beispiele von WiFisoftAP´s
der WebServer ist der den ich gestern noch genutzt habe ....
Also bei mir schon:
noiasca:
Dann schau dir den Arduino ESP32 Core auf Github an:GitHub - espressif/arduino-esp32: Arduino core for the ESP32
in den jeweiligen Libraries findest du auch die examples:
das hier ist für den AP
arduino-esp32/libraries/WiFi/examples/WiFiAccessPoint at master · espressif/arduino-esp32 · GitHub
Also dein zweiter Link hat mich ja zu meinen Problem gebracht.
In diesen Beispiel wird der AP Genutzt mit dem WebServer den ich bis gestern noch nutzte.
Nach euren Anraten habe ich alles umgebaut sodas ich KEINEN WiFiServer mehr nutze.
Deswegen schrieb ich ja :
Nach dem umbau auf den WebServer und den aufrufen : server.send() kann ich in verbindung mit dem AP nicht auf die Webseite zugreifen.
Bis jetzt habe ich keine Antwort darauf bekommen sondern immer ein verweis auf die IDE bekommen, wo es NICHT drinsteht.
den ersten Link schaue ich mir direkt an.
MfG
Noch mal von vorn.
Probier mal das AP beispiel as it is aus.
Wenn das klappt Gut.
Dann nimmst deinen http Webserver und übernimmst die Teile aus dem AP bis es funktioniert.
sind doch nur die paar includes und die Teile aus dem Setup.
Den verkorksten Wifi webserver aus dem AP brauchst NICHT. Du hast ja schon deinen sauberen http Webserver.
Die IDE Beispiele zeigen halt immer nur einen Aspekt. Du musst das einfach schrittweise zusammenbauen!
Das ist ja mein Problem,
Ich habe genau diesen WiFiServer mit dem AP als Beispiel am laufen und der geht.
Starte ich den WebServer ändere also nur den AP geht es nicht mehr.
Das ist ja das was ich nicht verstehe ...
und bei meiner IDE ist halt der AP nicht da und laut dein Code ist halt alles so wie es sein soll ....
nur das keine Seite kommt ....
Ändere ich es auf WiFiServer dann kann ich ne ne Seite abbilden.
MfG
Ich möchte Werner nicht dazwischenfunken, fände aber ein konkretes, in der Arduino-IDE kompilierbares Beispiel sinnvoll.
Hallo,
mit Deinem "Get Problem" meinst du letztlich das was der client an den Server sendet und wie Du das auswerten kannst ?
ich denke Du suchst nach
server.args()
server.argName()
ich hab aus meiner Bastelkiste einen Schnipsel kopiert der das Dir eventuell zeigt. Ich habe auf der html Seite 3 input felder die Daten für float Werte enthalten und zum server mittels eines send buttons gesendet werden. Mit dem sendbutton wird ein handel aufgerufen. das sieht dann so aus.
Die Fuction Datenanzeige zeigt das was angekommen ist
// --Server Handle einrichten---
server.serveStatic("/", SPIFFS, "/index.html");
server.serveStatic("/index.html", SPIFFS, "/index.html");// seite wechseln
server.serveStatic("/sollw.html", SPIFFS, "/sollw.html");
server.on("/daten", sendeDaten);
server.on("/btnclick", handleGetDaten);
server.on("/sollwert", sendeSollw); // senden der aktuelle Sollwerte
// hier der send button
server.on("/sendbtn", getSollw); // Übernahme der Sollwerte
server.onNotFound(handleNotFound); // Fehler bearbeiten
server.begin();
Serial.println("HTTP server started");
//-------------- empfange Sollwerte --------------
void getSollw() {
Datenzeigen();
sollw1 = StringToFloat(server.arg(0));
sollw2 = StringToFloat(server.arg(1));
sollw3 = StringToFloat(server.arg(2));
Serial.println("neue Sollwerte");
Serial.printf("%4.1f %4.1f %4.1f \n", sollw1, sollw2, sollw3);
sendeSollw(); // response senden.
}
void Datenzeigen() {
String message = "Daten angekommen\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
Serial.println(message);
}
ich habe da mal vor einiger Zeit speziell für Anfänger was geschrieben. Obiger Schnipsel stammt aus dem Beispiel "SollwertServer"
Heinz
Rentner:
Hallo,mit Deinem "Get Problem" meinst du letztlich das was der client an den Server sendet und wie Du das auswerten kannst ?
ich denke Du suchst nach
server.args()
server.argName()ich hab aus meiner Bastelkiste einen Schnipsel kopiert der das Dir eventuell zeigt. Ich habe auf der html Seite 3 input felder die Daten für float Werte enthalten und zum server mittels eines send buttons gesendet werden. Mit dem sendbutton wird ein handel aufgerufen. das sieht dann so aus.
Die Fuction Datenanzeige zeigt das was angekommen ist
// --Server Handle einrichten---
server.serveStatic("/", SPIFFS, "/index.html");
server.serveStatic("/index.html", SPIFFS, "/index.html");// seite wechseln
server.serveStatic("/sollw.html", SPIFFS, "/sollw.html");
server.on("/daten", sendeDaten);
server.on("/btnclick", handleGetDaten);
server.on("/sollwert", sendeSollw); // senden der aktuelle Sollwerte
// hier der send button
server.on("/sendbtn", getSollw); // Übernahme der Sollwerte
server.onNotFound(handleNotFound); // Fehler bearbeiten
server.begin();
Serial.println("HTTP server started");
//-------------- empfange Sollwerte --------------
void getSollw() {
Datenzeigen();
sollw1 = StringToFloat(server.arg(0));
sollw2 = StringToFloat(server.arg(1));
sollw3 = StringToFloat(server.arg(2));
Serial.println("neue Sollwerte");
Serial.printf("%4.1f %4.1f %4.1f \n", sollw1, sollw2, sollw3);
sendeSollw(); // response senden.
}
void Datenzeigen() {
String message = "Daten angekommen\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
Serial.println(message);
}
ich habe da mal vor einiger Zeit was speziell für Anfänger was geschrieben. Obiger Schnipsel stammt aus dem Beispiel "SollwertServer" Heinz [link](https://www.wikinger-tommy.de/rentner/index.html)
Auf den ersten Blick schaut es Richtig aus (also was ich suche),
leider kann ich es Heute abend erst wieder in Angriff nehmen (da der WebServer nicht mit dem AP geht)
Ich habe hier leider kein WLan mit dem ich den ESp verbinden könnte.
agmue:
Ich möchte Werner nicht dazwischenfunken, fände aber ein konkretes, in der Arduino-IDE kompilierbares Beispiel sinnvoll.
Mir ist leider aufgefallen das auf der GitHub seite zu den libs die Beispiele, .... sehr fehlerhaft aussehen (teilweise)
die Codes hören z.b. beim Erweiterten WebServer miten in der mite auf.
Ich stelle mich vielleicht dumm an (bin in der hinsicht ein anfänger) aber mehr als ausprobieren kann ich leider nicht.
MfG
sefina:
leider kann ich es Heute abend erst wieder in Angriff nehmen (da der WebServer nicht mit dem AP geht)
Ich habe hier leider kein WLan mit dem ich den ESp verbinden könnte.
Da kann ich nur empfehlen die Sache Stück für Stück anzugehen!
Baue Deinen Webserver auf, dass er sowohl AdHoc, als auch als AP geht.
Dann baue den Webserver so aus, dass er die Anfrage für Deine (Start-)Seite entgegennehmen kann.
Als nächstes folgt dann die Übergabe von Argumenten (z.B. wie Heinz es empfiehlt).
Letzteres ist dann auch hilfreich die hex-Datei entgegenzunehmen um Dein OTA durchzuführen.
PS: Habe mir ebenfalls vor kurzem einen Webserver gebaut, der praktisch alle o.g. Features unterstützt. Man stockt sicherlich bei der vielzahl der Tutorials, die alle unterschiedlich an die Sache herangehen. Aber sobald man die Einzelteile versteht, kann man sie gut zusammensetzen 8)
Ich möchte Werner nicht dazwischenfunken, fände aber ein konkretes, in der Arduino-IDE kompilierbares Beispiel sinnvoll.
ich klopf mal einen Server, OTA, AP, Client zusammen. Irgendwie glaub ich noch nicht, dass das so das Mirakel ist. Kann aber erst nach 18:00 Uhr anfangen
Ich habe herausgefunden warum es nicht geklappt hat
Es ist Recht einfach ....
MQTT hatt sich im Endlosboot festgehangen da keine Verbindung mit dem Broker aufgebaut werden konnte.
Also muss ich nun schauen das ich es jetzt so hinbekomme das MQTT nur im WLan geht was eingespeichert ist.
Also heisst es das erstmal und parallel den WebServer verschönern und ausbauen.
Thx für eure Hilfe (kann sein das ich nochmal wegen dem GET Fragen könnte)
MfG
ESP32
esp32_server_client_ota_ap.zip (3.41 KB)
Hi nochmal,
also dank eurer hilfe rennt mein WebServer so wie er soll,
auch mit :
String TempMSG = "";
for (uint8_t i = 0; i < server.args(); i++) {
TempMSG += "@" + server.argName(i) += ":" + server.arg(i);
}
GetMSG = TempMSG;
GetZerlegen();
Kann ich Alle Werte sauber filtern und ausklammern und in eigene Variablen schreiben.
Nun gibt es noch ein Problem.
Wenn ich z.b. auf den Formular : MQTT einstellungen tätige geht ja der client auf die Seite
http://192.168.7.20/?MQTTaktiv=on&MQTTBrokerTopic=&MQTTBrokerIP=&MQTTBrokerPort=
Ich weiß ja das er auf die Seite ist/war und habe die werte die ich benötige.
Gibt es eine Möglichkeit den Client wieder auf die Seite : http://192.168.7.20
zu schicken ?
Die IP ist aber dynamisch und kann sich ändern !
Sodass sich die Seite am besten gleich aktualiesiert ?
MfG
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.