ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс точки доступа
Класс точки доступа в библиотеке ESP8266WiFi[1]
Описание класса точки доступа будет разбито на три части. Первая – о функциях для настройки программной точки доступа, вторая – для управлении подключением, третья – для извлечения информации о настройках программной точки доступа.
Настройка программной точки доступа
Этот радел описывает функции для настройки ESP8266 в режим программной точки доступа.
softAP()
Задает режим программной точки доступа для установления WiFi-сети.
Самой простой версии этой функции нужен только один параметр. Она используется для настройки открытой WiFi-сети.
WiFi.softAP(ssid)
Чтобы задать сеть, защищенную паролем, или задать дополнительные параметры сети, используйте следующий вариант:
WiFi.softAP(ssid, password, channel, hidden)
Первый параметр обязателен, все остальные – опциональны. Параметры значат следующее:
- ssid – символьная строка, содержащая SSID сети (не более 63 символов)
- password – опциональная символьная строка для пароля. Для сети WPA-PSK ее размер должен быть не более 8 символов. Если пароля не указать, к сети сможет подключиться кто угодно
- channel – опциональный параметр для настройки WiFi-канала (от «1» до «13»). Канал по умолчанию – «1»
- hidden – опциональный параметр. Если задать true, это спрячет SSID
В зависимости от результата (т.е. от того, будет ли настроена точка доступа или нет) функция вернет true или false.
Примечания:
- По умолчанию IP-адресом настроенной программной точки доступа будет «192.168.4.1». Его можно поменять при помощи функции softAPConfig(). Подробней о ней читайте ниже.
- Хотя ESP8266 может работать в комбинированном режиме (станция + точка доступа), у него только один аппаратный канал. Следовательно, по умолчанию в комбинированном режиме номер канала точки доступа будет таким же, как и у станции. Более подробно о том, как это может повлиять на станции, подключенные к программной точке доступа ESP8266, читайте в этом FAQ на форуме Espressif
softAPConfig()
Настраивает сетевой интерфейс программной точки доступа.
softAPConfig (local_ip, gateway, subnet)
Все аргументы имеют тип данных IPAddress и нужны для следующих целей:
- local_ip – IP-адрес программной точки доступа
- gateway – IP-адрес шлюза
- subnet – маска подсети
В зависимости от результата (т.е. от того, удалось ли задать настройки) функция вернет true или false.
Пример кода:
#include <ESP8266WiFi.h>
IPAddress local_IP(192,168,4,22);
IPAddress gateway(192,168,4,9);
IPAddress subnet(255,255,255,0);
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.print("Setting soft-AP configuration ... ");
// "Задаем настройки программной точки доступа ... "
Serial.println(WiFi.softAPConfig(local_IP, gateway, subnet) ? "Ready" : "Failed!");
// "Готово" : "Задать настройки не удалось"
Serial.print("Setting soft-AP ... ");
// "Настройка программной точки доступа ... "
Serial.println(WiFi.softAP("ESPsoftAP_01") ? "Ready" : "Failed!");
// "Готово" : "Настройка не удалась"
Serial.print("Soft-AP IP address = ");
// "IP-адрес программной точки доступа = "
Serial.println(WiFi.softAPIP());
}
void loop() {}
Пример данных, которые могут быть показаны в мониторе порта:
Setting soft-AP configuration ... Ready
Setting soft-AP ... Ready
Soft-AP IP address = 192.168.4.22
Управление сетью
Настроив программную точку доступа, вы можете, к примеру, выключить ее или проверить количество станций, подключенных к ней.
softAPgetStationNum()
Извлекает информацию о количестве станций, подключенных к точке доступа.
WiFi.softAPgetStationNum()
Пример кода:
Serial.printf("Stations connected to soft-AP = %d\n", WiFi.softAPgetStationNum());
// "Станции подключенные к точке доступа = "
Пример данных, которые могут быть показаны в мониторе порта:
Stations connected to soft-AP = 2
Примечание: Максимальное число станций, которые можно подключить к программной точке доступа на базе ESP8266, равняется пяти.
softAPdisconnect()
Отключает станции от сети, установленной программной точкой доступа.
WiFi.softAPdisconnect(wifioff)
Эта функция выставляет текущие SSID и пароль на нулевые значения. Параметр wifioff – опциональный. Если поставить в нем true, это выключит режим программной точки доступа.
Если задача будет выполнена успешно, функция вернет true, а если нет – false.
Извлечение данных о настройках сети
Функции ниже извлекают информацию о IP-адресе и MAC-адресе программной точки доступа ESP8266.
softIP()
Возвращает IP-адрес сетевого интерфейса программной точки доступа.
WiFi.softAPIP()
Возвращаемое значение имеет тип данных IPAddress.
Пример кода:
Serial.print("Soft-AP IP address = ");
// "IP-адрес программной точки доступа = "
Serial.println(WiFi.softAPIP());
Пример данных, которые могут быть показаны в мониторе порта:
Soft-AP IP address = 192.168.4.1
softAPmacAddress()
Возвращает MAC-адрес программной точки доступа. Эта функция имеет две версии, которые отличаются по типу возвращаемого значения.
Первая версия возвращает указатель:
WiFi.softAPmacAddress(mac)
Параметр mac – это указатель к месту памяти (массив uint8_t размером в 6 элементов), в котором хранится MAC-адрес. Сама функция тоже возвращает указатель.
Пример кода:
uint8_t macAddr[6];
WiFi.softAPmacAddress(macAddr);
Serial.printf("MAC address = %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
// "MAC-адрес = "
Пример данных, которые могут быть показаны в мониторе порта:
MAC address = 5e:cf:7f:8b:10:13
Вторая версия возвращает строку (тип данных String):
WiFi.softAPmacAddress()
Это опциональный вариант, которому не нужны никакие параметры.
Пример кода:
Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str());
// "MAC-адрес = "
Пример данных, которые могут быть показаны в мониторе порта:
MAC address = 5E:CF:7F:8B:10:13
Другие примеры использования функций, входящих в класс точки доступа, ищите по [ссылка этой ссылке].