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

NodeMCU WEB интерфейс

Alexey123456

New member
Здравствуйте
Я использую прошивку NodeMCU на модуле ESP-12F. Хочу сделать WEB интерфейс с использованием HTML и подгружаемых библиотек javascript.
Можно ли такое будет сделать на этой прошивке?
И где мне хранить сами файлы HTML и javascript во внутренней flash или придется подключать внешнюю память?
 

kalobyte

New member
есть такаой плагин для ардуины GitHub - esp8266/arduino-esp8266fs-plugin: Arduino plugin for uploading files to ESP8266 file system
или просто прога консольная, но плагин лучше
он делает бинарник для прошивки по определенному адресу
пространство флешки делится на часть для кода и для данных
вот пример использования GitHub - gmag11/FSBrowserNG: Full autocontained (on SPIFFS) async web server on ESP8266. Written as a Library.

в ардуине там нужно смотреть опцию в меню flash size, там написано в скобках размер памяти spiffs для данных
 

kalobyte

New member
HTTP Basic authentication implemented. Will try to improve to a more secure mechanism.
ну ты можеш свой метод сделать с полями пароля и логина и проверить их в коде
 

Alexey123456

New member
Спасибо.
Попробую плагин.
Но хотел бы еще уточнить некоторые моменты:
- Если я правильно понял документацию, то для WEB сервера нужно сконфигурировать модуль как точку доступа?
- Есть ли ограничения на размер библиотек и HTML страниц, или это зависит только от размера памяти?
 

kalobyte

New member
а где там написано, что надо конфигурировать только как точку доступа?

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

Alexey123456

New member
Я задам вопрос более конкретно - меня интересует такой момент: Допустим я сделал страницу на HTML, как в идеале. Но допустим я в коде странице подгружаю внешний javascript, т.е. браузер запрашивает у сервера этот скрипт и он загружается в браузер ну и каким-то образом выполняется. Могу ли я осуществить такую подгрузку, есть ли какие-то ограничения или особенности? Т.е. сама прошивка nodeMCU позволяет это делать?
 

kalobyte

New member
я думаю ограничений не будет, посмотри пример
C:\Users\admin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WebServer\examples\FSBrowser

bool handleFileRead(String path){
DBG_OUTPUT_PORT.println("handleFileRead: " + path);
if(path.endsWith("/")) path += "index.htm";
String contentType = getContentType(path);
String pathWithGz = path + ".gz";
if(SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)){
if(SPIFFS.exists(pathWithGz))
path += ".gz";
File file = SPIFFS.open(path, "r");
size_t sent = server.streamFile(file, contentType);
file.close();
return true;
}
return false;
}

вот основные моменты
File file = SPIFFS.open(path, "r");
size_t sent = server.streamFile(file, contentType);
я думаю там в озу не читается содержимое файла, только выделяется память под дескриптор и дальше уже читается из флеша как в обычных авр читаются данные с модификатором progmem
 
Сверху Снизу