Jump to content
ilmeko

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

Recommended Posts

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

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By 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
      Ставим галочку напротив своей сети и вводим пароль от нее.
      Нажимаем на пульте кнопку вниз.
      Ждем несколько секунд и вуаля ля ля ля!
      Все уже настроено.




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

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

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

      Прошу писать в ЛС, а также на почту. sochi-velo@mail.ru
    • By 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
  • Сообщения

    • Глубоко копаете. Суть проблемы в подборе хэдфонов к сабжу а не таскать вместе со смартом ещё и звуковуху. Согласно приводимой ссылке для сабжа импеданс хэдфонов должен быть 8-10ом. Предлагаемые 60омные Косы, какими бы они хорошими не были, для сабжа однозначно не подходят. В макс про м2 вместо msm8953 стоит sdm660 поэтому и звук лучше. Буззер 30ом. Во многих смартах с двумя динами полифонический динамик (буззер) с меньшим сопротивлением чем у голосового (войсера). Например измерил в том же hct115 - 8ом и 102ома. Поэтому он и орёт громче чем голосовой и 32омные наушники а 60омные еле слышно. У ART_ME такая же ситуация.
    • у вас не стабилизированный ИИП - потому он здесь не поможет - чтоб помог - нужно кидать ДГС на напряжения - Плюс - Минус - относительно общего - тогда он не даст взлететь напряжению - динамическая стабилизация, ставьте стабилизацию - под нее этот ИИП заточен.имхо.
    • Фазировка правильная.Пробовал по другому-там вообще ужОс.   Сейчас к сожалению нет.
    • потому что не работает ДГС - это его функция ,имхо.
    • После перемотки транса напряжения на хх +-33в.То плечо,которое под нагрузкой 2-3А,выдает 28в,в соседнем плече ессно повышается ровно на падение напряжения в первом,т.е.на 5в.(38в)Если перекинуть нагрузку на второе плечо,всё с точностью наоборот.Что интересно упадет на 5в,а дальше стабильно держит.Хрень какая-то непонятная,в первый раз такое.
  • Покупай!

×
×
  • Create New...