ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс точки доступа/Настройка ESP8266 в режим программной точки доступа: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{ESP8266 панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} {{Черновик}} =Настройка ESP8266 в…») |
Нет описания правки |
||
Строка 13: | Строка 13: | ||
Для того, чтобы настроить [[ESP8266]] в режим программной точки доступа, нужно всего несколько строчек кода. | Для того, чтобы настроить [[ESP8266]] в режим программной точки доступа, нужно всего несколько строчек кода. | ||
<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> | ||
Строка 49: | Строка 49: | ||
В строчке... | В строчке... | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") | boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 55: | Строка 55: | ||
...поменяйте '''pass-to-soft-AP''' на какой-нибудь осмысленный пароль, а затем загрузите скетч на ESP8266. Теперь откройте монитор порта. Там должно быть примерно следующее: | ...поменяйте '''pass-to-soft-AP''' на какой-нибудь осмысленный пароль, а затем загрузите скетч на ESP8266. Теперь откройте монитор порта. Там должно быть примерно следующее: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Setting soft-AP ... Ready | Setting soft-AP ... Ready | ||
Stations connected = 0 | Stations connected = 0 | ||
Строка 64: | Строка 64: | ||
В мобильном телефон или [[ПК]] откройте список точек доступа, найдите '''ESPsoftAP_01''' и подключитесь к ней. Когда новая станция подключится, это должно отразиться в мониторе порта: | В мобильном телефон или [[ПК]] откройте список точек доступа, найдите '''ESPsoftAP_01''' и подключитесь к ней. Когда новая станция подключится, это должно отразиться в мониторе порта: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Stations connected = 1 | Stations connected = 1 | ||
Stations connected = 1 | Stations connected = 1 | ||
Строка 76: | Строка 76: | ||
Скетч маленький, так что разбор будет несложным. В первой строчке мы подключаем [[ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi|библиотеку ESP8266WiFi]]: | Скетч маленький, так что разбор будет несложным. В первой строчке мы подключаем [[ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi|библиотеку ESP8266WiFi]]: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
#include <ESP8266WiFi.h> | #include <ESP8266WiFi.h> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 82: | Строка 82: | ||
Настройка точки доступа '''ESPsoftAP_01''' выполняется здесь: | Настройка точки доступа '''ESPsoftAP_01''' выполняется здесь: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
cpp boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP"); | cpp boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP"); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 92: | Строка 92: | ||
Можно ли сделать этот скетч еще проще? Конечно! Это можно реализовать через альтернативную версию оператора if-else, как показано ниже: | Можно ли сделать этот скетч еще проще? Конечно! Это можно реализовать через альтернативную версию оператора if-else, как показано ниже: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!" | WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 98: | Строка 98: | ||
Эта строчка вернет '''«Ready»''' (т.е. '''«Готово»''') или '''«Failed!»''' (т.е. '''«Настроить точку доступа не удалось»''') в зависимости от результата функции WiFi.softAP(). Это позволяет существенно сократить размер скетча, не урезая его функциональность. | Эта строчка вернет '''«Ready»''' (т.е. '''«Готово»''') или '''«Failed!»''' (т.е. '''«Настроить точку доступа не удалось»''') в зависимости от результата функции WiFi.softAP(). Это позволяет существенно сократить размер скетча, не урезая его функциональность. | ||
<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> | ||
Версия от 19:56, 23 мая 2023
Черновик |
Настройка ESP8266 в режим программной точки доступа[1]
Пример ниже показывает, как настроить ESP8266 в режим программной точки доступа (т.е. в режим, при котором к ESP8266 смогут подключаться станции). WiFi-сеть, заданная программной точкой доступа, будет идентифицироваться через SSID, заданный при настройке ESP8266. Кроме того, сеть можно защитить паролем. Если пароль не задать, сеть будет считаться открытой (т.е. к ней сможет подключиться кто угодно).
Скетч
Для того, чтобы настроить ESP8266 в режим программной точки доступа, нужно всего несколько строчек кода.
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.print("Setting soft-AP ... ");
// "Настройка программной точки доступа ... "
boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP");
if(result == true)
{
Serial.println("Ready");
// "Готово"
}
else
{
Serial.println("Failed!");
// "Настроить точку доступа не удалось"
}
}
void loop()
{
Serial.printf("Stations connected = %d\n",
WiFi.softAPgetStationNum());
// "Количество подключенных станций = "
delay(3000);
}
Как использовать этот скетч?
В строчке...
boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP")
...поменяйте pass-to-soft-AP на какой-нибудь осмысленный пароль, а затем загрузите скетч на ESP8266. Теперь откройте монитор порта. Там должно быть примерно следующее:
Setting soft-AP ... Ready
Stations connected = 0
Stations connected = 0
...
В мобильном телефон или ПК откройте список точек доступа, найдите ESPsoftAP_01 и подключитесь к ней. Когда новая станция подключится, это должно отразиться в мониторе порта:
Stations connected = 1
Stations connected = 1
...
Если у вас есть еще одна WiFi-станция, подключите и ее тоже. Затем загляните в монитор порта, который теперь должен сообщать, что к точке доступа подключены две станции.
Как это работает?
Скетч маленький, так что разбор будет несложным. В первой строчке мы подключаем библиотеку ESP8266WiFi:
#include <ESP8266WiFi.h>
Настройка точки доступа ESPsoftAP_01 выполняется здесь:
cpp boolean result = WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP");
Если эта операция проходит успешно, функция возвращает true, а если нет, то false. Для того, чтобы напечатать в мониторе порта результат операции («Ready» или «Failed!»), в скетче используется оператор if-else.
Можно ли упростить скетч?
Можно ли сделать этот скетч еще проще? Конечно! Это можно реализовать через альтернативную версию оператора if-else, как показано ниже:
WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!"
Эта строчка вернет «Ready» (т.е. «Готово») или «Failed!» (т.е. «Настроить точку доступа не удалось») в зависимости от результата функции WiFi.softAP(). Это позволяет существенно сократить размер скетча, не урезая его функциональность.
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.print("Setting soft-AP ... ");
// "Настройка программной точки доступа ... "
Serial.println(WiFi.softAP("ESPsoftAP_01", "pass-to-soft-AP") ? "Ready" : "Failed!");
}
void loop()
{
Serial.printf("Stations connected = %d\n",
WiFi.softAPgetStationNum());
// "Количество подключенных станций = "
delay(3000);
}
На мой взгляд, получилось очень симпатично. Если вы в первый раз видите оператор ? :, рекомендую начать пользоваться им прямо сейчас. Он позволяет сделать код более компактным и элегантным.
Итого
Благодаря библиотеке ESP8266WiFi настроить чип ESP8266 в режим программной точки доступа очень просто.
Разобравшись со скетчем в этой статье, можете попробовать скетч посложнее. Он демонстрирует, как получить доступ к точке доступа на базе ESP8266 из браузера.
О функциях для управления точкой доступа на базе ESP8266 читайте в этой статье.