mikrocontroller.net

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


Autor: Marco D. (froetz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha W. (sascha-w)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christopher J. (christopher_j23)
Datum:

Bewertung
0 lesenswert
nicht 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/ma...

: Bearbeitet durch User
Autor: Mischa N. (mischaka)
Datum:

Bewertung
0 lesenswert
nicht 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/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.