Загрузить html файлы в esp8266 (nodemcu)

mishgan

Member
Есть ESP8266 devkit модуль. Подключен он к ардуино. И есть веб интерфейс на html + 2файла JavaScript = 220кБ.
Сейчас я открываю эти файлы лежащие на компьютере. Они обмениваются данными с ESP8266.
Можно ли сделать чтоб эти файлы лежали в памяти модуля и их от туда подгружать ?
 

mishgan

Member
Первое что пришло в голову . Набросал на работе
Код:
wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
print(wifi.sta.getip())
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
if (path=="index.html") then

    if (file.open("index.html", "r")) then
    client:send(file.read());
    file.close()
end

end

        client:close();
        collectgarbage();
    end)
end)
 

SAT

New member
Привет! Я проверял пример отсюда http://www.esp8266.com/viewtopic.php?f=19&t=1549 работает . Не смог проверить максимальный размер файла который можно вывести у меня флэш ужасная пока залью бывает 2-3 раза сбойнет.
Парни подскажите пожалуйста как организовать из этого сервера вывод данных в другие модули . Я вижу данные в терминале пример:GET 192.168.4.11/ SSID=123455&Password=4567 а добраться не знаю как.
 

Tomahawk

New member
nodemcu не умеет рисовать htm-файлы больше 3 кб, и переменных на странице вы сможете отобразить не более 6-7 примерно. Ресурсы в этой горе-поделке тратятся впустую, поэтому нормальный веб-сервер поместить в esp через nodemcu нельзя, даже учитывая правильность написания с точки зрения lua-кода.
 

SAT

New member
Сегодня пробовал выводить текстовый файл 42 кб . все передано корректно . Скорость передачи низкая. после передачи 20 кб заметно проседает видимо памяти недостаточно. html передает нормально правда размер 4-8 кб .
Подытожу : Для начального уровня можно использовать данный пример.
Tomahawk я с Вами полностью согласен по nodemcu . Но самое что меня раздражает это непредсказуемая непредсказуемость . Как то так .
 

SkyRzn

New member
Большие файлы у меня отдавать получается. Если интересно, можно здесь посмотреть.
А никто не сталкивался с проблемой, что иногда секунд по десять сервер на запрос отвечает? Причем запрос очень легкий. При этом иногда работает быстро - несколько килобайт грузится за секунду (не из кеша, в консоли вижу, что приходит запрос и выдается ответ).
В чем может быть проблема, как решить?
 

SAT

New member
local r = file.read(1400); я не ставлю больше 1024 тк у меня больше не читает за 1 заход буфер мал, 1024 ставлю по умолчанию. По "задумчивости" не знаю запрос запросу рознь.
 

SkyRzn

New member
local r = file.read(1400); я не ставлю больше 1024 тк у меня больше не читает за 1 заход буфер мал, 1024 ставлю по умолчанию. По "задумчивости" не знаю запрос запросу рознь.
Запросы двух типов: загрузка основной страницы и передача параметров модулю. И то, и другое иногда работает очень быстро, а иногда замирает секунд до десяти. Причем, это время между отправкой запроса и срабатыванием события
Код:
conn:on("receive", recv)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Но там требуется правильно писать обращение к tcp сокету.... и глючные исходники модулей с tcp от NodeMCU-шников не переделаны, т.к. тогда получиться полная несовместимость - NodeMCU должна иметь тысячи ошибок :)
Да и NodeMCU мертворожденное направление. Поддержка этого направления окончена, в связи с неперспективностью дальнейшего развития Lua на ESP8266. А так-же всех проектов содержащих spiffs. Spiffs не годится для работы с HTTP и прочими проектами из-за своего тормоза. Открытие файла и запись там занимает несколько секунд, когда диск заполнен более половины или он большого размера (> 512 к)
 
Последнее редактирование:

SkyRzn

New member
Но там требуется правильно писать обращение к tcp сокету.... и глючные исходники модулей с tcp от NodeMCU-шников не переделаны, т.к. тогда получиться полная несовместимость - NodeMCU должна иметь тысячи ошибок :)
Да и NodeMCU мертворожденное направление. Поддержка этого направления окончена, в связи с неперспективностью дальнейшего развития Lua на ESP8266.
Ну, не знаю. Что-то простое гораздо удобней отлаживать на Lua. Не забрасывайте EspLua. =)
 

SAT

New member
PVVX хочу Вас поблагодарить за EspLua.ru 1.4.0 build 20150922 и сказать спасибо!.
 

SAT

New member
Не смотря на то что Вы ее не довели до финала как хотели я считаю что на данный момент это лучший вариант . Огромный плюс это память! Нет бешеных утечек как в 0.9.6 я там ее считал "расходным материалом". Как говориться Москва тоже не сразу строилась.
 

pvvx

Активный участник сообщества
Не смотря на то что Вы ее не довели до финала как хотели я считаю что на данный момент это лучший вариант . Огромный плюс это память! Нет бешеных утечек как в 0.9.6 я там ее считал "расходным материалом". Как говориться Москва тоже не сразу строилась.
Espruino победит NodeMCU. ИМХО. Но там тоже сейчас уже навязывают spiffs к реализации на ESP8266. Если он и там прорастет, то и Espruino загнется как и
Sming, smart.js, NodeMCU, ZBasic и многое другое. Хотя там пока есть выбор - поддержка FAT и других файловых систем...
ESP8266 требуется нормальная своя файловая система для его flash. Многие нормальные фс либо коммерческие, либо имеют не ту лицензию...
 
Последнее редактирование:

SAT

New member
Да в таком "марафоне" не все стартующие дойдут до финиша. Да и не факт что дойдут лучшие. Ну это лирика.
Я вот размышлял по поводу дрыганья ногами при старте ESP и не могу понять это нерадивость разработчика или намеренно полуфабрикаты продают. Для меня это как ложка дегтя в бочке меда.
PVVX Вы не оставляйте по возможности NodeMCU если поддержку его авторы прекратили пусть в их проекте достойная точка будет поставлена Вами.
 
Сверху Снизу