Загрузить параметры подключения к wi-fi с файла
- Войдите на сайт для отправки комментариев
Пт, 08/11/2019 - 17:41
Добрый день! Есть желание создать возможность сохранить настройки подключения в файл, потом при запуску esp их считать. В перспективе будет создана веб страница для редактирования этих данных. Ну возникла проблема, данные считать удалось, ну что-то не хочет подключать. Если параметры прописать в переменных, все отлично подключает. Где я накосячил? Спасибо!
#include "FS.h" #include <ESP8266WiFi.h> void setup() { Serial.begin(115200); // always use this to "mount" the filesystem bool result = SPIFFS.begin(); Serial.println("SPIFFS opened: " + result); // this opens the file "f.txt" in read-mode File f = SPIFFS.open("/wi-fi.txt", "r"); if (!f) { Serial.println("File doesn't exist yet. Creating it"); // open the file in write mode File f = SPIFFS.open("/wi-fi.txt", "w"); if (!f) { Serial.println("file creation failed"); } // now write two lines in key/value style with end-of-line characters f.println("router_it"); f.println("0472454294"); } else { // we could open the file String ssid = ""; String pass = ""; while(f.available()) { //Lets read line by line from the file String line = f.readStringUntil('\n'); Serial.println(line); if(ssid == "") ssid = line; else pass = line; } //задать вручную, все работает //ssid = "router_it"; //pass = "0472454294"; // We start by connecting to a WiFi network Serial.print("Connecting to :"); Serial.println(ssid); Serial.println(pass); WiFi.mode(WIFI_STA); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } f.close(); } void loop() { // nothing to do for now, this is just a simple test }
При запуску:
router_it
0472454294
Connecting to :router_it
0472454294
....................................
сдаётся мне, что ssid = "router_it\r\n", а pass = "0472454294\r\n"
так, зараз попробуем сделать substring
https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/trim/
А не, сорри, вроде этот трим только пробелы удаляет, \r\n оставляет. привык я к trim()-у на высокоуровневых языках, более продвинутому :)
Спасибо! trim() пробывал, не помогло, нужно убрать переход.
Вот рабочая заготовка, когда сделаю веб страничку выложу готовый шаблон.
При запуску:
Ну, в конце пароля \r то уберите. Что он там делает?
Вот готовый вариант с возможности изменять настройки подключения.
Если в течении 50 сек. не удалось подключится к сети, запускаем точку доступа для настройки, при первом запуске тоже.
Как то так.