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 и нужны для следующих целей:

В зависимости от результата (т.е. от того, удалось ли задать настройки) функция вернет 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

Другие примеры использования функций, входящих в класс точки доступа, ищите по [ссылка этой ссылке].

См.также

Внешние ссылки