WifiManager и WiFi функционально
Я рассматриваю возможность использования wifiManager
в основном для того, чтобы иметь возможность не жестко кодировать кредитные данные WiFi.
Но в моем текущем коде я использую функции WiFi как WiFi.setAutoReconnect(true)
и WiFi.status() != WL_CONNECTED
Как это можно сделать с помощью WifiManager
?
@Guy . D, 👍0
2 ответа
Лучший ответ:
Нет. WifiManager делает все это за вас. Вам не нужно ничего подобного в вашем коде. Просто следуйте примерам и читайте документацию.
Но если вы хотите, вам просто нужно помнить, что WifiManager — это просто библиотека, которая настраивает WiFi для вас. Если вы хотите запросить или изменить настройки Wi-Fi, вы можете это сделать точно так же, как и сейчас. Эти два понятия не исключают друг друга.
Вот рабочий пример на моем 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
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- ESP8266 на Wi-Fi без пароля, возможно?
- ESP8266 Аналоговое чтение мешает Wi-Fi?
Я не нашел ни одного примера, чтобы проверить, подключен ли, @Guy . D
Вы не «проверяете, подключены ли». Он подключается или дает вам точку доступа с порталом. В последнем случае он блокируется, ожидая, пока вы его настроите. "Проверки" нет. Если ваш код работает, значит, он подключен. Все примеры показывают это., @Majenko
Я понимаю, что вы говорите, но время от времени происходят отключения, и я не хочу, чтобы он автоматически переходил в режим AP. сколько уходит перед входом в режим AP / время, чтобы попытаться повторно подключиться?, @Guy . D
«WifiManager» — это просто библиотека, использующая объект «WiFi». Это не замена. Если вы хотите также взаимодействовать с
WiFi
, вас ничто не остановит. Вы можете установить автоматическое переподключение . Вы можете запросить статус. Так же, как вы., @MajenkoХОРОШО. Должен ли я также определить экземпляр
Wifi
?, @Guy . DНет, уже есть., @Majenko