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

Прошивка TCP2UART переходника с настройкой по Web

Elik

New member
А можно было прочитать "10leds_ru.txt" и сделать выводы. Ну или нарисовать какие вам нравятся кнопки в редакторе web страниц и залить в модуль.

В "ReadMe.txt", вложенном в архив к прошивке ничего про заливку "вебморды" не говорится. Это баг или я что то не так сделал?
я имел ввиду тот фаил выше про 10 лампочек........делал все, как описано, менял название, соглашался с заменой, но что то не идет...

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

Почему, когда я использую программу WEBFS22.exe для отправки вебморды в ESP, то после отправки морда перестает открываться? говорит нет такой страницы... Вроде я ничего не менял а отправляю то, что разархивировал с файла скаченного с гитхаба вашего...можете проверить?

и еще один баг, состояния GPIO не сохраняются, если передернуть питание все возвращается в исходное состояние, с этим можно как то бороться?
 
Последнее редактирование:

pvvx

Активный участник сообщества
я имел ввиду тот фаил выше про 10 лампочек........делал все, как описано, менял название, соглашался с заменой, но что то не идет...
А кто спрашивал "замену" и что не идет? :confused:

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

Почему, когда я использую программу WEBFS22.exe для отправки вебморды в ЕСП, то после отправки морда перестает открываться? говорит нет такой страницы... Вроде я ничего не менял а отправляю то, что разархивировал с файла скаченного с гитхаба вашего...можете проверить?
Проверил. Работает всё нормально. Видео как скачать с gitхаба и какие кнопочки жать необходимо? Или сами снимите?
Прошил модуль так:
Снимок38.gif
Вот так выставил в WEBFS22 и диск залился и работает:
Снимок36.gifСнимок37.gif
 
Последнее редактирование:

Elik

New member
А кто спрашивал "замену" и что не идет? :confused:


Проверил. Работает всё нормально. Видео как скачать с gitхаба и какие кнопочки жать необходимо? Или сами снимите?
Прошил модуль так:
Посмотреть вложение 1013
Вот так выставил в WEBFS22 и диск залился и работает:
Посмотреть вложение 1011Посмотреть вложение 1012
"А кто спрашивал "замену" и что не идет? "

а как иначе сделать вот это:

3) Переименовываете файл “WEBFiles\protect\10leds.ini” в “WEBFiles\protect\init.ini”.

если там в папке уже есть такой файл init.ini ?

ладно все по порядку, скачал вот этот архив: fullflash_and_webfs_051e.zip

Разархивировал, в папке webbin нашел флеш, который прошил в модуль - fullflash_web051e.bin

Все отлично, все работает, кроме глюка с подключением к моей домашней беспроводной сети, точнее подключается, но при загрузке сильно тормозит, а вот с режимом точки доступа все летает!

Далее поигрался с ГПИО, как и описывал, кроме несохранения (пожайлуста фиксаните, может есть вариант сохранять их положения во флеш?) все работает!

Далее попробовал залить вебморду по описанному методу в ридми на 10 лампочек да еще и программу нашел, которая делает все удобней некуда, что не описано в ридми (следует фиксануть так же), но после посылки в модуль получаем вот такое приветливое окошко :):

Безымянный.png

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

Elik

New member
я могу ошибаться, но кажется тот веб интерфейс, который вшит в ваш фуллфлеш отличается от того, что вложен в папках архива, вот поэтому и не открывается веб морда после прошивки оной...
вы можете выложить сюда те файлы, которые вшиты в прошивку, иначе никак не поэкспериментируешь с интерфейсом...
 

pvvx

