Уроки / Урок 9

Сканер Wi-Fi

Ищем сети вокруг, смотрим уровень сигнала и защиту.

Начнём знакомство с Wi-Fi с самого безопасного: плата никуда не подключается, а только слушает эфир и составляет список сетей.

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);  // режим «клиент»
}

void loop() {
  Serial.println("Сканирую...");
  int n = WiFi.scanNetworks();
  Serial.printf("Найдено сетей: %d\n", n);
  for (int i = 0; i < n; i++) {
    Serial.printf("%2d. %-32s %4d дБм  канал %2d  %s\n",
                  i + 1, WiFi.SSID(i).c_str(), WiFi.RSSI(i), WiFi.channel(i),
                  WiFi.encryptionType(i) == WIFI_AUTH_OPEN ? "открытая" : "с паролем");
  }
  WiFi.scanDelete();  // освобождаем память
  Serial.println();
  delay(10000);
}

Как читать уровень сигнала

  • −30…−55 дБм — отлично, роутер рядом.
  • −55…−70 дБм — нормально для любых задач.
  • −70…−80 дБм — слабо, возможны обрывы.
  • ниже −80 дБм — связь почти не работает.

ESP32 работает только в диапазоне 2,4 ГГц. Сети 5 ГГц плата не видит, поэтому если роутер раздаёт одно имя в обоих диапазонах, а сканер его не находит — в настройках роутера включите 2,4 ГГц.

Антенна — это зигзаг дорожки на краю модуля. Не кладите плату антенной на металл и не закрывайте её проводами: дальность заметно упадёт.