ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс точки доступа: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{ESP8266 панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} {{Черновик}} =Класс точки дост…»)
 
Нет описания правки
Строка 19: Строка 19:
Самой простой версии этой функции нужен только один параметр. Она используется для настройки открытой [[WiFi]]-сети.
Самой простой версии этой функции нужен только один параметр. Она используется для настройки открытой [[WiFi]]-сети.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAP(ssid)
WiFi.softAP(ssid)
</syntaxhighlight>
</syntaxhighlight>
Строка 25: Строка 25:
Чтобы задать сеть, защищенную паролем, или задать дополнительные параметры сети, используйте следующий вариант:
Чтобы задать сеть, защищенную паролем, или задать дополнительные параметры сети, используйте следующий вариант:


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAP(ssid, password, channel, hidden)
WiFi.softAP(ssid, password, channel, hidden)
</syntaxhighlight>
</syntaxhighlight>
Строка 45: Строка 45:
Настраивает сетевой интерфейс программной точки доступа.
Настраивает сетевой интерфейс программной точки доступа.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
softAPConfig (local_ip, gateway, subnet)
softAPConfig (local_ip, gateway, subnet)
</syntaxhighlight>
</syntaxhighlight>
Строка 58: Строка 58:
Пример кода:
Пример кода:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
#include <ESP8266WiFi.h>
#include <ESP8266WiFi.h>


Строка 90: Строка 90:
Пример данных, которые могут быть показаны в мониторе порта:
Пример данных, которые могут быть показаны в мониторе порта:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
Setting soft-AP configuration ... Ready
Setting soft-AP configuration ... Ready
Setting soft-AP ... Ready
Setting soft-AP ... Ready
Строка 104: Строка 104:
Извлекает информацию о количестве станций, подключенных к точке доступа.
Извлекает информацию о количестве станций, подключенных к точке доступа.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAPgetStationNum()
WiFi.softAPgetStationNum()
</syntaxhighlight>
</syntaxhighlight>
Строка 110: Строка 110:
Пример кода:
Пример кода:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
Serial.printf("Stations connected to soft-AP = %d\n", WiFi.softAPgetStationNum());
Serial.printf("Stations connected to soft-AP = %d\n", WiFi.softAPgetStationNum());
           //  "Станции подключенные к точке доступа = "
           //  "Станции подключенные к точке доступа = "
Строка 117: Строка 117:
Пример данных, которые могут быть показаны в мониторе порта:
Пример данных, которые могут быть показаны в мониторе порта:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
Stations connected to soft-AP = 2
Stations connected to soft-AP = 2
</syntaxhighlight>
</syntaxhighlight>
Строка 127: Строка 127:
Отключает станции от сети, установленной программной точкой доступа.
Отключает станции от сети, установленной программной точкой доступа.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAPdisconnect(wifioff)
WiFi.softAPdisconnect(wifioff)
</syntaxhighlight>
</syntaxhighlight>
Строка 143: Строка 143:
Возвращает [[IP-адрес]] сетевого интерфейса программной точки доступа.
Возвращает [[IP-адрес]] сетевого интерфейса программной точки доступа.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAPIP()
WiFi.softAPIP()
</syntaxhighlight>
</syntaxhighlight>
Строка 151: Строка 151:
Пример кода:
Пример кода:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
Serial.print("Soft-AP IP address = ");
Serial.print("Soft-AP IP address = ");
         //  "IP-адрес программной точки доступа = "
         //  "IP-адрес программной точки доступа = "
Строка 159: Строка 159:
Пример данных, которые могут быть показаны в мониторе порта:
Пример данных, которые могут быть показаны в мониторе порта:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
Soft-AP IP address = 192.168.4.1
Soft-AP IP address = 192.168.4.1
</syntaxhighlight>
</syntaxhighlight>
Строка 169: Строка 169:
====Первая версия возвращает указатель:====
====Первая версия возвращает указатель:====


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAPmacAddress(mac)
WiFi.softAPmacAddress(mac)
</syntaxhighlight>
</syntaxhighlight>
Строка 177: Строка 177:
Пример кода:
Пример кода:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
uint8_t macAddr[6];
uint8_t macAddr[6];
WiFi.softAPmacAddress(macAddr);
WiFi.softAPmacAddress(macAddr);
Строка 186: Строка 186:
Пример данных, которые могут быть показаны в мониторе порта:
Пример данных, которые могут быть показаны в мониторе порта:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
MAC address = 5e:cf:7f:8b:10:13
MAC address = 5e:cf:7f:8b:10:13
</syntaxhighlight>
</syntaxhighlight>
Строка 192: Строка 192:
====Вторая версия возвращает строку (тип данных String):====
====Вторая версия возвращает строку (тип данных String):====


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
WiFi.softAPmacAddress()
WiFi.softAPmacAddress()
</syntaxhighlight>
</syntaxhighlight>
Строка 200: Строка 200:
Пример кода:
Пример кода:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str());
Serial.printf("MAC address = %s\n", WiFi.softAPmacAddress().c_str());
           //  "MAC-адрес = "
           //  "MAC-адрес = "
Строка 207: Строка 207:
Пример данных, которые могут быть показаны в мониторе порта:
Пример данных, которые могут быть показаны в мониторе порта:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
MAC address = 5E:CF:7F:8B:10:13
MAC address = 5E:CF:7F:8B:10:13
</syntaxhighlight>
</syntaxhighlight>

Версия от 19:56, 23 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Класс точки доступа в библиотеке 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

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

См.также

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