Активный участник сообщества
Ещё раз скачиваю fullflash_and_webfs_051e.zip, разворачиваю.
Там в папке находится WEBFiles.bin. Переименовываю его в WEBFiles.bin.0 и создаю новый запустив make_webfs.bat.
Появляется новый WEBFiles.bin.
В командной строке сравниваю итоги:
Код:
E:\00E\fullflash_and_webfs_051e\webbin>fc /b WEBFiles.bin WEBFiles.bin.0
Сравнение файлов WEBFiles.bin и WEBFILES.BIN.0
FC: различия не найдены
Запускаю Эксплорер. Модуль включен через роутер. На главной странице выбираю "WebFS Upload" http://sesp8266/protect/upload.htm
Там выбираю новый файл WEBFiles.bin для загрузки. Тыкаю "Upload". Пишет "Update Successful!". Все странички работают.
Ну и фиг с ними.
Соединяюсь USB-WiFi свистком c модулем. Пишу в эксплорере http://192.168.4.1/fsupload. Получаю страничку:
fsupload.gif
Туда вставляю файл WEBFiles.bin. Тыкаю "Upload". Пишет "Update Successful!". Все странички работают.
Фиг и с этим.
Запускаю WEBFS22.exe. Заново создает WEBFiles.bin и загружает в модуль. Все странички работают.

Да и лано.
Запускаю WEBFS22.exe. Переключаю в режим Upload готового WEBFiles.bin. Жму "Upload" -
Снимок134.gif
Опять загружает и все странички работают.

Вы случаем в роутере и в Windows не изменили размер MTU?
Так-же внимательнее сравните настройки в WEBFS22.exe указанные в WEBFS22exe_AdvacedSettings.gif, если не используете make_webfs.bat.
Когда изменяете init.ini на 10leds.ini, то модуль будет запущен на перехват любого интернет запроса после соединения. Если этого не надо, то сотрите "cfg_cdns=1" - это включение "Captive Portal". И прочитайте о NETBIOS в первом сообщении темы (второй параграф).
Сохранение состояния выходов GPIO не будет, т.к. их можно менять через Web более нескольких сотен раз в секунду и во flash будет дырка. Начальную установку GPIO по старту модуля можете описать в init.ini.
 
Последнее редактирование:

Elik

New member
Ещё раз скачиваю fullflash_and_webfs_051e.zip, разворачиваю.
Там в папке находится WEBFiles.bin. Переименовываю его в WEBFiles.bin.0 и создаю новый запустив make_webfs.bat.
Появляется новый WEBFiles.bin.
В командной строке сравниваю итоги:
Код:
E:\00E\fullflash_and_webfs_051e\webbin>fc /b WEBFiles.bin WEBFiles.bin.0
Сравнение файлов WEBFiles.bin и WEBFILES.BIN.0
FC: различия не найдены
Запускаю Эксплорер. Модуль включен через роутер. На главной странице выбираю "WebFS Upload" http://sesp8266/protect/upload.htm
Там выбираю новый файл WEBFiles.bin для загрузки. Тыкаю "Upload". Пишет "Update Successful!". Все странички работают.
Ну и фиг с ними.
Соединяюсь USB-WiFi свистком c модулем. Пишу в эксплорере http://192.168.4.1/fsupload. Получаю страничку:
Посмотреть вложение 1015
Туда вставляю файл WEBFiles.bin. Тыкаю "Upload". Пишет "Update Successful!". Все странички работают.
Фиг и с этим.
Запускаю WEBFS22.exe. Заново создает WEBFiles.bin и загружает в модуль. Все странички работают.

Да и лано.
Запускаю WEBFS22.exe. Переключаю в режим Upload готового WEBFiles.bin. Жму "Upload" -
Посмотреть вложение 1016
Опять загружает и все странички работают.

Вы случаем в роутере и в Windows не изменили размер MTU?
Так-же внимательнее сравните настройки в WEBFS22.exe указанные в WEBFS22exe_AdvacedSettings.gif, если не используете make_webfs.bat.
Когда изменяете init.ini на 10leds.ini, то модуль будет запущен на перехват любого интернет запроса после соединения. Если этого не надо, то сотрите "cfg_cdns=1" - это включение "Captive Portal". И прочитайте о NETBIOS в первом сообщении темы (второй параграф).
Сохранение состояния выходов GPIO не будет, т.к. их можно менять через Web более нескольких сотен раз в секунду и во flash будет дырка. Начальную установку GPIO по старту модуля можете описать в init.ini.
что такое размер MTU?
Вот что у меня получилось, через прогу что то не пошло загрузить, точнее загрузилось в модуль коряво...
снял на видео последовательность действий, как загрузится покажу...
 

