D1 mini/esp8266 WifiManager
Итак, у меня есть D1 mini, который я хочу подключить к Wi-Fi. Я нашел в Интернете следующий код, который должен запускать веб-сервер, который вы можете посетить, а затем подключиться к выбранному Wi-Fi через веб-сайт. Затем он запомнит настройки и попытается подключиться к этому Wi-Fi в следующий раз, прежде чем запустить веб-сервер — это как раз то, что мне нужно! Проблема в том, что когда я подключаюсь к Wi-Fi, d1 mini думает, что так и было, но когда я захожу на свой маршрутизатор и проверяю, он не подключен.
Я не могу понять, почему он думает, что подключен, но это не так. Может ли кто-нибудь мне помочь?
#include <FS.h> //это должно быть первым, иначе все рухнет и сгорит...
#include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h> //https://github.com/tzapu/WiFiManager
void setup() {
Serial.begin(115200);
Serial.println();
//WiFiManager
WiFiManager wifiManager;
//сбрасываем настройки - для тестирования
wifiManager.resetSettings();
IPAddress _ip = IPAddress(192, 168, 0, 35);
IPAddress _gw = IPAddress(192, 168, 0, 1);
IPAddress _sn = IPAddress(255, 255, 255, 0);
wifiManager.setSTAStaticIPConfig(_ip, _gw, _sn);
if (!wifiManager.autoConnect("WemosAP", "ConfigureMe")) {
Serial.println("failed to connect, we should reset as see if it connects");
delay(3000);
ESP.reset();
delay(5000);
}
//если вы доберетесь сюда, значит, вы подключены к Wi-Fi
Serial.println("connected...yeey :)");
Serial.println("local ip");
Serial.println(WiFi.localIP());
}
void loop() {
}
Кстати: IP-адрес 192.168.0.35 свободен, и я проверил и шлюз, и маску подсети на своем ноутбуке, запустив ipconfig в cmd.
@LEMON8, 👍0
Обсуждение1 ответ
Лучший ответ:
Похоже, что код просто сломан. Я нашел пример из библиотеки WifiManager, который называется «автоподключение». Кажется, это делает то же самое, просто тоже работает:
#include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
//нужно для библиотеки
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include "WiFiManager.h" //https://github.com/tzapu/WiFiManager
void configModeCallback (WiFiManager *myWiFiManager) {
Serial.println("Entered config mode");
Serial.println(WiFi.softAPIP());
//если вы использовали автоматически сгенерированный SSID, распечатайте его
Serial.println(myWiFiManager->getConfigPortalSSID());
}
void setup() {
// поместите сюда свой код установки для однократного запуска:
Serial.begin(115200);
//WiFiManager
//Локальная инициализация. Как только его дела будут завершены, нет необходимости держать его при себе.
WiFiManager wifiManager;
//сбрасываем настройки - для тестирования
//wifiManager.resetSettings();
//устанавливаем обратный вызов, который вызывается при сбое подключения к предыдущему Wi-Fi и переходе в режим точки доступа
wifiManager.setAPCallback(configModeCallback);
// извлекает ssid и передает его и пытается подключиться
//если не подключается, то запускает точку доступа с указанным именем
//здесь "АвтоподключениеAP"
//и переходим в цикл блокировки в ожидании конфигурации
if(!wifiManager.autoConnect()) {
Serial.println("failed to connect and hit timeout");
//сброс и попытка еще раз, или, может быть, переводим его в глубокий сон
ESP.reset();
delay(1000);
}
//если вы доберетесь сюда, значит, вы подключены к Wi-Fi
Serial.println("connected...yeey :)");
}
void loop() {
// поместите сюда свой основной код для многократного запуска:
}
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
удалить
resetSettings()
, @Juraj