Forum: Mikrocontroller und Digitale Elektronik ESP32 mit WLAN verbinden wenn mehrere APs vorhanden sind


von Marco D. (froetz)


Lesenswert?

Hallo,

kannman einen ESP32 mit einem WLAN verbinden, in dem es mehrere APs mit 
gleicher SSID und gleicher Verschlüsselung gibt?

Folgendes Szenario:
Ich möchte einen ESP32 in mein WLAN zuhause einbinden. Das Netzwerk ist 
WPA verschlüsselt.
Ich habe 3 Accesspoints im Haus verteilt um überall eine gute 
Funkausleuchtung zu haben. Alle 3 APs sind per LAN-Kabel mit dem 
Kabelmodem verbunden, das als DHCP im Netz funktioniert. Die Mobilgeräte 
der Familie suchen sich so eigentlich immer den geeignetsetn AP raus, 
was auch prima funktioniert, deshalb suche ich eine Lösung, bei der 
meine WLAN-Konfiguration auch so bleiben soll.

Ich habe bspw. mit dem Beispielprogramm SimpleWiFiServer experimentiert 
um mal eine funktionierende Basis für weitere Basteleien zu haben. Bei 
dem Programm trägt man ja seine SSID und das Passwort entsprechend ein.

---------------------------------
#include <WiFi.h>

const char* ssid     = "yourssid";
const char* password = "yourpasswd";
---------------------------------


Bei der Gelegenheit hab ich auch gemerkt, dass man keine Sonderzeichen 
in der SSID haben sollte.

Der ESP verbindet sich momentan nur mit dem Netzwerk, wenn er nur einen 
AP in Reichweite hat. Sobald er zwei APs erreichen könnte, verbindet 
sich der ESP32 nciht mit dem WLAN.

Gibt es dafür eine Lösung oder ein Workaround, weil normal sollte das ja 
vom WiFi-Standard abgedeckt sein. Kann man da irgendwie nach Stärke des 
APs priorisieren und sagen "nimm den, der am nächsten ist"?

Ich programmiere in der Arduino-IDE, falls das von Interesse sein 
sollte.

Danke und Gruß
Marco

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

unter der Annahme das sich das unter Arduino ebenso verhält wie beim 
ESP8266
kannst du mit *WiFi.scanNetworks()* eine Liste mit verfügbaren Netzen 
erstellen lassen. Dort suchst du dir den Eintrag mit dem besten RSSI aus 
und gibst bei Wifi.begin die BSSID (ist die MAC) und evl. den Kanal des 
APs mit an um dich mit genau diesem zu verbinden.

Sascha

von Christopher J. (christopher_j23)


Lesenswert?

Es gibt schon eine entsprechende Klasse, der du mehrere 
SSID/Passwort-Kombinationen übergeben kannst und die dafür sorgt, dass 
sich der ESP mit dem AP mit dem besten Empfang verbindet.

Nennt sich WifiMulti:

https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiMulti/WiFiMulti.ino

: Bearbeitet durch User
von Mischa N. (mischaka)


Lesenswert?

Zum abspeichern der Zugangsdaten kann so was Benutzt werden:

Einfache Möglichkeit verschiedene Zugangsdaten zum Laufzeit einzugeben
und zu speichern. Zum Beispiel WLAN, Passwort, MQTT Zugangsdaten, NTP
Server.
Die Daten werden in einer Konfigurationsdatei (INI) im SPIFFS 
gespeichert.

http://esp32-server.de/ini/

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.