Тысячу раз подумайте прежде чем делать фиксированный IP. Если он вам действительно нужен и без него никуда. Заставьте роутер выдавать плате постоянный IP. Если это не решит проблемы, только тогда добавляйте это в код и на веб страницу.
В восторге от Ваших уроков. Огромный респект. К сожалению в скетч последнего урока не попали FTP и AREST и пришлось их ставить “ручками”. Не пожелание, а скорее просьба добавить к уже почти сформированной “веб-морде” авторизацию. Хочется работать с сервером из интернета, а без авторизации это глупо. Успехов!
ребята возникла проблема при записи в файловою систему(пример из сайта), пробовал на разных версиях arduino ide(1.6.6 и 1.6.8) и на двух пк(на одном чистая система виндовс 7) все время одна и та жэ ошибка
Вот что видает IDE:
Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: processing.app.Sketch.getBuildPath()Ljava/io/File;
at com.esp8266.mkspiffs.ESP8266FS.getBuildFolderPath(ESP8266FS.java:117)
at com.esp8266.mkspiffs.ESP8266FS.createAndUpload(ESP8266FS.java:263)
at com.esp8266.mkspiffs.ESP8266FS.run(ESP8266FS.java:322)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Установите старую библиотеку ESP8266FS-0.1.3zip
С более поздней ESP8266FS-0.3.0zip выдает такие же
ошибки . Также лучше установить Arduino IDE 1.6.5-r5 .
У меня прошивается все скорости до 921600 .
И не парьте себе мозг.
В более поздних IDE нужно будет соблюдать синтаксис C++.
В примере есть не точность в функции saveConfig().
При маленьком сейве – не заметно. При большом и частом – файл записывается пустым {}.
……………………….
json.printTo(jsonConfig); /// – Нужно убрать.
// Открываем файл для записи
File configFile = SPIFFS.open(“/config.json”, “w”);
if (!configFile) {
//Serial.println(“Failed to open config file for writing”);
return false;
}
// Записываем строку json в файл
json.printTo(configFile);
configFile.close(); ///// – Добавить
return true;
}
Размер файла после сохранения 980 байт. Переменные – строки, цифры (устройство – вайфай термометр)
Частота сохранения 3…5 минут.
Через некоторое время 20…60 минут в сохраненном json только {}.
Удаление файла не помогает, новый создается тоже пустой {}.
После перезагрузки всё нормально.
Первое что бы я сделал это не смешивал основные настройки модуля и данные которые вы хотите сохранять. Все это нужно делать в разных файлах. Процедура сохранения данных должна быть другой. И это зависит от конкретной задачи.
Думаю для радиолюбительства не принципиально, где хранить настройки и нужные переменные.
Вопрос только работает ли функция или нет.
Сейчас идут 4-е сутки онлайн, проблем не выявлено.
Здравствуйте, возникла вот такая проблема. При открытии редактора, страница открывается, но на ней ничего нет, кроме верхней заливки и вертикальной полосы, отделяющей файлы от кода. В чём может быть проблема( делал всё, как сказано)?
После запуска скетчей ваших уроков, где предусмотрено создание точки доступа “WIFI”, в случае неудачного подключения к домашнему роутеру, залил другой скетч, из другой темы с другим IP, так-же с подключением к домашнему роутеру.
С удивлением обнаруживаю, что помимо полнофункционального подключения ESP к роутеру клиентом, у меня одновременно присутствует и “фантомная” точка доступа “WIFI” прекрасно работающаяя с новым скетчем, хотя в последнем о ней вообще не упоминалось.
Возможно ли полностью очистить память в ESP, во избежание появления подобных призраков?
Возможно. Нужно в прямую задать режим работы ESP в вашем скеетче. Скорее всего Вы явно не указываете режим. И ESP берет свои последнии настройки из flash.
Посмотрел Ваше видео, попробовал, все работает, спасибо за труд, только вот где продолжение? И если не тяжело, пожалуйста укажите в каком порядке смотреть по мере поступления информации, а то я уже запутался.
У меня JSON файл сохраняется пустым.
Добавил дебаг:
Serial.println(“ssidName json “+json[“ssidName”].as()+” ssidName var “+ _ssid);
Выдаёт значение только _ssid, в json пусто.
Добавил размер буфера 512:
DynamicJsonBuffer jsonBuffer(512);
всё работает.
Подскажите почему появляется ошибка. H:\Sketch\esp8266\02_ESP8266_NEW\Step7-FileConfig\FileConfig.ino: In function ‘bool loadConfig()’:
FileConfig:22:5: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
Начиная с кода для этого видео и во всех последующих скетч перестал загружаться с ошибкой “Ошибка компиляции для платы…” Перебрал все варианты: менял версии ide, версии ядра, платы. Безрезультатно, скетч не загружается.
Друзья, выручайте! Что я делаю не так?
У вас остались старые версии скетча? попробуйте загрузить ту, которая до изменений. Если она пойдет без ошибок, значит проблема в скетче. Возможно вы вставили код криво и где-вышла лишняя фигурная скобка (функция осталась не закрытой или наоборот закрылась раньше времени), у меня такое бывало.
Уважаемый админ! Спасибо за примеры кода, я оказалось весьма просто и понятно.
Мне нужно было сделать простое сохранение настроек (пару переменных) в файл. Добавил в скетч #include и #include (последнюю library скачал), перенес ваши функции FS_init, loadConfig и saveConfig (только удалил ненужные фрагменты), добавил в setup() вызов FS_init(); и loadConfig() и вауля, работает
Добрый день. Я столкнулся с проблемой записи данных в config.json. После первой попытки записи файл пропадает. После перезагрузке ESP файл перезаписывается но не чего не считывается. При попытки зайти на него через браузер там крякозябры. Пробывал на голом скетче записать и считать в Serial хоть что нибуть, тоже крякозябры или квадратики. Может проблема в кодировке. Что делать, подскажите пожалуйста.
В чем рисовать странички под это? чтобы руками не копаться в хтмл…
Ручками и рисовали.
Как сделать свой фиксированный IP при связи с роутером? Чтобы самому его задавать?
Тысячу раз подумайте прежде чем делать фиксированный IP. Если он вам действительно нужен и без него никуда. Заставьте роутер выдавать плате постоянный IP. Если это не решит проблемы, только тогда добавляйте это в код и на веб страницу.
А в чем проблема? роутер свой, максимум там конфликт будет…
Тоже интересно, в чем проблема может быть кроме конфликта ip адресов?
В восторге от Ваших уроков. Огромный респект. К сожалению в скетч последнего урока не попали FTP и AREST и пришлось их ставить “ручками”. Не пожелание, а скорее просьба добавить к уже почти сформированной “веб-морде” авторизацию. Хочется работать с сервером из интернета, а без авторизации это глупо. Успехов!
Здравствуйте .
В 7 уроке в web интерфейсе пароль wifi не могу назначить более 15 :символов.
В чем может быть подвох .
Здравствуйте.
“Подвох” в файле index.html в атрибуте pattern для этого поля.
ребята возникла проблема при записи в файловою систему(пример из сайта), пробовал на разных версиях arduino ide(1.6.6 и 1.6.8) и на двух пк(на одном чистая система виндовс 7) все время одна и та жэ ошибка
Вот что видает IDE:
Exception in thread “AWT-EventQueue-0” java.lang.NoSuchMethodError: processing.app.Sketch.getBuildPath()Ljava/io/File;
at com.esp8266.mkspiffs.ESP8266FS.getBuildFolderPath(ESP8266FS.java:117)
at com.esp8266.mkspiffs.ESP8266FS.createAndUpload(ESP8266FS.java:263)
at com.esp8266.mkspiffs.ESP8266FS.run(ESP8266FS.java:322)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Установите старую библиотеку ESP8266FS-0.1.3zip
С более поздней ESP8266FS-0.3.0zip выдает такие же
ошибки . Также лучше установить Arduino IDE 1.6.5-r5 .
У меня прошивается все скорости до 921600 .
И не парьте себе мозг.
В более поздних IDE нужно будет соблюдать синтаксис C++.
Все и так работает с более поздними версиями. Только одно требование. Не иметь в путях кириллицу.
В примере есть не точность в функции saveConfig().
При маленьком сейве – не заметно. При большом и частом – файл записывается пустым {}.
……………………….
json.printTo(jsonConfig); /// – Нужно убрать.
// Открываем файл для записи
File configFile = SPIFFS.open(“/config.json”, “w”);
if (!configFile) {
//Serial.println(“Failed to open config file for writing”);
return false;
}
// Записываем строку json в файл
json.printTo(configFile);
configFile.close(); ///// – Добавить
return true;
}
Напишите условия когда происходит сбой. Какие должны быть параметры в полях чтоб увидеть эту ошибку.
Размер файла после сохранения 980 байт. Переменные – строки, цифры (устройство – вайфай термометр)
Частота сохранения 3…5 минут.
Через некоторое время 20…60 минут в сохраненном json только {}.
Удаление файла не помогает, новый создается тоже пустой {}.
После перезагрузки всё нормально.
Сделал манипуляции, как описал – всё заработало.
Первое что бы я сделал это не смешивал основные настройки модуля и данные которые вы хотите сохранять. Все это нужно делать в разных файлах. Процедура сохранения данных должна быть другой. И это зависит от конкретной задачи.
Думаю для радиолюбительства не принципиально, где хранить настройки и нужные переменные.
Вопрос только работает ли функция или нет.
Сейчас идут 4-е сутки онлайн, проблем не выявлено.
Здравствуйте, возникла вот такая проблема. При открытии редактора, страница открывается, но на ней ничего нет, кроме верхней заливки и вертикальной полосы, отделяющей файлы от кода. В чём может быть проблема( делал всё, как сказано)?
Скорее всего это связано с тем, что у вас нет интернет соединения. Редактор использует внешние файлы.
После запуска скетчей ваших уроков, где предусмотрено создание точки доступа “WIFI”, в случае неудачного подключения к домашнему роутеру, залил другой скетч, из другой темы с другим IP, так-же с подключением к домашнему роутеру.
С удивлением обнаруживаю, что помимо полнофункционального подключения ESP к роутеру клиентом, у меня одновременно присутствует и “фантомная” точка доступа “WIFI” прекрасно работающаяя с новым скетчем, хотя в последнем о ней вообще не упоминалось.
Возможно ли полностью очистить память в ESP, во избежание появления подобных призраков?
Признаться, при нескольких попытках еще раз повторить подобный эффект, положительного результата достигнуто не было.
Возможно. Нужно в прямую задать режим работы ESP в вашем скеетче. Скорее всего Вы явно не указываете режим. И ESP берет свои последнии настройки из flash.
Посмотрел Ваше видео, попробовал, все работает, спасибо за труд, только вот где продолжение? И если не тяжело, пожалуйста укажите в каком порядке смотреть по мере поступления информации, а то я уже запутался.
Интересно посмотреть про время и прошивку по воздуху
Давненько не было видео. Мужики, поддержим автора финансами. Я 100 рублей кинул.
Прошло две недели. Серега, кинь еще 100 рублей. 😉
У меня JSON файл сохраняется пустым.
Добавил дебаг:
Serial.println(“ssidName json “+json[“ssidName”].as()+” ssidName var “+ _ssid);
Выдаёт значение только _ssid, в json пусто.
Добавил размер буфера 512:
DynamicJsonBuffer jsonBuffer(512);
всё работает.
Ошибка компиляции для платы Generic ESP8266 Module
спотыкается на #include
пока ответят разберусь самостоятельно, но все-же…
Все скетчи проверены для версий ядра 2.3.0. Arduino IDE 1.6.13
Подскажите почему появляется ошибка. H:\Sketch\esp8266\02_ESP8266_NEW\Step7-FileConfig\FileConfig.ino: In function ‘bool loadConfig()’:
FileConfig:22:5: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
Всего лишь откатить версию либы ArduinoJson до 5.13.1 и все собирается.
И на ArduinoJson 5.13.3 тоже работает
Та же проблема
Начиная с кода для этого видео и во всех последующих скетч перестал загружаться с ошибкой “Ошибка компиляции для платы…” Перебрал все варианты: менял версии ide, версии ядра, платы. Безрезультатно, скетч не загружается.
Друзья, выручайте! Что я делаю не так?
У вас остались старые версии скетча? попробуйте загрузить ту, которая до изменений. Если она пойдет без ошибок, значит проблема в скетче. Возможно вы вставили код криво и где-вышла лишняя фигурная скобка (функция осталась не закрытой или наоборот закрылась раньше времени), у меня такое бывало.
Уважаемый админ! Спасибо за примеры кода, я оказалось весьма просто и понятно.
Мне нужно было сделать простое сохранение настроек (пару переменных) в файл. Добавил в скетч #include и #include (последнюю library скачал), перенес ваши функции FS_init, loadConfig и saveConfig (только удалил ненужные фрагменты), добавил в setup() вызов FS_init(); и loadConfig() и вауля, работает
всем привет !!! не могу понять почему при компиляции выходит такая ошибка подскажите пожалуйста ‘DynamicJsonBuffer’ was not declared in this scope
Добрый день. Я столкнулся с проблемой записи данных в config.json. После первой попытки записи файл пропадает. После перезагрузке ESP файл перезаписывается но не чего не считывается. При попытки зайти на него через браузер там крякозябры. Пробывал на голом скетче записать и считать в Serial хоть что нибуть, тоже крякозябры или квадратики. Может проблема в кодировке. Что делать, подскажите пожалуйста.
Неплохо было бы внедрить параметр WiFi.persistent(false) для увеличения срока жизни памяти flash esp.