Шаг4 – FSWebServer

Программирование по порядку.
В этом скетче, модуль становится Web сервером в который можно в любой момент добавить новые web страницы, файлы хранятся во встроенной файловой системе.

Скетч: step4-fswebserver

39 мыслей о “Шаг4 – FSWebServer”

  1. Доброго дня.
    Столкнулся с такой проблемой. При установке в настройках Arduino IDE соотношения размера памяти для скетча и размера раздела файловой системы как 4M (3M SPIFFS), и попытке записать в модуль больше чем 1M, модуль уходит в глубокую несознанку, бьёт файлы и в общем то становится не работоспособным. Прошивать его после этого получается только через COM порт.

    Хотелось бы узнать поподробнее, о том, как можно использовать больше объёма встроенной памяти для файлов.
    П.С.: у меня ESP12F.
    П.П.С: то что можно жать файлы GZIP знаю, меня интиресует именно возможность отдать больше места встроенной памяти под хранение файлов.

    1. Скорее всего есть косяк в настройках плат. Я делал так переключался в на плату Wemos D1 и заливал файловую систему и скетч.

    2. Здравствуйте.
      Столкнулся с подобной проблемой. У меня плата Wemos D1 mini Pro 16 Mb. Попытался залить файловую систему, процедура окончилась ошибкой и в плату теперь не получается залить ни один скетч….
      Arduino IDE выдает ошибки:
      warning: espcomm_sync failed
      error: espcomm_open failed
      error: espcomm_upload_mem failed
      error: espcomm_upload_mem failed

      Кто-нибудь может подсказать как оживить плату?

      1. У вас перестал работать USB-UART. C wemos такое бывает. Принудительно подтяните D3 к земле, сделайте сброс кнопкой. Попробуйте залить скетч заново.

  2. Здравствуйте!
    Автор молодец, но не совсем пойму для кого уроки. Для тех кто понимает им это не интересно, а для тех кто учится автор мало объясняет (это отступление). Для тех у кого не пошел скетч, посмотрите, возможно у вас флеш не 4 мегабайта, поэтому и не работает (для работы достаточно и 1 – проверено, и даже 512к если правильно разметить флеш) так же в описании нет ссылки на плагин esp8266fs для загрузки файлов ( https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.3.0/ESP8266FS-0.3.0.zip ) скопируйте его в /Arduino/tools/ESP8266FS/tool/

  3. Здравствуйте. Спасибо за Ваши публикации и видео. У меня следующий вопрос, почему в этом скетче SSDP уже не выдает информацию (если выбрать свойства в сетевом окружении) как в предыдущем скетче?

  4. Отлично, файлы мы загрузили. А как их оттуда потом удалять, или изменять? Какой-то файловый менеджер для ESP8266 нужен

  5. Такой вопрос возник:
    Зачем мы загружаем в чип файлы из папки “data” в архивированном виде, и те же самые файлы в обычном виде?

    1. Современные браузеры понимают сжатые файлы. Трафик становится меньше. ESP быстрее передает данные меньшего объема. Но никто не запрещает загрузить не сжатые файлы. И для старых браузеров.

  6. При попытке читать файл из памяти во время http запроса, Fatal Exception и перезагрузка модуля. Что может быть?

      1. если читать и писать файлы внутри FS_init, то все работает. Если делать даже SPIFFS.exists в обработчике HTTP.on, то все сыпется, в терминале Execption(0) далее дамп памяти и перезагрузка модуля.

  7. А как в редакторе (который …/edit) сохранить изменения в файле? Кнопки нет, вроде есть хоткей, я как-то умудрился методом тыка сохранить, но не понял как… Подскажите)

    1. Обычное чтение index.htm. Версии подключаемых библиотек все актуальные, версии Ардуино IDE все перепробовал. Размеры образа файловой системы тоже разную. Само по себе работает, а внутри обработчика web сервера не может сделать даже проверку существования файлов.

    2. +1! Пробовал в Edge, IE и GC – управляющего элемента для сохранения изменённого файла не нашёл.
      А без возможности сохранять изменения, “редактор HTML” становится “просмотрщиком HTML”… тоже не плохо, но хочется большего 🙂

        1. Спасибо, помогло.
          Если кого заинтересует, при работе в /edit.htm, использование комбинации Ctrl+S :
          … в Google Chrome – изменения сохраняются и это видно сразу, в самом редакторе;
          … в IE 11 – изменения сохраняются, но в редакторе это не заметно :(((
          … в Edge – изменения не сохраняются.

          Возможно, дело в локальных настройках кэширования – пока что некогда разбираться.

  8. Добрый день, подскажите, не могу залить SPIFFS в ESP826612F. пробовал примеры FSBrowser и Ваш. Менял несколько ЕСПшек, менял FTDI для заливки, Так же пытался с разных компов (под разными ОС) заливать, разные Ардуино IDE (начиная с 1,6,5 и до последней 1,8,4) – не получается. Естественно пробовал обновлять файлы ESP библиотеки и плат. а так же версии самого плагина 0,2 и 0,3. По схемам питания пробовал как от DC-DC преобразователя, так и от USB через FTDI питать. Все пины отвечающие за загрузку 0, 2, 15 подтянуты, на питании стоят кондеры 100 НФ и 470 Мкф.
    но постоянно одна и та же картина:

    [SPIFFS] data : C:\Users\PAVILION\Documents\Arduino\FSBrowser11\data
    [SPIFFS] size : 1004
    [SPIFFS] page : 256
    [SPIFFS] block : 8192
    /edit.htm.gz

    /favicon.ico

    /graphs.js.gz

    /index.htm

    [SPIFFS] upload : C:\Users\PAVILION\AppData\Local\Temp\arduino_build_395524/FSBrowser11.spiffs.bin
    [SPIFFS] address: 0x300000
    [SPIFFS] reset : ck
    [SPIFFS] port : COM4
    [SPIFFS] speed : 115200

    Uploading 1028096 bytes from C:\Users\PAVILION\AppData\Local\Temp\arduino_build_395524/FSBrowser11.spiffs.bin to flash at 0x00300000

    ……………warning: espcomm_send_command: didn’t receive command response

    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed

    warning: espcomm_send_command: wrong direction/command: 0x01 0x03, expected 0x01 0x04

    error: espcomm_upload_mem failed

    SPIFFS Upload failed!

    В то время как обычные скетчи залетают на УРА!
    неделю сижу над этой проблемой…. Может подскажите куда копать?

      1. Я тоже столкнулся с такой же проблемой. Запаял модуль на плату, подключил внешний USB-TTL конвертер. Скетч залетает со свистом, а вот FS никак не загружается. Пробовал ESP-07S, ESP-12, везде одинаковое поведение.
        Возможна такая ошибка из-за подключенного по UART чипа ATMEL238? У меня на самодельной плате распаяны ESP-07F и Atmel328p, связаны по UART. Но это не мешает заливать скетчи в ESP.

  9. Добрый день!
    Хотел посмотреть скетч (скачать), а Хром ругается, что мол там вирус.
    Можно скетч как то в текстовом виде выложить?
    Спасибо

  10. Доброго времени суток!
    Помогите разобраться с таким вопросом – никак не пойму как сделать загрузку файлов style.css и function.js по ссылкам в html документе. Если содержимое этих файлов включить непосредственно в html, то все работает без проблем, но это не есть правильно. По ссылкам же грузится не хотят.

  11. Здравствуйте. Во первых большое спасибо за Ваши уроки. Во вторых все загрузил, но ответ FileNotFound. Ничего не менял!!!

  12. Вообще не понятно как вы вызываете index.htm и по вашему примеру ничего не работает. В мануале написано server.on ( ” / ” , handlerFunction);
    У вас же ничего подобного нет. Как вы это объясните?

  13. Спасибо за видео!
    можете подсказать как решить проблему при загрузке файловой системы.

    usage: esptool [-h] [–chip {auto,esp8266,esp32}] [–port PORT] [–baud BAUD]

    [–before {default_reset,no_reset,no_reset_no_sync}]

    [–after {hard_reset,soft_reset,no_reset}] [–no-stub]

    [–trace] [–override-vddsdio [{1.8V,1.9V,OFF}]]

    {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version}

    esptool: error: unrecognized arguments: –end

    SPIFFS Upload failed!)

  14. Уроки для средненьких ) совсем новичкам будет непонятно, гуру и так все знают, а вот обычному человеку будет очень интересно )
    Жаль что уже год ничего новенького :'(
    Автор, мы верим в тебя!
    Автор реально откликается на вопросы, общается по скайпу, очень приятный человек :))
    я из Абакана

  15. Web страница не загружается, не может найти файлы. В некоторых уроках нету ссылок., в других приходится допиливать чтобы заработало.
    Надо что-то поправить, думаю.

Добавить комментарий для Сергей Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.