Elik

New member
пока что все идет путем, не подскажете, что бы вгрузить картинку в формате SVG ее просто надо бросить в корень, либо в папку, а потом вот этим вывести:

<img src="mega.svg" width="800" height="450" alt="Arduino MEGA 2560" />

или тут как то подругому? Что то не могу вывести ее...
 

pvvx

Активный участник сообщества
пока что все идет путем, не подскажете, что бы вгрузить картинку в формате SVG ее просто надо бросить в корень, либо в папку, а потом вот этим вывести:

<img src="mega.svg" width="800" height="450" alt="Arduino MEGA 2560" />

или тут как то подругому? Что то не могу вывести ее...
svg.htm:
HTML:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="600" height="70">     <ellipse cx="80" cy="35" rx="70" ry="30" stroke="#b4241b" stroke-width="3" fill="#ffff00" /> </svg>
svg139.gif
 

Elik

New member
svg.htm:
HTML:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="600" height="70">     <ellipse cx="80" cy="35" rx="70" ry="30" stroke="#b4241b" stroke-width="3" fill="#ffff00" /> </svg>
Посмотреть вложение 1023
это как нарисовать, а мне нужно вставить файл svg...

тут такое дело, делаю так:
<img src="mega.svg" width="800" height="450" alt="Arduino MEGA 2560" />
когда открываю страничку с этим кодом не залитую в модуль то он открывается, все нормально, а когда заливаю в модуль то рисунка не видно, может *.svg не поддерживается сервером? либо есть спецификации куда надо его бросать, в корень, в отдельную папку, указывать путь по другому..?

попробуйте вот этот файл и страничку залить, посмотрите что можно сделать?

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

Вложения

aloika

Active member
Не будет .svg просто так показывать.

Надо внести изменения в два файла:

Код:
/****************************************************************************
  Section:
        File and Content Type Settings
  ***************************************************************************/
        // File type extensions corresponding to HTTP_FILE_TYPE
static const char *httpFileExtensions[] = {
        "txt",          // HTTP_TXT
        "htm",          // HTTP_HTML
        "cgi",          // HTTP_CGI
        "xml",          // HTTP_XML
        "css",          // HTTP_CSS
        "ico",          // HTTP_ICO
        "gif",          // HTTP_GIF
        "png",          // HTTP_PNG
        "jpg",          // HTTP_JPG
        "js",           // HTTP_JAVA
        "swf",          // HTTP_SWF
        "wav",          // HTTP_WAV
        "pdf",          // HTTP_PDF
        "zip",          // HTTP_ZIP
        "bin",          // HTTP_BIN
        "svg",            // HTTP_SVG
        "\0\0\0"        // HTTP_UNKNOWN
};

// Content-type strings corresponding to HTTP_FILE_TYPE
static const char *httpContentTypes[] = {
    "text/plain",               // HTTP_TXT       "txt",
    "text/html",                // HTTP_HTM       "htm",
    "magnus-internal/cgi",      // HTTP_CGI       "cgi",
    "text/xml",                 // HTTP_XML       "xml",
    "text/css",                 // HTTP_CSS       "css",
    "image/vnd.microsoft.icon", // HTTP_ICO       "ico",
    "image/gif",                // HTTP_GIF       "gif",
    "image/png",                // HTTP_PNG       "png",
    "image/jpeg",               // HTTP_JPG       "jpg",
    "text/javascript",          // HTTP_JAVA      "js",
    "application/x-shockwave-flash", // HTTP_SWF  "swf",
    "audio/x-wave",             // HTTP_WAV       "wav",
    "application/pdf",          // HTTP_PDF       "pdf",
    "application/zip",          // HTTP_ZIP       "zip",
    "application/octet-stream", // HTTP_BIN       "bin",
    "image/svg+xml",            // HTTP_SVG          "svg",
    ""  // HTTP_UNKNOWN
};


