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

Поиск решения вопроса

Denis Karasiov

New member
Добрый день всем.

Даже не могу понять как сформулировать тему...

Есть огромное желание вынести код из прошивки во внешние скрипты (для переноса файлов Веб-сервера на флешку). Но статические файлы меня не устраивают. На обычных серверах у меня серверная часть преимущественно на перле.

Нашел библиотеку простых шаблонов для страниц, но там не реализованы ни циклы, ни условные выводы. И все равно обработку формы придется делать внутри основной программы (скетча) (перекомпилировать в случае правки).

Выносить интерфейс из скетча точно понял, что надо обязательно, т.к. писать HTML-код внутри скетча - смерти подобно. Особенно, если начинаешь делать красивую страницу с JS. Да и внутренней памяти хватит на несколько красивых страниц.

Понимаю, что, видимо, это не совсем обычный (большой) сервер, но может кто имеет мысли на эту тему? Как лучше реализовать.

Спасибо.
 

sharikov

Active member
Выносить интерфейс из скетча точно понял, что надо обязательно, т.к. писать HTML-код внутри скетча - смерти подобно. Особенно, если начинаешь делать красивую страницу с JS. Да и внутренней памяти хватит на несколько красивых страниц.
heatshrink жмет JS в среднем на 50% (проверено)

Понимаю, что, видимо, это не совсем обычный (большой) сервер, но может кто имеет
мысли на эту тему? Как лучше реализовать.
V7 смотрели ?

--
Ps. А может вам стоит уйти на openwrt ?
 

Denis Karasiov

New member
Openwrt раньше не смотрел, но на первый взгляд это не совсем то, что мне хотелось бы. Во-первых, я сразу перехожу минимум на Raspberry. Там придется ставить полноценный линукс (а каком-то виде) на флешку, которая через полгода-год сотрется в порошок (это уже проходил). В Esp (в крайнем случае Arduino) мне очень нравится компактность (самое важное), дешевизна и их изначальная заточенность на IoT. Поэтому, пока не сильно думаю, что надо переходить на другую платформу, а надо подумать, как более-менее красиво решить задачу в рамках имеющихся возможностей.

По поводу JS (как и картинки) - я даже думал вынести их на отдельный сервер и подгружать их "снаружи". Это решение не сильно нравится, но тоже можно считать условно рабочим. Хотя понимание, что весь интерфейс будет завязан на внешний сервер оптимизма не добавляет.

А что такое V7?
 

pvvx

Активный участник сообщества
Mini JavaScript engine
Если файлы для записи и их много, то лучше всё-же подумать о microSD.
Но для Web всё равно есть проблемы с использованием SD - нужен SoC с нормальным SDIOH (Host) контроллером (RTL871xAx - годиться и там есть поддержка FAT32 с длинными именами). На ESP(8266/ESP-32S) проще поставить увеличенную flash, т.к. полноценного SDIOH контроллера для SD с DMA у них нет и проц будет занят только ковырянием в контроллере SPI...
Из более простых и дешевых решений, если можете сами махнуть Flash - MIFI 3G/4G Router
 

sharikov

Active member
Openwrt раньше не смотрел, но на первый взгляд это не совсем то, что мне хотелось бы. Во-первых, я сразу перехожу минимум на Raspberry. Там придется ставить полноценный линукс (а каком-то виде) на флешку, которая через полгода-год сотрется в порошок (это уже проходил).
Нет, никаких Raspberry!
Смотрите модули на MT7688, AR9331 и им подобные (таких модулей вагон).
 

rst

Member
По поводу JS (как и картинки) - я даже думал вынести их на отдельный сервер и подгружать их "снаружи". Это решение не сильно нравится, но тоже можно считать условно рабочим. Хотя понимание, что весь интерфейс будет завязан на внешний сервер оптимизма не добавляет.
Вы хотите сами на ESP8266 динамически формировать JS-файлы?
У меня HTTP-сервер HTML, JS и картинки - отдаёт как статические готовые файлы. Хранятся они прямо в прошивке в сжатом виде. А JSON - и приём/обработка и формирование/отправка - уже делается программно в устройстве.
 

Denis Karasiov

New member
Спасибо, много полезной информации. Сейчас буду изучать. А пока все крутилось в голове, как лучше сделать подумал, что можно еще было бы вынести интерфейс на что-то внешнее (более мощное), а на ESP оставить только функции управления внешними устройствами и WiFi-репитера для более далеких ESP. Но теперь еще раз все буду в голове перекручивать.
 

rkravt

Member
Там придется ставить полноценный линукс (а каком-то виде) на флешку, которая через полгода-год сотрется в порошок
Ну в зависимости от стоящих задач, можно заставить загружаться и работать с SD/eMMC/NAND в режиме read-only, не насилуя флешку.
В интернетах достаточно мануалов.
Нужны какие-то сервисы типа db, log ... etc, подключать внешний накопитель.
 
Сверху Снизу