ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс точки доступа: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{ESP8266 панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} {{Черновик}} =Класс точки дост…») |
Нет описания правки |
||
Строка 19: | Строка 19: | ||
Самой простой версии этой функции нужен только один параметр. Она используется для настройки открытой [[WiFi]]-сети. | Самой простой версии этой функции нужен только один параметр. Она используется для настройки открытой [[WiFi]]-сети. | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
WiFi.softAP(ssid) | WiFi.softAP(ssid) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 25: | Строка 25: | ||
Чтобы задать сеть, защищенную паролем, или задать дополнительные параметры сети, используйте следующий вариант: | Чтобы задать сеть, защищенную паролем, или задать дополнительные параметры сети, используйте следующий вариант: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
WiFi.softAP(ssid, password, channel, hidden) | WiFi.softAP(ssid, password, channel, hidden) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 45: | Строка 45: | ||
Настраивает сетевой интерфейс программной точки доступа. | Настраивает сетевой интерфейс программной точки доступа. | ||
<syntaxhighlight lang="c | <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 | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <ESP8266WiFi.h> | #include <ESP8266WiFi.h> | ||
Строка 90: | Строка 90: | ||
Пример данных, которые могут быть показаны в мониторе порта: | Пример данных, которые могут быть показаны в мониторе порта: | ||
<syntaxhighlight lang="bash | <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 | <syntaxhighlight lang="c"> | ||
WiFi.softAPgetStationNum() | WiFi.softAPgetStationNum() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 110: | Строка 110: | ||
Пример кода: | Пример кода: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <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 | <syntaxhighlight lang="bash"> | ||
Stations connected to soft-AP = 2 | Stations connected to soft-AP = 2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 127: | Строка 127: | ||
Отключает станции от сети, установленной программной точкой доступа. | Отключает станции от сети, установленной программной точкой доступа. | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
WiFi.softAPdisconnect(wifioff) | WiFi.softAPdisconnect(wifioff) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 143: | Строка 143: | ||
Возвращает [[IP-адрес]] сетевого интерфейса программной точки доступа. | Возвращает [[IP-адрес]] сетевого интерфейса программной точки доступа. | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
WiFi.softAPIP() | WiFi.softAPIP() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 151: | Строка 151: | ||
Пример кода: | Пример кода: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <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 | <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 | <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 | <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 | <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 | <syntaxhighlight lang="c"> | ||
WiFi.softAPmacAddress() | WiFi.softAPmacAddress() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 200: | Строка 200: | ||
Пример кода: | Пример кода: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <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 | <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 и нужны для следующих целей:
- 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
Другие примеры использования функций, входящих в класс точки доступа, ищите по [ссылка этой ссылке].