Код:
/****************************************************************************
  Section:
        Commands and Server Responses
  ***************************************************************************/

// File type definitions
typedef enum
{
        HTTP_TXT = 0,     // File is a text document
        HTTP_HTML,        // File is HTML (extension .htm)
        HTTP_CGI,         // File is HTML (extension .cgi)
        HTTP_XML,         // File is XML (extension .xml)
        HTTP_CSS,         // File is stylesheet (extension .css)
        HTTP_ICO,         // File is ICO  vnd.microsoft.icon
        HTTP_GIF,         // File is GIF image (extension .gif)
        HTTP_PNG,         // File is PNG image (extension .png)
        HTTP_JPG,         // File is JPG image (extension .jpg)
        HTTP_JAVA,        // File is java (extension .js)
        HTTP_SWF,         // File is ShockWave-Flash (extension .swf)
        HTTP_WAV,         // File is audio (extension .wav)
        HTTP_PDF,         // File is PDF (extension .pdf)
        HTTP_ZIP,         // File is ZIP (extension .zip)
        HTTP_BIN,         // File is BIN (extension .bin)
        HTTP_SVG,          // File is SVG image (extension .svg)
        HTTP_UNKNOWN      // File type is unknown
} HTTP_FILE_TYPE;


И все будет работать. У меня работает:

 
  • Like
Реакции: Elik

pvvx

Активный участник сообщества
<embed src="mega.svg" type="image/svg+xml">
<iframe src="mega.svg" width="500" height="200" style="border: none"></iframe>
... -> https://htmlweb.ru/html/graph.php
Сам файл svg у вас неверный - Структура документа SVG:
"Первая строка — стандартный XML-заголовок, объявление (англ. XML declaration), указывающее версию XML (version) (обычно «1.0») и кодировку символов(encoding):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>"

Web-свалка не может поддерживать все типы MIME. Для их списка 512 килобайт flash не хватит.
Открываете исходники и вписываете нужный вам тип mime по расширению файла, если это так необходимо.
Но всё можно указать и в заголовочном HTML
Вот без дописки mime image/svg+xml, но при корректном mega.svg:
svg140.gif

@Elik - к сожалению тут тема не об обучении HTML и прочего... Тут TCP2UART. Найдите профильный форум или ...

fullflash_and_webfs_052.zip - добавлен MIME "svg". Всё полностью не проверял.
 
Последнее редактирование:
  • Like
Реакции: Elik

Elik

New member
Не будет .svg просто так показывать.

Надо внести изменения в два файла:

Код:
/****************************************************************************
  Section:
        File and Content Type Settings
  ***************************************************************************/
        // File type extensions corresponding to HTTP_FILE_TYPE
static const char *httpFileExtensions[] = {
        "txt",          // HTTP_TXT
        "htm",          // HTTP_HTML
        "cgi",          // HTTP_CGI
        "xml",          // HTTP_XML
        "css",          // HTTP_CSS
        "ico",          // HTTP_ICO
        "gif",          // HTTP_GIF
        "png",          // HTTP_PNG
        "jpg",          // HTTP_JPG
        "js",           // HTTP_JAVA
        "swf",          // HTTP_SWF
        "wav",          // HTTP_WAV
        "pdf",          // HTTP_PDF
        "zip",          // HTTP_ZIP
        "bin",          // HTTP_BIN
        "svg",            // HTTP_SVG
        "\0\0\0"        // HTTP_UNKNOWN
};

