ilmeko

Запись/чтение eeprom ESP8266(Arduino IDE)

1 сообщение в этой теме

ilmeko    2

Доброго времени суток всем.

Начал экспериментировать с  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

 

Сменить настройки в роутере не выход, хотя и проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: ALEX PUCHKOV
      Накидал на выходных...
      Радио на базе esp8266 1.5уе
      Mpc602 фильтр 0.5 уе
      Pam8403 усилитель 0.5уе
      Lds3985 стабилизатор 3.3v 300mA 0.5уе
      Ик пульт с фотоприемником для ардуино 0.5уе
      Итог ~3.5уе Получаем..

      Активация всех функций бесплатная только за фото собранного Radiosan.
      Заходим 192.168.4.1/radiosan
      Шлем фото и 4 кода - получаем 4 кода и наслаждаемся.
      Коммерческое использование запрещено!

      20 станций записано и все можно менять.
      Обучение любого пульта. Но уже прописан пульт от Ардуино.
      Питание от USB или 5V 1A. одна колонка и 2А если две!
      Выход 2 по 3W.
      Управление громкостью.
      Вход и выход в вебморду по нажатию кнопки с пульта.
      Выключение с памятью канала и громкости.
      Авто перезагрузка при потере потока или wifi.
      Код хорошо оптимизирован что позволило сделать радио очень шустрым.
      Как по мне всякие календари и часы пихать в радио не вижу смысла. Так как радио должно просто играть.
      При переключениях звук приглушается но только при повторении моей платы.
      Светодиод красный. Фоторезистор 10к. Стоит над светодиодом нос в нос. Сверху заливается черным термоклеем.
      Качественный звук с большим динамическим диапазоном.
      Фильтр Баттерворта шестого порядка.
      Срез фильтра -60 дбм на 44 кгц давит антиалиасный и гранулярный шум
      погрешность номиналов 1% для идеальной работы но можно ставить до 5%
      это лучше чем без него вовсе.
       

      Сборка 
      Гербер в архиве для заказа плат https://jlcpcb.com За 2$ 10 плат!!!
      и так же Лайоут для тех кому подправить что надо.

      Прошивка в архиве. https://drive.google.com/file/d/18ufDH56q6Dl0CltF_Tj1N5Ws9KNQGZ_j/view?usp=sharing
      Распаковать в корень диска. Запустить ESPFlashDownloadTool_v3.3.6.exe
      Вот я видос делал как залить прошивку!

      После прошивки ждем 2 мин не отключаем питание, пока происходит конфигурация и обновление списка станций.
      Сканируем wifi сети и подключаемся к RADIOSAN пароль 12345678
      Заходим на 192.168.4.1
      Ставим галочку напротив своей сети и вводим пароль от нее.
      Нажимаем на пульте кнопку вниз.
      Ждем несколько секунд и вуаля ля ля ля!
      Все уже настроено.




      э
       
    • Автор: voltex
      Всем привет! Подскажите, пожалуйста, как правильно считать данные с внешней eeprom по шине spi, в данном случае 25LC256.
      Написал код ссылаясь на даташит. Собрал схему в протеусе, подключил spi отладчик и вот что получил в итоге. Так же не могу проверить получается записать данные в память или нет. Весь код прикрепил.
       

      main.c
    • Автор: AronIIStone
      Добрый день
      Возникла ситуация: имеется ноутбук IBM ThinkPad t20 с запароленым Bios. Пароль никто не помнит, но он зашит в 24rf08. Его можно прочитать програмкой для считывания данной микросхемы, но для этого нужен программатор. Можно ли использовать в качестве такого программатора Ардуино, чтобы он вопринимался этой программой как надо, и если можно, то как нужно подключить их и какой скетч залить в ардуинку? 
      Саму программу выложу чуть позже, если необходимо - с мобильника сижу. 
      Спасибо 
    • Автор: Stereolight
      Добрый день всем! 
      Стоит задача разработать небольшую простенькую плату, с фиксированными размерами и формой, на которой требуется разместить 
      1. преобразователь ac-dc5v,3.3v, 
      2. твердотельные или обычные реле 2-3 шт 
      3. разводку для микроконтроллера esp8266.
      За основу берем уже готовое устройство одного китайского бренда, перенимаем все лучшее, ненужное выбрасываем и все. Подробности при личном общении.

      В последующем будут ставиться новые задачи, поэтому планируем долговременное сотрудничество.
      Оплата за каждый проект по отдельности, по договоренности.

      Прошу писать в ЛС, а также на почту. sochi-velo@mail.ru
    • Автор: Oleg031
      Прошу Вашей помощи уважаемые форумчане!
      Автором В. Нефёдовым, г. Брянск была предложена интересная схема "Универсального микроконтроллерного зарядного устройства", http://www.radioradar.net/radiofan/power_supply/microcontroller_universal_charger.html#comment,
      которая была мной повторена. Схема рабочая, но по причине моей неграмотности в программировании - работает у меня не корректно! А именно не могу правильно записать при программировании через eXtreme Burner в EEPROM приведенные им коды: по адресу 00H - 2СН, по адресу 01H - 03H, по адресу 02H - 0BEH, по адресу 03H -64H. Не понимаю что, как и куда писать. Не судите строго!
      Прошу либо скиньте фотку как это должно выглядеть в программе, либо файл .eep