ESP8266:Прошивки/Arduino/Библиотеки/Библиотека ESP8266WiFi/Класс точки доступа/Настройка ESP8266 в режим программной точки доступа
Настройка 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 читайте в этой статье.