• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Запись файлов в SPIFFS

Pilnikov

Active member
Есть такой плагин Arduino plugin for uploading files to ESP8266 file system он позволяет писать файлы SPIFFS, но только если зверек (ЕСП) подключен к компу кабелем через USB->COM.
А не знает ли кто способа заливки файлов в SPIFFS по воздуху?
З.Ы. Про способ редактирования/заливки из примера знаю, интересует загрузка в "чистую" FS
 

CodeNameHawk

Moderator
Команда форума
Скопируйте из примера httpUpdateSPIFFS
Код:
t_httpUpdate_return ret = ESPhttpUpdate.updateSpiffs("https://server/spiffs.bin");
 

Pilnikov

Active member
Скопируйте из примера httpUpdateSPIFFS
Код:
t_httpUpdate_return ret = ESPhttpUpdate.updateSpiffs("https://server/spiffs.bin");
Я попробовал пример - но чего то мне нифига не понятно как он работает. Точка доступа создается, я к ней цепляюсь - а дальше тишина.
Растолкуйте нубу плиз - что есть https://server, а что есть spiffs.bin?
 

Pilnikov

Active member
Файл с вашими данными.


Имя сервера, который вы создадите и куда положите ваш файл.

Почитайте OTA Update · ESP8266 Arduino Core
Я обновление прошивки через HTTP постиг.
Т.е. обновление возможно только с отдельного сервера? Комп в его роли не могет выступить? А вместо spiffs.bin можно что угодно записывать?
 

bstsoft

Member
Есть такой плагин ... FS
Писать файлы по воздуху самый простой и удобный способ.
2 раза записи из IDE в FS и я понял, что это будет адом, т.к. файлы изменяю часто. Даже написал эмулятор интерфейса на php для быстрого написания html. А потом начал пользоваться тем, что было в примере, путь выглядит так http://192.168.211.180/edit/index.htm. Единственное что там по одному файлу передается. Я уже изучил код и перепишу на выбор нескольких файлов. Файл ace.js я скачал из интернета и локально на FS положил.

Если еще проблему не решил можем на эту тему поговорить. Могу по скайпу показать. Потом могу сделать видео о том как FS пользоваться, если оно конечно кому то надо.
 

Pilnikov

Active member
рассматривается ситуация, когда в результате ошибочных действий пользователя (например изменение flash memory map) после прошивки область SPIFFS оказывается отформатированной и не содержит ни каких файлов. А физический доступ к МК ограничен (в корпусе, под потолком, на улице и т. д... ) Как по воздуху закинуть на чистую пустую SPIFFS файлик? ОТА, будем считать, что работает.
 

bstsoft

Member
ни каких файлов
И тут меня осенило файлы "index.htm и ace.js" которые я забрасывал на FS в папку edit не обязаны там находиться!!!
Вы просто мне открыли глаза.
Поясняю, что можно делать подправив index.htm.

Берем ESP новую или с поврежденной FS. В прошивке я заложил функцию format для новой или на всякий случай. Запускаем на локальном компе index.htm прописываем url нашей ESP и заливаем файлы.
 

enjoynering

Well-known member
в принципе разжал сам. трешачек конечно - тащить целый api Ace (Ajax.org Cloud9 Editor) для такой простой операции как забрасывание файлов на внутрнню флешку esp. а что нибудь простое на jquery есть?

автору все равно спасибо, примите это просто как конструктивную критику.
 

bstsoft

Member
@enjoynering
Вообще то там сам js походу не сильно нужен. Он пригодиться когда быстро файл надо подправить или посмотреть.

Для заливки планирую сделать простой WEB с выбором или папки или файлов по выбору. Сейчас времени на это нет. Хотя все просто как барабан.
 

mishgan

Member
Не получается закачать файлы по воздуху. Пытаюсь так
Код:
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266httpUpdate.h>
void setup() {
  Serial.begin(115200);
  Serial.println();
  WiFi.mode(WIFI_STA);
  WiFi.begin("ssid", "password");
  while (WiFi.status() != WL_CONNECTED) {
  delay (500);
  Serial.print(".");
  }
  Serial.println();
  Serial.println("Update SPIFFS...");
  t_httpUpdate_return ret = ESPhttpUpdate.updateSpiffs("http://selsovet.org/spiffs.bin");
  if(ret == HTTP_UPDATE_OK) {
  Serial.println("Update sketch...");
  ret = ESPhttpUpdate.update("http://selsovet.org/esp8266.bin");
  }
   }
void loop() {

}
После заливки в сериал порту появляются строчки.
..........
Update SPIFFS...
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
ets Jan 8 2013,rst cause:4, boot mode:(1,6)
wdt reset
Загрузка бинарника esp8266.bin не происходит. Что я делаю не так?
 

gerkimuyda

New member
А тут что?
Код:
  Serial.print(" UPDATE: \""+url+"\" ");
  t_httpUpdate_return ret = ESPhttpUpdate.update(url);
  switch(ret) {
    case HTTP_UPDATE_FAILED: Serial.printf("- Failed(%d): %s.\n", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());  break;
    case HTTP_UPDATE_NO_UPDATES:  Serial.print("- no new updates.\n");  break;
  }
А что эти примеры кажуть? Arduino/libraries/ESP8266httpUpdate/examples at master · esp8266/Arduino · GitHub
 
Сверху Снизу