Hi,
Beispielsketches, die demonstrieren, wie sich ein ESP32 mit einem
WLAN-Netzwerk verbindet und dann als HTTP-Client auf irgend eine Seite
im Internet zugreift, gibt es ja zuhauf. Allerdings würde ich gerne was
anderes erreichen:
- mein ESP32 verbindet sich als WLAN-Client mit meinem Handy, welches im
Tethering-Modus selber als WLAN-AP läuft
- der ESP32 teilt dem Handy seine statische IP mit (z.B. 192.168.1.1)
- wenn ich jetzt von dem Handy per Webbrowser auf diese IP zugreife,
bekomme ich eine Seite angezeigt, die vom ESP32 ausgeliefert wird
Meine Fragen:
- ginge das so überhaupt?
- wenn ja - wie? Kennt jemand ein passenden Beispielsketch?
Danke!
Natürlich kann ein WLAN-Client einen http-Server haben, aber der Client
bekommt höchstens eine IP vom Server/AP, nicht "er teilt sie mit", das
gibt's nur bei den captures am AP, z.B. für den Gastzugang, ESPs nutzen
das auch für den Webmanager.
Ob dein Handy als AP dem dort laufenden Browser erlaubt, auf die Clients
zuzugreifen, weiß ich nicht. Könnte mir vorstellen von nicht, aber
möglich wärs, damit man verbundene Geräte ohne UI konfigurieren kann.
Versuch macht kluch.
Aber mal im Ernst: wozu diese "andersrumme" Konfiguration?
Normal ist der ESP ein AP und liefert eine Seite aus.
Warum das Handy als AP und dann doch auf den den Client zugreifen?
Jens M. schrieb:> Aber mal im Ernst: wozu diese "andersrumme" Konfiguration?> Normal ist der ESP ein AP und liefert eine Seite aus.> Warum das Handy als AP und dann doch auf den den Client zugreifen
Als Feature: in der gewünschten Umgebung läuft dieses eine Handy als AP
und stellt allen anderen Handys Internet zur Verfügung.
Würde der ESP32 auch als AP laufen, hätte man nur Zugriff auf den ESP32,
aber kein Internet mehr. Also würde dieses eine Handy in dem Moment
allen anderen das Internet wegnehmen bzw. der Nutzer eines anderen
Handys müsste immer zwischen den beiden AP's hin und her schalten.
Klinkt der ESP32 sich hingegen als Client ein, hätte zumindest dieses
eine Handy bequem Zugriff auf Internet und ESP32 - ohne ständig das
WLAN-Netz wechseln zu müssen
Der ESP ist ein Client wie jeder andere auch, also kann jeder auch drauf
zugreifen, nicht nur das eine Gerät mit dem AP.
Alles nur eine Frage der richtigen IP-Adresse...
Wie man die rausbekommt, ist dann auch eher dem AP-Handy zuzuschreiben.
Kann man da sehen, welcher Client welche via DHCP bekommen hat?
Aber sonst macht das natürlich Sinn.
Zonk schrieb:> der ESP32 teilt dem Handy seine statische IP mit (z.B. 192.168.1.1)
Das geht so nicht. Wenn das Handy einen AP startet, verteilt es die IP
Adressen per DHCP. Danach muss sich der ESP richten ansonsten gibt es
keine Verbindung.
Ob man da eine etwas komfortablere Namensauflösung mit DNS basteln kann
weiß ich nicht, wäre einen Versuch wert.
Marc V. schrieb:> Vorher muss man sich natürlich bei Router als admin einloggen und Port> forwarding machen.
Es ist eben kein Router im Spiel, sondern ein Smartphone, welches als
WLAN-AP arbeitet (Tethering-Modus).
Die IDee ist eben, dass dich der ESP32 als WLAN-Client mit diesem
Smarthpone verbindet. Wenn der Benutzer jetzt eine Internetadresse
eingibt, erreicht er diese. Gibt er die 192.168.1.1 ein, erreicht er den
Weserver auf dem ESP32 - ganz ohne zwischen verschiedenen WLAN-APs
umschalten zu müssen.
Und ich wüsste jetzt nicht, dass man unter einem nicht-gerooteten
Android irgendwo ein Portforwarding einstellen könnte...
Port Forwarding würde auch nur erreichen, das man den ESP von der
Mobilfunkseite her erreichen kann, ich denke das ist unerwünscht.
Wird auch vermutlich nicht funktionieren, da die meisten MobFu-Anbieter
den User hinter einen Router setzen, der NAT macht. Da kommt man von
außen eh nicht rein...
Ob andere Clients im WLAN den ESP erreichen können, ist eher der "Client
Isolation" geschuldet, aber zumindest das AP-Handy sollte draufkommen.