View Categories

Объект WiFi

Общее #

Полная официальная документация: ESP8266

hostByName #

bool WiFi.hostByName(const char* hostname, IPAddress& result)
Получить IP адрес хоста по имени (через DNS). Блокирующая функция, вернёт true при успехе

printDiag #

,
void WiFi.printDiag(Print& p)
Вывести отладочную информацию о WiFi (режим работы, параметры, настройки...). Например, в монитор порта: WiFi.printDiag(Serial).

Режимы #

Примечание: устанавливать вручную режим работы перед запуском AP или перед подключением к AP не нужно - он включится автоматически.

WiFiMode_t #

WiFiMode_t
Режим работы WiFi модуля:

  • WIFI_OFF - WiFi выключен
  • WIFI_AP - режим AP (точка доступа)
  • WIFI_STA - режим STA (подключение к AP)
  • WIFI_AP_STA - режимы STA и AP одновременно

mode #

bool WiFi.mode(WiFiMode_t mode)
Установить режим работы WiFi

getMode #

WiFiMode_t WiFi.getMode()
Получить текущий режим работы WiFi

enableSTA #

bool WiFi.enableSTA(bool enable)
Включить режим STA

enableAP #

bool WiFi.enableAP(bool enable)
Включить режим AP

Энергосбережение #

wifi_ps_type_t #

wifi_ps_type_t
Режим энергосбережения WiFi (влияет на скорость соединения):

  • WIFI_PS_NONE - отключен
  • WIFI_PS_MAX_MODEM - среднее энергосбережение
  • WIFI_PS_MIN_MODEM - максимальное энергосбережение

setSleep #

bool WiFi.setSleep(wifi_ps_type_t sleepType)
Выбрать режим энергосбережения

setSleep #

bool WiFi.setSleep(bool enabled)
Включить-выключить максимальное энергосбережение

getSleep #

wifi_ps_type_t WiFi.getSleep()
Получить текущий режим энергосбережения

Режим STA #

Полная официальная документация: ESP8266

Подключение #

wl_status_t #

wl_status_t
Статус подключения к AP:

  • WL_IDLE_STATUS - простаивает
  • WL_NO_SSID_AVAIL - нет настроенной AP для подключения
  • WL_SCAN_COMPLETED - сканирование AP завершено
  • WL_CONNECTED - подключен к AP
  • WL_CONNECT_FAILED - ошибка подключения к AP
  • WL_CONNECTION_LOST - потеря соединения с AP
  • WL_WRONG_PASSWORD - неверный пароль при подключении к AP
  • WL_DISCONNECTED - отключен от AP

config #

bool WiFi.config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0)
Настроить параметры подключения к AP вручную, без DHCP. Вызывать до вызова WiFi.begin(). Режим WiFi должен быть AP или STA + AP перед вызовом функции:

  • local_ip - желаемый статический IP адрес
  • gateway - IP адрес роутера в локальной сети, по этому адресу открывается панель управления роутером
  • subnet - маска подсети (можно посмотреть в роутере, обычно 255.255.255.0)
  • dns1, dns2 - опционально свои адреса DNS серверов

Чтобы обратно включить DHCP (автоматически получить параметры сети) нужно вызвать WiFi.config(0, 0, 0) и после этого переподключиться к сети.

begin #

wl_status_t WiFi.begin()
wl_status_t WiFi.begin(String ssid, String psk = "", int32_t channel = 0, uint8_t* bssid = nullptr, bool connect = true)
Включить режим STA и подключиться к AP. Без параметров - подключиться к настроенной ранее AP (данные хранятся во Flash памяти и не сбрасываются при перезагрузке). Параметры:

  • ssid - имя AP, до 32 символов
  • psk - пароль, от 8 до 64 символов. Пустая строка, если пароля нет
  • channel - канал WiFi (1.. 14), если нужен конкретный для работы
  • bssid - MAC адрес AP в виде массива 6 байт
  • connect - начать подключение сейчас. Иначе - просто сохранить параметры

