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 читайте в этой статье.

См.также

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