WifiManager и WiFi функционально

Я рассматриваю возможность использования wifiManager в основном для того, чтобы иметь возможность не жестко кодировать кредитные данные WiFi. Но в моем текущем коде я использую функции WiFi как WiFi.setAutoReconnect(true) и WiFi.status() != WL_CONNECTED

Как это можно сделать с помощью WifiManager?

, 👍0


2 ответа


Лучший ответ:

1

Нет. WifiManager делает все это за вас. Вам не нужно ничего подобного в вашем коде. Просто следуйте примерам и читайте документацию.

Но если вы хотите, вам просто нужно помнить, что WifiManager — это просто библиотека, которая настраивает WiFi для вас. Если вы хотите запросить или изменить настройки Wi-Fi, вы можете это сделать точно так же, как и сейчас. Эти два понятия не исключают друг друга.

,

Я не нашел ни одного примера, чтобы проверить, подключен ли, @Guy . D

Вы не «проверяете, подключены ли». Он подключается или дает вам точку доступа с порталом. В последнем случае он блокируется, ожидая, пока вы его настроите. "Проверки" нет. Если ваш код работает, значит, он подключен. Все примеры показывают это., @Majenko

Я понимаю, что вы говорите, но время от времени происходят отключения, и я не хочу, чтобы он автоматически переходил в режим AP. сколько уходит перед входом в режим AP / время, чтобы попытаться повторно подключиться?, @Guy . D

«WifiManager» — это просто библиотека, использующая объект «WiFi». Это не замена. Если вы хотите также взаимодействовать с WiFi, вас ничто не остановит. Вы можете установить автоматическое переподключение . Вы можете запросить статус. Так же, как вы., @Majenko

ХОРОШО. Должен ли я также определить экземпляр Wifi?, @Guy . D

Нет, уже есть., @Majenko


1

Вот рабочий пример на моем Wemos D1 Mini. Он поддерживает точку доступа до тех пор, пока вы не предоставите учетные данные для своей локальной сети, затем отображает IP-адрес DHCP на ЖК-дисплее 16x2 и запускает веб-сервер. После того, как учетные данные будут сохранены, он не будет поддерживать точку доступа, он просто переподключится и выполнит основной цикл () скетча. Чтобы принудительно перезапустить точку доступа, вам нужно вызвать метод ESP.reset();, чтобы сбросить сохраненные учетные данные и перезагрузить Wemos.

#include <LiquidCrystal_PCF8574.h>
#include <ESP8266WiFi.h>

#include <WiFiManager.h>
#include <ESP8266WebServer.h>
#include <Wire.h>

WiFiClient wemosCL;

ESP8266WebServer server(80);

const int led = LED_BUILTIN;

LiquidCrystal_PCF8574 lcd(0x38);

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/html", "<html><head><title>ESP8266 Demo</title><style>body{background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088;}</style></head><body><h1>Hello from ESP8266!</h1><p>IP Addr: " +
          WiFi.localIP().toString() + "<p></body></html>");

  digitalWrite(led, 0);
}

void handleNotFound() {
  digitalWrite(led, 1);
  String message = "File Not Found\n\n";
  message += "URI: ";
  message += server.uri();
  message += "\nMethod: ";
  message += (server.method() == HTTP_GET) ? "GET" : "POST";
  message += "\nArguments: ";
  message += server.args();
  message += "\n";
  for (uint8_t i = 0; i < server.args(); i++) {
    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
  digitalWrite(led, 0);
}

void setup(void) {
  Serial.begin(115200);
  WiFiManager wifiManager;
  wifiManager.autoConnect("Wemos", "configuration");
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);

  lcd.begin(16, 2);
  lcd.setBacklight(255);
  lcd.print("I'm alive");

  // Ждем подключения
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    lcd.setCursor(0, 0);
    lcd.print(".");
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Status:Connected");
  lcd.setCursor(0, 1);
  lcd.print("IP:");
  lcd.print(WiFi.localIP());

  server.on("/", handleRoot);

  server.onNotFound(handleNotFound);

  server.begin();
}

void loop(void) {
  server.handleClient();
}
,

Привет, Дуги, я что-то упустил, когда строка кода достигает wifimanager в setup, она ищет только сохраненные учетные данные? из того, что я понял в ответе Меженко, как только он прошел эту строку, Wi-Fi подключен, поэтому я не понимаю, почему раздел под названием «\\ ожидание подключения» актуален. Я тут что-то не понимаю :), @Guy . D

«Ожидание подключения» происходит после ввода учетных данных для моего домашнего Wi-Fi, поскольку он переключается из режима «AP» в режим «STA», а затем мой маршрутизатор выполняет рукопожатие DHCP. Это требует некоторого времени для запуска., @Dougie

ХОРОШО. и при следующей загрузке ... когда учетные данные были введены при загрузке ранее и просто использовались при текущей загрузке ... все еще при достижении \\ ждать подключения - в этот момент подключен ли Wi-Fi?, @Guy . D