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

    • Guest Александр
      By Guest Александр
      Ребят, необходимо придумать каким образом в режиме реального времени переключать две флешки 29f400 использующихся в эбу двигателем авто, чтобы можно было менять прошивку не глуша двигавтель
    • By Николай0013
      здравствуйте, кто-нибудь добавлял микросхемы памяти с помощью device data file editor ? Пользуюсь pickit2 уже давно, прошивал и пики, и авр, и микросхемы памяти 24LC01. Но потребовалось прошить 25Q16. Может кто подсказать статью по этой теме, а то только про добавление самих pic-контроллеров встречается.
    • 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
×
×
  • Create New...