reconnect #

bool WiFi.reconnect()
Переподключиться к текущей AP. Вернёт true, если процесс переподключения успешно начался. Статус подключения получается так же, как при begin()

waitForConnectResult #

int8_t WiFi.waitForConnectResult(uint32_t timeout = 60000)
Ожидать подключения к AP после вызова reconnect() или begin(), тайм-аут в миллисекундах. Вернёт -1 при тайм-ауте и wl_status_t в остальных случаях

status #

wl_status_t WiFi.status()
Текущий статус подключения к AP

isConnected #

bool WiFi.isConnected()
Статус подключения к AP, равносильно выражению WiFi.status() == WL_CONNECTED

disconnect #

bool WiFi.disconnect(bool wifioff = false, bool eraseCredentials = true)
Отключиться от текущей AP:

  • wifioff - выключить режим STA
  • eraseCredentials - удалить сохранённые SSID и пароль AP

setAutoConnect #

bool WiFi.setAutoConnect(bool autoConnect)
Автоматически подключаться к последней сохранённой AP при запуске, по умолчанию true

getAutoConnect #

bool WiFi.getAutoConnect()
Получить состояние автоподключения

setAutoReconnect #

bool WiFi.setAutoReconnect(bool autoReconnect)
Автоматически переподключаться к AP при потере связи, по умолчанию true

getAutoReconnect #

bool WiFi.getAutoReconnect()
Получить состояние автопереподключения

Параметры сети #

hostname #

bool WiFi.hostname(const String& hostname)
bool WiFi.hostname(const char* hostname)
Установить сетевое имя для ESP

hostname #

String WiFi.hostname()
Получить сетевое имя ESP (которое выдал роутер или установленное вручную)

localIP #

IPAddress WiFi.localIP()
Получить локальный IP в сети AP

macAddress #

uint8_t* WiFi.macAddress(uint8_t* mac)
String WiFi.macAddress()
Получить MAC адрес контроллера. В первом случае нужно передать массив uint8_t длиной 6 байт, функция вернёт указатель на сам массив. В втором случае MAC получится в виде читаемой строки.

subnetMask #

IPAddress WiFi.subnetMask()
Получить маску подсети текущей AP

gatewayIP #

IPAddress WiFi.gatewayIP()
Получить IP адрес шлюза (роутера)

broadcastIP #

IPAddress WiFi.broadcastIP()
Получить широковещательный IP сети (считается на базе локального IP и маски)

SSID #

String WiFi.SSID()
Имя текущей AP

psk #

String WiFi.psk()
Пароль текущей AP

BSSID #

uint8_t* WiFi.BSSID()
MAC адрес AP (6 байт)

BSSIDstr #

String WiFi.BSSIDstr()
MAC адрес AP (строка)

RSSI #

int8_t WiFi.RSSI()
Уровень сигнала с AP в dBm. Перевести в проценты можно так: constrain(2 * (WiFi.RSSI() + 100), 0, 100)

Автоподключение #

beginWPSConfig (ESP8266) #

bool WiFi.beginWPSConfig()
Начать подключение по WPS (блокирующий вызов): вызвать функцию, затем нажать на роутере кнопку WPS. При успешном подключении вернёт true

beginSmartConfig #

bool WiFi.beginSmartConfig()
Начать умное подключение по технологии SmartConfig, например при помощи приложения EspTouch (iOS, Android)

stopSmartConfig #

bool WiFi.stopSmartConfig()
Остановить умное подключение и освободить буфер

smartConfigDone #

bool WiFi.smartConfigDone()
Подключение завершено. Опрашивать в цикле, например while (!WiFi.smartConfigDone()). Вызывать stop после подключения не обязательно

Сканирование AP #

Полная официальная документация: ESP8266

scanNetworks #

