Доброго времени суток всем.
Начал экспериментировать с WiFi модулем ESP8266. Потребовалась необходимость производить запись и чтение в постоянную память данного модуля, для сохранения настроек сети. Но код не отрабатывает должным образом. Имя (ssid) сети содержит нижнее подчеркивание, так вот этот символ не сохраняется в памяти, при последующем чтении его как будто и не было.
void setup() {
//Подключаемся к сети с сахраненными настройками
WiFi.begin(EEPROM_read(0,32).c_str(), EEPROM_read(32,64).c_str());
Serial.print("Connecting to ");
Serial.println(EEPROM_read(0,32).c_str());
// Проверяем подключение
uint8_t i = 0;
while (WiFi.status() != WL_CONNECTED && i++ < 20)
{
Serial.print(".");
delay(500);
}
if (i == 21) { // Если подключение не произошло, то:
Serial.println("");
Serial.print("Could not connect to ");
Serial.println(EEPROM_read(0,32).c_str());
delay(500);
WiFi.disconnect(); // Отключаем WIFI
WiFi.mode(WIFI_AP);// Меняем на режим точки доступа
WiFi.softAPConfig(apIP, apIP,(255, 255, 255, 0));// Задаем настройки сети
WiFi.softAP(_ssidAP, _passwordAP);// Включаем WIFI в режиме точки доступа
Serial.println("");
Serial.print("AP IP address: ");
Serial.println(WiFi.softAPIP());
delay(500);
char* _ssid = "K_W"; //Переменная для хронения ssid
char* _password = "1234"; //Переменная для хронения password
EEPROM_write(_ssid, 0); //Пишем ssid в eeprom
EEPROM_write(_password, 32); //Пишем password в eeprom
delay(500);
Serial.println(EEPROM_read(0, 32));
Serial.println(EEPROM_read(32, 64));
}
}
void EEPROM_write(String buffer, int N) //Запись в eeprom
{
EEPROM.begin(512);
delay(10);
for (int L = 0; L < 32; ++L)
{
EEPROM.write(N + L, buffer[L]);
}
EEPROM.commit();
}
String EEPROM_read (int min, int max) //Чтение eeprom
{
EEPROM.begin(512);
delay(10);
String buffer;
for (int L = min; L < max; ++L)
if (isAlphaNumeric(EEPROM.read(L)))
buffer += char(EEPROM.read(L));
return buffer;
}
Подскажите, что я делаю не так? Весь код отрабатывет должным образом, кроме записи и/или чтения этого злаполучного нижнего подчеркивания(K_W)
Ответ в порт после перезагрузки:
Connecting to KW
.....................
Could not connect to KW
AP IP address: 192.168.4.1
KW
1234
Сменить настройки в роутере не выход, хотя и проще.