Forum: Mikrocontroller und Digitale Elektronik ESP WiFiManager + HTTPServer


von Kolja L. (kolja82)


Lesenswert?

Moin

Der WiFiManager ist ja schon eine ganz praktische Sache,
vor allem der Fork von Ken Taylor:
https://github.com/kentaylor/WiFiManager
Dieser zeigt nach erfolgreicher Einwahl in das bestehende WLAN die 
lokale IP des ESP an.
Was das Original nicht macht.

Leider komme ich danach nicht weiter auf meine eigentliche Webseite,
die von dem ESP("&&WebServer bereitgestellt wird:
https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer

Die liegt im Root Verzeichnis und sollte auch dort bleiben.
Aber das wird durch das Portal des WiFiManagers belegt.

Für die originale Version gibt es eine Möglichkeit:
https://gist.github.com/tzapu/ecc0759829d30d5a6152

Leider funktioniert die nicht mit der Version von Mr Taylor.

Wenn ich einfach einbinde, kommt die Fehlermeldung,
dass es diese Funktion nicht gibt:
server.reset(new ESP8266WebServer(WiFi.localIP(), 80));

Dass das nicht funktionieren wird, habe ich mir schon gedacht, aber 
probieren geht über...


Gibt es hier jemanden, der eine Lösung hat?

Oder eine andere Möglichkeit kennt, wie der ESP in ein bestehendes WLAN 
kommt
und die lokale IP angezeigt werden kann?

Danke und Gruß

Kolja

von Horst (Gast)


Lesenswert?

Kolja L. schrieb:
> Oder eine andere Möglichkeit kennt, wie der ESP in ein bestehendes WLAN
> kommt und die lokale IP angezeigt werden kann?

Warum gibst Du nach dem Verbindungsaufbau nicht einfach 
WiFi.localIP()aus?
Wenn das der einzig Grund ist den Wifimanager zu nutzen ...

von Stefan F. (Gast)


Lesenswert?

Kolja L. schrieb:
> Oder eine andere Möglichkeit kennt, wie der ESP in ein bestehendes WLAN
> kommt und die lokale IP angezeigt werden kann?

Die eigene IP Adresse kannst du jederzeit mit WiFi.localIP().toString() 
abfragen, ganz unabhängig vom Wifimanager.

In diesem Zusammenhang magst du dir vielleicht mal angucken, wie ich bei 
meinem "Wifi Monitor" die Konfiguration der WLAN Verbindung (Passwort) 
realisiert habe: http://stefanfrings.de/esp8266/WifiMonitor.zip
Doku dazu: http://stefanfrings.de/esp8266/index.html#wificonfigservice

Das grobe Funktionsprinzip ist ähnlich, nur ohne automatischen Scan.

von Kolja L. (kolja82)


Lesenswert?

Horst schrieb:
> Warum gibst Du nach dem Verbindungsaufbau nicht einfach
> WiFi.localIP()aus?
> Wenn das der einzig Grund ist den Wifimanager zu nutzen ...

Aber die bekomme ich dann doch nicht auf dem Gerät (Smartphone) 
angezeigt,
mit dessen Hilfe ich gerade den ESP in ein anderes WLAN habe einwählen 
lassen.
Oder verstehe ich das Prinzip grundsätzlich noch nicht?

Stefanus F. schrieb:
> Das grobe Funktionsprinzip ist ähnlich, nur ohne automatischen Scan.

Wird sofort gemacht :-)

Danke für deine Seite, die hat mir schon oft geholfen!

von Stefan F. (Gast)


Lesenswert?

Kolja L. schrieb:
> Aber die bekomme ich dann doch nicht auf dem Gerät (Smartphone)
> angezeigt

Logisch, dein ESP hat keinen direkten Zugriff auf das Display des 
Smartphones. Aber er könnte eine Webseite erzeugen, in der die 
IP-Adresse drin steht, und die kann dein Smartphone dann anzeigen.

Oder du schaust einfach in die Webseite deines AP, der müsste alle seine 
Clients mit Name und Adresse auflisten können.

von Horst (Gast)


Lesenswert?

Stefanus F. schrieb:
> Oder du schaust einfach in die Webseite deines AP, der müsste alle seine
> Clients mit Name und Adresse auflisten können.

Und wieder jemand, der meint es gäbe nur Fritzboxen auf der Welt.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Kolja L. schrieb:
> Aber die bekomme ich dann doch nicht auf dem Gerät (Smartphone)
> angezeigt,