// Content-type strings corresponding to HTTP_FILE_TYPE
static const char *httpContentTypes[] = {
    "text/plain",               // HTTP_TXT       "txt",
    "text/html",                // HTTP_HTM       "htm",
    "magnus-internal/cgi",      // HTTP_CGI       "cgi",
    "text/xml",                 // HTTP_XML       "xml",
    "text/css",                 // HTTP_CSS       "css",
    "image/vnd.microsoft.icon", // HTTP_ICO       "ico",
    "image/gif",                // HTTP_GIF       "gif",
    "image/png",                // HTTP_PNG       "png",
    "image/jpeg",               // HTTP_JPG       "jpg",
    "text/javascript",          // HTTP_JAVA      "js",
    "application/x-shockwave-flash", // HTTP_SWF  "swf",
    "audio/x-wave",             // HTTP_WAV       "wav",
    "application/pdf",          // HTTP_PDF       "pdf",
    "application/zip",          // HTTP_ZIP       "zip",
    "application/octet-stream", // HTTP_BIN       "bin",
    "image/svg+xml",            // HTTP_SVG          "svg",
    ""  // HTTP_UNKNOWN
};


Код:
/****************************************************************************
  Section:
        Commands and Server Responses
  ***************************************************************************/

// File type definitions
typedef enum
{
        HTTP_TXT = 0,     // File is a text document
        HTTP_HTML,        // File is HTML (extension .htm)
        HTTP_CGI,         // File is HTML (extension .cgi)
        HTTP_XML,         // File is XML (extension .xml)
        HTTP_CSS,         // File is stylesheet (extension .css)
        HTTP_ICO,         // File is ICO  vnd.microsoft.icon
        HTTP_GIF,         // File is GIF image (extension .gif)
        HTTP_PNG,         // File is PNG image (extension .png)
        HTTP_JPG,         // File is JPG image (extension .jpg)
        HTTP_JAVA,        // File is java (extension .js)
        HTTP_SWF,         // File is ShockWave-Flash (extension .swf)
        HTTP_WAV,         // File is audio (extension .wav)
        HTTP_PDF,         // File is PDF (extension .pdf)
        HTTP_ZIP,         // File is ZIP (extension .zip)
        HTTP_BIN,         // File is BIN (extension .bin)
        HTTP_SVG,          // File is SVG image (extension .svg)
        HTTP_UNKNOWN      // File type is unknown
} HTTP_FILE_TYPE;


И все будет работать. У меня работает:

ни че се, а можно папочку полностью, прикольная штуковина...

и спасибо за подсказку, щя попробуем...
 

Elik

New member
<embed src="mega.svg" type="image/svg+xml">
<iframe src="mega.svg" width="500" height="200" style="border: none"></iframe>
... -> https://htmlweb.ru/html/graph.php
Сам файл svg у вас неверный - Структура документа SVG:
"Первая строка — стандартный XML-заголовок, объявление (англ. XML declaration), указывающее версию XML (version) (обычно «1.0») и кодировку символов(encoding):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>"

Web-свалка не может поддерживать все типы MIME. Для их списка 512 килобайт flash не хватит.
Открываете исходники и вписываете нужный вам тип mime по расширению файла, если это так необходимо.
Но всё можно указать и в заголовочном HTML
Вот без дописки mime image/svg+xml, но при корректном mega.svg:
Посмотреть вложение 1025

@Elik - к сожалению тут тема не об обучении HTML и прочего... Тут TCP2UART. Найдите профильный форум или ...

fullflash_and_webfs_052.zip - добавлен MIME "svg". Всё полностью не проверял.
благодарю! буду пробовать, я в этом деле новичок, строго не судите...
 

Elik

New member
Странно, это только у меня глючит загрузка или что то с прошивкой? иногда вообще нет проблем, а иногда после прошивки новой веб морды получается вот такая картина:
Безымянный.png
и тоже самое, если вызвать страничку загрузки 192.168.4.1/fsupload и оттуда же отправить вебморду заново....правда когда отправляю не выходит сообщения о удачной загрузке, ни ресет ни отключение модуля не помогают, приходится прошивать модуль заново...
 

Elik

New member
прошил 0.52, усе заработало, благодарю, буду ковылять дальше, теперь самое интересное, как отсылать запросы в ардуино... ;) и принимать - показывать на страничке, да знаю через ХМЛ, надо будет копаться в скриптах...
 

Elik

