Общее #
Полная официальная документация: ESP8266
Основная часть сигнатур ниже относится к ESP8266 Arduino Core 3.x. В Arduino-ESP32 названия многих методов похожи, но типы, аргументы и доступность функций могут отличаться - их нужно сверять с документацией установленной версии ядра.
Разное #
hostByName #
int WiFi.hostByName(const char* hostname, IPAddress& result)hostname (через DNS) и записать в result. Блокирующая функция, вернёт true при успехеprintDiag #
void WiFi.printDiag(Print& p)WiFi.printDiag(Serial)Режимы WiFi #
Примечание: устанавливать вручную режим работы перед запуском AP или перед подключением к AP не нужно - он включится автоматически.
WiFiMode_t #
WiFiMode_tWIFI_OFF- WiFi выключенWIFI_AP- режим AP (точка доступа)WIFI_STA- режим STA (подключение к AP)WIFI_AP_STA- режимы STA и AP одновременно
mode #
bool WiFi.mode(WiFiMode_t mode)getMode #
WiFiMode_t WiFi.getMode()enableSTA #
bool WiFi.enableSTA(bool enable)enableAP #
bool WiFi.enableAP(bool enable)Энергосбережение #
wifi_ps_type_t (ESP32) #
wifi_ps_type_tWIFI_PS_NONE- отключенWIFI_PS_MIN_MODEM- минимальное энергосбережение, пробуждение на каждый DTIMWIFI_PS_MAX_MODEM- максимальное энергосбережение, пробуждение по настроенному listen interval
setSleep #
bool WiFi.setSleep(wifi_ps_type_t sleepType)setSleep #
bool WiFi.setSleep(bool enabled)getSleep #
wifi_ps_type_t WiFi.getSleep()setSleepMode (ESP8266) #
bool WiFi.setSleepMode(WiFiSleepType_t type, int listenInterval = 0)WIFI_NONE_SLEEP, WIFI_LIGHT_SLEEP или WIFI_MODEM_SLEEP. Увеличение listenInterval может дополнительно снизить расход энергии, но повысить задержку и привести к пропуску широковещательных пакетов.Режим STA #
Полная официальная документация: ESP8266
Подключение #
wl_status_t #
wl_status_tWL_IDLE_STATUS- простаиваетWL_NO_SSID_AVAIL- нет настроенной AP для подключенияWL_SCAN_COMPLETED- сканирование AP завершеноWL_CONNECTED- подключен к APWL_CONNECT_FAILED- ошибка подключения к APWL_CONNECTION_LOST- потеря соединения с APWL_WRONG_PASSWORD- неверный пароль при подключении к APWL_DISCONNECTED- отключен от AP
config #
bool WiFi.config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0)WiFi.begin(). Режим WiFi должен быть STA или 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)ssid- имя AP, до 32 символовpsk- пароль, от 8 до 64 символов. Пустая строка, если пароля нетchannel- канал WiFi, если нужна конкретная точка с известным каналом. Допустимый диапазон зависит от страны и настроек ядраbssid- MAC адрес AP в виде массива 6 байтconnect- начать подключение сейчас. Иначе - просто сохранить параметры
reconnect #
bool WiFi.reconnect()true, если процесс переподключения успешно начался. Статус подключения получается так же, как при begin()waitForConnectResult #
int8_t WiFi.waitForConnectResult(uint32_t timeout = 60000)reconnect() или begin(), тайм-аут в миллисекундах. Вернёт -1 при тайм-ауте и wl_status_t в остальных случаяхstatus #
wl_status_t WiFi.status()isConnected #
bool WiFi.isConnected()WiFi.status() == WL_CONNECTEDdisconnect #
bool WiFi.disconnect(bool wifioff = false, bool eraseCredentials = false)wifioff- выключить режим STAeraseCredentials- удалить сохранённые SSID и пароль AP
setAutoConnect #
bool WiFi.setAutoConnect(bool autoConnect)truegetAutoConnect #
bool WiFi.getAutoConnect()setAutoReconnect #
bool WiFi.setAutoReconnect(bool autoReconnect)truegetAutoReconnect #
bool WiFi.getAutoReconnect()Параметры сети #
hostname #
bool WiFi.hostname(const String& hostname)bool WiFi.hostname(const char* hostname)hostname #
String WiFi.hostname()localIP #
IPAddress WiFi.localIP()macAddress #
uint8_t* WiFi.macAddress(uint8_t* mac)String WiFi.macAddress()uint8_t длиной 6 байт, функция вернёт указатель на сам массив. В втором случае MAC получится в виде читаемой строки.subnetMask #
IPAddress WiFi.subnetMask()gatewayIP #
IPAddress WiFi.gatewayIP()broadcastIP #
IPAddress WiFi.broadcastIP()SSID #
String WiFi.SSID()psk #
String WiFi.psk()BSSID #
uint8_t* WiFi.BSSID()BSSIDstr #
String WiFi.BSSIDstr()RSSI #
int8_t WiFi.RSSI()constrain(2 * (WiFi.RSSI() + 100), 0, 100), но это не физический процент мощности и не гарантия качества связиАвтоподключение #
beginWPSConfig (ESP8266) #
bool WiFi.beginWPSConfig()truebeginSmartConfig #
bool WiFi.beginSmartConfig()stopSmartConfig #
bool WiFi.stopSmartConfig()smartConfigDone #
bool WiFi.smartConfigDone()while (!WiFi.smartConfigDone()) delay(10);. Вызывать stopSmartConfig() после подключения не обязательноСканирование AP #
Полная официальная документация: ESP8266
scanNetworks #
int8_t WiFi.scanNetworks(bool async = false, bool show_hidden = false)async- сканировать асинхронно. Еслиtrue, то окончание нужно опрашивать вWiFi.scanComplete(). Еслиfalse, то сканирование будет блокирующим, а функция сразу вернёт количество найденных APshow_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- строка с именем APencryption- тип шифрования APENC_TYPE_NONE- без пароляENC_TYPE_AUTO- WPA / WPA2 / PSKENC_TYPE_WEP- WEPENC_TYPE_TKIP- WPA / PSKENC_TYPE_CCMP- WPA2 / PSK
RSSI- уровень сигнала в dBmBSSID- MAC адрес (6 байт)channel- канал WiFiisHidden- скрытая сеть
SSID #
String WiFi.SSID(uint8_t idx)encryptionType #
uint8_t WiFi.encryptionType(uint8_t idx)RSSI #
int32_t WiFi.RSSI(uint8_t idx)BSSID #
uint8_t* WiFi.BSSID(uint8_t idx)BSSIDstr #
String WiFi.BSSIDstr(uint8_t idx)channel #
int32_t WiFi.channel(uint8_t idx)Режим 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)192.168.4.1:
ssid- имя точки (до 32 символов)psk- пароль (8.. 64 символа), по умолч. - без пароляchannel- канал WiFi (1.. 13)hidden- скрытая сетьmax_connection- максимум клиентов, по умолчанию 4. Допустимый предел зависит от ядра и его настроек, у ESP8266 - до 8
softAPConfig #
bool WiFi.softAPConfig(IPAddress local_ip, IPAddress gateway, IPAddress subnet)WiFi.softAP():
local_ip- локальный IP адресgateway- IP шлюзаsubnet- маска подсети
softAPdisconnect #
bool WiFi.softAPdisconnect(bool wifioff = false)softAPIP #
IPAddress WiFi.softAPIP()192.168.4.1softAPgetStationNum #
uint8_t WiFi.softAPgetStationNum()softAPmacAddress #
uint8_t* WiFi.softAPmacAddress(uint8_t* mac)softAPmacAddress #
String WiFi.softAPmacAddress()softAPSSID #
String WiFi.softAPSSID()softAPPSK (ESP8266) #
String WiFi.softAPPSK()Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту (alex@alexgyver.ru)
- Поддержать автора за работу над уроками