int8_t WiFi.scanNetworks(bool async = false, bool show_hidden = false)
Сканировать доступные AP. Параметры:

  • async - сканировать асинхронно. Если true, то окончание нужно опрашивать в WiFi.scanComplete(). Если false, то сканирование будет блокирующим, а функция сразу вернёт количество найденных AP
  • show_hidden - включить в результат скрытые AP

scanComplete #

int8_t WiFi.scanComplete()
Тикер асинхронного сканирования, вернёт:

  • -2 - сканирование не было запущено
  • -1 - сканирование ещё идёт
  • >= 0 - количество найденных AP

scanDelete #

void WiFi.scanDelete()
Очистить результаты сканирования

getNetworkInfo #

bool WiFi.getNetworkInfo(uint8_t index, String &ssid, uint8_t &encryption, int32_t &RSSI, uint8_t* &BSSID, int32_t &channel, bool &isHidden)
Получить результат сканирования по индексу, записать в переменные:

  • index - индекс AP (с нуля до количества найденных AP минус один)
  • ssid - строка с именем AP
  • encryption - тип шифрования AP
    • ENC_TYPE_NONE - без пароля
    • ENC_TYPE_AUTO - WPA / WPA2 / PSK
    • ENC_TYPE_WEP - WEP
    • ENC_TYPE_TKIP - WPA / PSK
    • ENC_TYPE_CCMP - WPA2 / PSK
  • RSSI - уровень сигнала в dBm
  • BSSID - MAC адрес (6 байт)
  • channel - канал WiFi
  • isHidden - скрытая сеть

SSID #

String WiFi.SSID(uint8_t idx)
Имя AP по индексу

encryptionType #

uint8_t WiFi.encryptionType(uint8_t idx)
Шифрование AP по индексу

RSSI #

int32_t WiFi.RSSI(uint8_t idx)
Уровень сигнала AP по индексу

BSSID #

uint8_t* WiFi.BSSID(uint8_t idx)
MAC адрес AP по индексу

BSSIDstr #

String WiFi.BSSIDstr(uint8_t idx)
MAC адрес AP по индексу в читаемом виде

channel #

int32_t WiFi.channel(uint8_t idx)
Канал WiFi AP по индексу

Режим AP #

Полная официальная документация: ESP8266

softAP #

bool WiFi.softAP(const char* ssid, const char* psk = nullptr, int channel = 1, bool hidden = false, int max_connection = 4)
bool WiFi.softAP(const String& ssid, const String& psk = "", int channel = 1, bool hidden = false, int max_connection = 4)
Включить режим AP и развернуть точку доступа, IP адрес по умолчанию 192.168.4.1:

  • ssid - имя точки (до 32 символов)
  • psk - пароль (8.. 64 символа), по умолч. - без пароля
  • channel - канал WiFi (1.. 13)
  • hidden - скрытая сеть
  • max_connection - максимум клиентов (ESP8266 до 8, ESP32 до 10)

softAPConfig #

bool WiFi.softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet)
Настроить AP, вызывать до WiFi.softAP():

  • local_ip - локальный IP адрес
  • gateway - IP шлюза
  • subnet - маска подсети

softAPdisconnect #

bool WiFi.softAPdisconnect(bool wifioff = false)
Отключить точку доступа, опционально выключить режим AP

softAPIP #

IPAddress WiFi.softAPIP()
Получить IP адрес AP, по умолчанию 192.168.4.1

softAPgetStationNum #

uint8_t WiFi.softAPgetStationNum()
Получить количество подключенных хостов

softAPmacAddress #

uint8_t* WiFi.softAPmacAddress(uint8_t* mac)
Записать MAC адрес AP в массив (6 байт)

softAPmacAddress #

String WiFi.softAPmacAddress()
Получить читаемый MAC адрес AP

softAPSSID #

String WiFi.softAPSSID()
Имя AP

softAPPSK (ESP8266) #

String WiFi.softAPPSK()
Пароль AP

Полезные страницы #

Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх