• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос не могу отключить вещание SSID

Sync

New member
Приветствую всех, начал осваивать 8266 с платы WeMos D1 соответственно в среде arduino IDE пишу. Для начала решил не изобретать велосипед и сделать вайфайную розетку с несколькими каналами и управлением через web морду. Слепил, вроде всё работает. И решил сделать конфигуратор, чтоб при зажатии определённой кнопки плата грузилась в режиме точки доступа, а после конфигурирования переключалась в клиента. Но тут возникла проблема. Я сделал точку доступа (из примера), всё нормально. Но когда переключил плату в клиента и зашил скетч, то вещание SSID точки доступа продолжилось. К ней даже можно подключиться, хотя сама плата клиентом висит на роутере. Дальше больше, я прошил просто blink из примеров, даже не подключая никаких библиотек, SSID продолжает вещаться. Я могу его сконфигурировать (переименовать, назначить/снять пароль, сконфигурировать сеть) но не могу отключить вещание. В чём дело?
 

tretyakov_sa

Moderator
Команда форума
Я могу его сконфигурировать (переименовать, назначить/снять пароль, сконфигурировать сеть) но не могу отключить вещание. В чём дело?
Прошейте скетч с любым кодом где WiFi отключается принудительно. Затем можно заливать любой другой без использования сети.
 

Sync

New member
Прошейте скетч с любым кодом где WiFi отключается принудительно. Затем можно заливать любой другой без использования сети.
И тогда при поднятии клиента SSID вещаться уже не будет? Т.е. при каждом переключении с AP на клиента нужно глушить wifi и поднимать его, я правильно понял?
 

tretyakov_sa

Moderator
Команда форума
И тогда при поднятии клиента SSID вещаться уже не будет? Т.е. при каждом переключении с AP на клиента нужно глушить wifi и поднимать его, я правильно понял?
Все зависит от логики вашей программы. Какой режим вы задаете вот например:

Код:
void WIFIinit() {
  // Попытка подключения к точке доступа
  WiFi.mode(WIFI_STA);
  byte tries = 11;
  WiFi.begin(_ssid.c_str(), _password.c_str());
  // Делаем проверку подключения до тех пор пока счетчик tries
  // не станет равен нулю или не получим подключение
  while (--tries && WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(1000);
  }
  if (WiFi.status() != WL_CONNECTED)
  {
    // Если не удалось подключиться запускаем в режиме AP
    Serial.println("");
    Serial.println("WiFi up AP");
    StartAPMode();
  }
  else {
    // Иначе удалось подключиться отправляем сообщение
    // о подключении и выводим адрес IP
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }
}

bool StartAPMode()
{ // Отключаем WIFI
  WiFi.disconnect();
  // Меняем режим на режим точки доступа
  WiFi.mode(WIFI_AP);
  // Задаем настройки сети
  WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
  // Включаем WIFI в режиме точки доступа с именем и паролем
  // хронящихся в переменных _ssidAP _passwordAP
  WiFi.softAP(_ssidAP.c_str(), _passwordAP.c_str());
  return true;
}
 
  • Like
Реакции: Sync
Сверху Снизу