Jiri Drozd 3253de8792
added scan_method = WIFI_ALL_CHANNEL_SCAN into wifi config in WiFi.begin() to let the scan choose the nearest / strongest AP in case that there are multiple APs with the same SSID (#4947)
In case you have multiple APs with the same SSID/password and WiFi.begin(ssid, pwd) is called, ESP32 defaults to connect to THE FIRST AP FOUND matching ssid - according to:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html#_CPPv418wifi_scan_method_t

This can cause situations that ESP32 is trying to connect to AP which is far away from it (weak signal) even there is AP close to it, just as in my house - I have AP on channel 6 which is in the 1st floor (quite far from room where I do the programming) and AP on channel 13 in the same room I do the programming (which is in the 2nd floor) - result: ESP32 is trying to connect to the AP on channel 6 because it finds it first and never try the AP on channel 13 in the same room, result of this is very unreliable WiFi connection.

When scan_method is set to WIFI_ALL_CHANNEL_SCAN, ESP32 scans all channels and choose the nearest / strongest AP (matching the ssid of course) as expected - result is no connection problems at all.

Therefore I propose adding this parameter into WiFi.begin, connection problems as described above are quite confusing (especially for beginners), I can imagine that for example Schools there are usually using mutliple APs and this can cause intermittent connection problems without obvious reason.
2021-03-15 13:21:43 +02:00
..
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2021-03-11 12:11:53 +02:00
2020-07-19 02:21:15 +03:00

ESP32 Libraries

arduino-esp32 includes libraries for Arduino compatibility along with some object wrappers around hardware specific devices. Examples are included in the examples folder under each library folder. The ESP32 includes additional examples which need no special drivers.

ArduinoOTA

Over The Air firmware update daemon. Use espota.py to upload to the device.

AsyncUDP

Asynchronous task driven UDP datagram client/server

AzureIoT

Library to interact with Microsoft Azure IoT services

BLE

Bluetooth Low Energy v4.2 client/server framework

BluetoothSerial

Serial to Bluetooth redirection server

DNSServer

A basic UDP DNS daemon (includes captive portal demo)

EEPROM

Arduino compatibility for EEPROM (using flash)

ESP32

Additional examples

  • AnalogOut
  • Camera
  • ChipID
  • DeepSleep
  • ESPNow
  • FreeRTOS
  • GPIO
  • HallSensor
  • I2S
  • ResetReason
  • RMT
  • Time
  • Timer
  • Touch

ESPmDNS

mDNS service advertising

FFat

FAT indexed filesystem on SPI flash

FS

Filesystem virtualization framework

HTTPClient

A simple HTTP client, compatible with WiFiClientSecure

HTTPUpdate

Download a firmware update from HTTPd and apply it using Update

NetBIOS

NetBIOS name advertiser

Preferences

Flash keystore using ESP32 NVS

SD

Secure Digital card filesystem using SPI access

SD_MMC

Secure Digital card filesystem using 4-lane access

SimpleBLE

Minimal BLE advertiser

SPI

Arduino compatible Serial Peripheral Interface driver (master only)

SPIFFS

SPI Flash Filesystem (see spiffs-plugin to upload to device)

Ticker

A timer to call functions on an interval

Update

Sketch Update using ESP32 OTA functionality

WebServer

A simple HTTP daemon

WiFi

Arduino compatible WiFi driver (includes Ethernet driver)

WiFiClientSecure

Arduino compatible WiFi client object using embedded encryption

Wire

Arduino compatible I2C driver (master only)