Wenn Dein Gerät die Webseite anzeigen kann, kennt es auch dessen IP.

von Kolja L. (kolja82)


Lesenswert?

Stefanus F. schrieb:
> Logisch, dein ESP hat keinen direkten Zugriff auf das Display des
> Smartphones. Aber er könnte eine Webseite erzeugen, in der die
> IP-Adresse drin steht, und die kann dein Smartphone dann anzeigen.

Aber wie komme ich auf die Webseite von dem Webserver mit der IP die ich 
ja gerade suche?

Stefanus F. schrieb:
> Oder du schaust einfach in die Webseite deines AP, der müsste alle seine
> Clients mit Name und Adresse auflisten können.

Klar, das geht immer.
Aber diesen "Aufwand" möchte ich mit ja gerade ersparen.



Leider funktioniert dein WiFiMonitor noch nicht.
Das WLAN wird mir angezeigt und ich kann mich verbinden,
doch wenn ich die IP aufrufe,
wird das Formular nur ganz kurz angezeigt und danach ist die Verbindung 
getrennt.

Zitat Firefox: "Die Verbindung zum Server wurde getrennt, während die 
Seite geladen wurde"

: Bearbeitet durch User
von Horst (Gast)


Lesenswert?

Christian H. schrieb:
> Kolja L. schrieb:
>> Aber die bekomme ich dann doch nicht auf dem Gerät (Smartphone)
>> angezeigt,
>
> Wenn Dein Gerät die Webseite anzeigen kann, kennt es auch dessen IP.

Der Wifi-Manager versetzt den ESP in AP- und Client-Modus. Über eine 
Verbindung mit dem AP kannst Du den Client für ein anderes WLan 
konfigurieren und dann die zugewiesene IP des Clients anzeigen.

Dafür braucht an aber kein extra Tool, das läßt sich mit wenigen Zeilen 
Code selber basteln.

von Stefan F. (Gast)


Lesenswert?

> Stefanus F. schrieb:
>> Oder du schaust einfach in die Webseite deines AP, der müsste alle seine
>> Clients mit Name und Adresse auflisten können.

Horst schrieb:
> Und wieder jemand, der meint es gäbe nur Fritzboxen auf der Welt.

Was für eine seltsame und völlig unzutreffende Schlussfolgerung. Herr, 
wirf Hirn!

von Stefan F. (Gast)


Lesenswert?

Kolja L. schrieb:
> Aber wie komme ich auf die Webseite von dem Webserver mit der IP die ich
> ja gerade suche?

Du hast doch gerade geschrieben, dass du mit deinem Smartphone des ESP 
per Web konfiguriert hast. Also hast du eine Verbindung dorthin.

Ich gehe von so einem Szenario aus:
1
Web-Browser          Web-Server             Fritz-Box o.ä.
2
Smartphone ----> (Soft-AP) ESP (STA) -----> AP WLAN Router ----> Internet
3
4
192.168.4.2     192.168.4.1   192.168.0.33  192.168.0.1

Dein Smartphone hat eine IP Verbindung zum ESP, und zwar dessen Soft-AP 
Schnittstelle. Dieser wiederum ist mit deiner Fritzbox (oder wie auch 
immer sich dein WLAN Router nennt) verbunden.

Die Funktion WiFi.localIP() wird die IP-Adresse 192.168.0.33 melden. Die 
kannst du in den Text einer Webseite einbauen, die der Webserver auf dem 
ESP an das Smartphone liefert.

von Kolja L. (kolja82)


Lesenswert?

Danke für die gute Erklärung, genau das ist mein Szenario.

Ich bin nur die ganze Zeit davon ausgegangen, dass der ESP nur eine 
Verbindung kann.
Also entweder zum Smartphone oder zum Router.
Zu mindestens hatte ich das gestern Nacht irgendwo so gelesen.

Dann ist mir jetzt einiges klarer geworden :-)

von Stefan F. (Gast)


Lesenswert?

Kolja L. schrieb:
> Ich bin nur die ganze Zeit davon ausgegangen, dass der ESP nur eine
> Verbindung kann.

Nö, mein oben empfohlenes Beispiel macht es vor: 
WiFi.mode(WIFI_AP_STA);

Es zeigt aber die eigene IP-Adresse nicht an. Das müsstest du selbst 
noch dazu basteln.

von Chr. M. (snowfly)


Lesenswert?

Du könntest auch die LED blinken lassen um ie IP auszugeben
Display ist vermutlich keins dran?
Über die Serielle wird die IP evtl auch ausgegeben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.