New member
Почти ни как. Расчет идет на соединение в качестве удлинителя. На одно модуле ставите AP, а на другом ST и указываете ip адрес (и порт TCP2UART) первого модуля...
Передать пару байт через web можно в запросе, через переменные, как указано в http://sesp8266/sample.htm.
Прямо в регистры UARTx :) :
http://aesp8266/web.cgi?sys_ram0x60000f00=0x48&sys_ram0x60000f00=0x69&sys_ram0x60000f00=0x21 передает в UART1(debug port): 'Hi!'
http://aesp8266/web.cgi?sys_ram0x60000000=0x48&sys_ram0x60000000=0x69&sys_ram0x60000000=0x21 передает 'Hi!' в UART0 TX.
а можно расшифровку, как к примеру отправить вот такое сообщение через веб морду:

A1-0; D1-1; RA1; RD1; SA1-DO; SA2-AI; WD6-130

Пытаюсь подружить ардуину с ней...
и еще если не сложно как считать что либо с последовательного порта в вебморду, пример если не трудно.
подскажите ресурс, где копать, что искать, если не охота..., сам разберусь!

*в общем разобрался, нужен конвертер ASCII, только не нашел как считывать инфу с RX порта через веб страничку, если можно алгоритм в примере, заранее благодарен!
 
Последнее редактирование:

Tomahawk

New member
Elik, так и разобрались бы, прежде чем спрашивать то, что уже не раз обсуждалось.
Логика в том,что это демо страницы, а нормальные, для своего устройства, должны написать вы сами.
Так не пойдёт, надо чтобы всё было уже готовое, как надо именно сразу всем пользователям, и заливалось за 1 минуту, а потом работало стабильно :) Ну то есть как бы по волшебству))
 

Elik

New member
Elik, так и разобрались бы, прежде чем спрашивать то, что уже не раз обсуждалось.

Так не пойдёт, надо чтобы всё было уже готовое, как надо именно сразу всем пользователям, и заливалось за 1 минуту, а потом работало стабильно :) Ну то есть как бы по волшебству))
Надо обязательно язвить и грубить и тупо так себя делать умником да? Форум на то и существует, что бы спрашивать, узнавать, делиться опытом вообще то! Да и если не хотели делиться изобретением, что тут тему открывать? Сделали бы закрытый форум для платных пользователей, так сказать за бабло отваливали бы ответы...
Что писать в чем разбираться я оставлю предлпочтение за собой! А вы, если нечем полезным поделиться, то делитесь, а не антимонничайте...

Не надо умничать, будьте проще, если есть чем помочь, помогайте, если не хочется, то и отвечать ненужно...
 

PostLast

Member
как отсылать запросы в ардуино... ;) и принимать - показывать на страничке, да знаю через ХМЛ, надо будет копаться в скриптах...
А как это через xml в данной сборке разбирать данные с сериала. Я писал свой разборщик нескольких протоколов на таймере а есть способ проще?
 

Elik

New member
А как это через xml в данной сборке разбирать данные с сериала. Я писал свой разборщик нескольких протоколов на таймере а есть способ проще?
в общем пока что получилось вот так:
Безымянный.png
это просто интерфейс на HTML не рабочий!, но думаю можно будет начать с простого, тупо отправлять запросы в последовательный порт типа "включить аналоговый пин, либо цифровой пин номер 2", а в ардуино создать поисковик ключевых слов, если нашел, если совпал с тем, что есть, то выполнить, если нет то ничего не делать, типа того, + прикрутить проверку контрольной суммы, что бы на каждый мусор выброшенный в серийник не беспокоить автоматику....
Это не сложно и на моем уровне топорного программирования ломом выполнимо, для более изощренного метода с обратной связью и построениями графиков нужно будет копать дальше. Про ХМЛ я просто ляпнул, видел как делают на тьюториале к эзернетшилду...

Если что либо дельное откопаю, сделаю, то выложу, если у вас есть что либо такое, то поделитесь, будет полезно, ато собрались тут вреднюшки...
 

Вложения

Сверху Снизу