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 LodestaRgr
      Доброго времени суток, форумчане. У меня мало опыта в микроэлектронике, прошу знающих помочь и подсказать?
      Идея сделать из обычных весов, wi-fi IP весы по аналогу CAS для подключения с торговому оборудованию по средствам локальной сети.
      За базу взял весы ГАРАНТ ВПС-40М




      http://www.datasheet-pdf.com/PDF/SDI5209T-Datasheet-SOLIDIC-1238977
      Подключение к локальной сети через Wi-Fi пытаюсь реализовать при помощи платформы NodeMCU на основе модуля ESP8266 (аналог Arduino c модулем wifi)

      Проблем с подключением по WiFi к торговому оборудованию (выбираю модель IP весы производства CAS) не возникло, программа получает вес который я указываю.
      Не могу разобраться как получить нужный сигна (сам вес от весом) от контроллера SDI5209T.
      На сколько я понял он использует интерфейс I2C на ножках 3 и 5. (опыта в работе с I2C еще не было)
      Подключаю его к NodeMCU (ножки GPIO 0, GPIO 4 - напряжения просто включаю весы), запускаю скетч сканера I2C портов
      https://www.instructables.com/id/ESP8266-I2C-PORT-and-Address-Scanner/
      и каждый раз получает разные адреса устройств по 26 по 4, 5 и т.д. т.е.
      Помогите, может советом, как мне словить сигнал веса с данного контроллера?
       
    • 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
×
×
  • Create New...