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

Разработка ‘библиотеки’ малого webсервера на esp8266.

aloika

Active member
какая команда или таргет? или пройтись по теме?
Когда выполняете таргет FlashAll у вас должно заливаться всё - и программа, и веб. В Makefile можно подкорректировать, где-то примерно здесь (у меня так):

Код:
NewUserBin:
    @$(RM) -f $(USERFBIN)
    @cp -f ovls/bin/tcp_client.ovl WEBFilesSWBD
    ./WEBFS22.exe -h "*.htm, *.html, *.cgi, *.xml, *.bin, *.txt, *.wav" -z "*.inc, snmp.bib, *.ovl, *.ini" ./WEBFilesSWBD ./webbin WEBFiles.bin

$(USERFBIN):
    ./WEBFS22.exe -h "*.htm, *.html, *.cgi, *.xml, *.bin, *.txt, *.wav" -z "*.inc, snmp.bib, *.ovl, *.ini" ./WEBFilesSWBD ./webbin WEBFiles.bin
 
Когда выполняете таргет FlashAll у вас должно заливаться всё - и программа, и веб. В Makefile можно подкорректировать, где-то примерно здесь (у меня так):

Код:
NewUserBin:
    @$(RM) -f $(USERFBIN)
    @cp -f ovls/bin/tcp_client.ovl WEBFilesSWBD
    ./WEBFS22.exe -h "*.htm, *.html, *.cgi, *.xml, *.bin, *.txt, *.wav" -z "*.inc, snmp.bib, *.ovl, *.ini" ./WEBFilesSWBD ./webbin WEBFiles.bin

$(USERFBIN):
    ./WEBFS22.exe -h "*.htm, *.html, *.cgi, *.xml, *.bin, *.txt, *.wav" -z "*.inc, snmp.bib, *.ovl, *.ini" ./WEBFilesSWBD ./webbin WEBFiles.bin
у меня так. но у меня при обозначении режима работы кода 2 (два сообщения выше) появляется ошибка компиляции. а при нуле 192.168.4.1 страница пишет что Web-disk error.
 

aloika

Active member
у меня так. но у меня при обозначении режима работы кода 2 (два сообщения выше) появляется ошибка компиляции. а при нуле 192.168.4.1 страница пишет что Web-disk error.
У меня #define PROGECT_NUMBER 0

А с помощью webfs22.exe заливается диск?

У меня модули esp12, там 4 мБ, насколько я понимаю. Я исправляю в makefile USERFADDR = 0x80000 и всё заливается за один раз - и прошивка, и веб-диск. Что для 512 кБ делать - не знаю, только pvvx знает...
 
если только через webfs22.exe или http://192.168.4.1/fsupload можно, то печаль для меня, ибо:
на работе вай-фая нет(совсем нет - политика компании + глушилка). комп имеет инет только проводной. заливаю прошивку через ком-порт и только. как работает узнаю только через телефон и с близкого расстояния(глушилка зело мешает). дождусь выходных и буду дома смотреть и прошивать/заливать.

как быть с ошибкой при выборе [inline] #define PROGECT_NUMBER 2[/inline] простой вебсервер?
 

pvvx

Активный участник сообщества
как быть с ошибкой при выборе [inline] #define PROGECT_NUMBER 2[/inline] простой вебсервер?
А это ветка оставлена для решения пользователем, тип наброска. Если он не в состоянии исправить - то нечего там копать :)
 

Andy Korg

Moderator
Команда форума
....как быть с ошибкой при выборе [inline] #define PROGECT_NUMBER 2[/inline] простой вебсервер?
У меня компилируется без ошибок и предупреждений моя ветка на github. Можете выложить текст сообщения об ошибке?
В вышеупомянутой ветке не используется ни переходник TCP2UART ни MODUBUS, плюс выключена компиляция оверлеев.
 
У меня компилируется без ошибок и предупреждений моя ветка на github. Можете выложить текст сообщения об ошибке?
В вышеупомянутой ветке не используется ни переходник TCP2UART ни MODUBUS, плюс выключена компиляция оверлеев.
Код:
web_int_callbacks.c: In function 'web_int_callback':
web_int_callbacks.c:497:7: error: implicit declaration of function 'tcp2uart_ajax_rx' [-Werror=implicit-function-declaration]
  tcp2uart_ajax_rx(ts_conn, tmo);
  ^
cc1.exe: all warnings being treated as errors
Исключительно при #define PROGECT_NUMBER 2
 

АндрейМ

New member
Добрый день!
Не могу разобраться. После пересборки перестали работать ~xxx~ переменные. Однажды само вылечилось.

Снимок.PNG

Проблема решена. Число функций, которые не имели флага "ICACHE_FLASH_ATTR" превысило критический объем. Глюков было много.
 
Последнее редактирование:

Andy Korg

Moderator
Команда форума
Код:
web_int_callbacks.c:497:7: error: implicit declaration of function 'tcp2uart_ajax_rx' [-Werror=implicit-function-declaration]
  tcp2uart_ajax_rx(ts_conn, tmo);
  ^
Исключительно при #define PROGECT_NUMBER 2
Судя по всему вы пытаетесь скомпилировать оригинальный проект pvvx с github. Если вам не нужна команда uart_data то просто закоментируйте ветку else ifcmp("uart_data")
 
Судя по всему вы пытаетесь скомпилировать оригинальный проект pvvx с github. Если вам не нужна команда uart_data то просто закоментируйте ветку else ifcmp("uart_data")
да, так и есть. пытался и пытаюсь отследить всю цепочку чтобы используя #define PROGECT_NUMBER 2 проект скомпилился.
до этого уже комментировал цепочку else ifcmp("uart_data") в файлах web_int_callbacks.c и web_int_vars.c и всё связанное чтобы получить резкльтат
и каждый раз возникают разные ошибки. вылечить это можно если включить #define USE_TCP2UART. но прикол в том что он совершенно не нужен! вот результат кjvентирования ветки else ifcmp("uart_data")

Код:
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc  -nostartfiles -nodefaultlibs -nostdlib -LF:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master//lib -TF:/EWorkNow/MC_Sourcers_ESP8266/esp8266web-master//ld/overlay.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,-Map -Wl,.output/eagle/image/eagle.app.v6.map -Wl,--start-group -lmgcc main/.output/eagle/lib/libmain.a -Wl,--end-group -o .output/eagle/image/eagle.app.v6.out
main/.output/eagle/lib/libmain.a(main.o):(.text+0x4): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(main.o): In function `drv_recv':
main.c:(.text+0x174): undefined reference to `mdb_buf'
main/.output/eagle/lib/libmain.a(hspi_master.o):(.text+0x24): undefined reference to `copy_s1d4'
main/.output/eagle/lib/libmain.a(hspi_master.o): In function `hspi_cmd_write':
hspi_master.c:(.text+0x82): undefined reference to `copy_s1d4'
автор отвечать не желает. прокт не компилится. разбираться - разбираюсь уже две недели. Andy Korg, успользовать Ваш проект - надо выкинуть весь код и вставить свой, но так чтобы изменения были минимальны.
 

valerivp

Member
Поясните плиз для чайника в сайтостроении и начинающего в ардуиностроении:
Что может и что не может данный проект из того, что мне нужно:

  • Автономная работа решения и интерфейса без облаков, телефонов и т.д. - т.е. интерфейс через веб страницы.
  • Файлы страниц и настроек - на SD карте - FAT простая, понятная мне файловая система, я смогу редактировать данные легко и просто.
  • Обновление файлов по воздуху.
  • Отображение данных с датчиков, у меня пара десятков датчиков 1wire. Остальные через onewirehub можно привести к этому же протоколу.
  • Ну и UART, куда без него.
  • Web-сокеты, чтобы интерфейс реагировал сразу на изменение данных системы.
  • Возможность управления пинами и интерфейсами Uart, 1wire, i2c, ... на основании действий пользователя.
  • Поддержка какой-нибудь СУБД - хотя наверное не важно, если нет поддержки php.
  • Наличие программного интерфейса для создания своих модулей - работа с интерфейсами, логикой(?), ...
 

pvvx

Активный участник сообщества
Поясните плиз для чайника в сайтостроении и начинающего в ардуиностроении:
Что может и что не может данный проект из того, что мне нужно:

  • Автономная работа решения и интерфейса без облаков, телефонов и т.д. - т.е. интерфейс через веб страницы.
  • Файлы страниц и настроек - на SD карте - FAT простая, понятная мне файловая система, я смогу редактировать данные легко и просто.
  • Обновление файлов по воздуху.
  • Отображение данных с датчиков, у меня пара десятков датчиков 1wire. Остальные через onewirehub можно привести к этому же протоколу.
  • Ну и UART, куда без него.
  • Web-сокеты, чтобы интерфейс реагировал сразу на изменение данных системы.
  • Возможность управления пинами и интерфейсами Uart, 1wire, i2c, ... на основании действий пользователя.
  • Поддержка какой-нибудь СУБД - хотя наверное не важно, если нет поддержки php.
  • Наличие программного интерфейса для создания своих модулей - работа с интерфейсами, логикой(?), ...
  • Не поддержки "ардуиностроения"
Далее можно не разбирать.
 

valerivp

Member
ардуиностроение
я в это понятие вложил "IoT",

Если я правильно понял, Вам не нравится среда "arduino" - ваше право пользовать эклипс.
Я пока остановился на PlatformIO

а
Далее можно не разбирать.
говорят обычно когда по существу сказать нечего.

у меня есть идея проекта. часть я уже сделал, часть - ищу готовые решения. Вам - (вы же вроде автор?) спасибо за участие, я (как и многие другие, судя по ветке) ваше решение использовать не смогу.
 

pvvx

Активный участник сообщества
говорят обычно когда по существу сказать нечего.
У вас есть какие-то готовые примеры и решения для встраивания в web-свалку?
Вам - (вы же вроде автор?) спасибо за участие, я (как и многие другие, судя по ветке) ваше решение использовать не смогу.
Ну вот оно и доказательство правильно поставленного диагноза - вопрошающему требуется подход "ардуиностроения" = выложить примеры и всё готовое по первому запросу ардуиностроителя, чтобы голова ардуиностроителя не работала.
А у нас тут другая тема :)
 

valerivp

Member
У вас есть какие-то готовые примеры и решения для встраивания в web-свалку?
Ну вот оно и доказательство правильно поставленного диагноза - вопрошающему требуется подход "ардуиностроения" = выложить примеры и всё готовое по первому запросу ардуиностроителя, чтобы голова ардуиностроителя не работала.
А у нас тут другая тема :)
Вы знаете, моя основная работа требует в т.ч. знания основ работы с Apache, в плане знания параметров его конфигурационных файлов. Но это не означает, что мне стоит задумываться как написан этот самый Apache.

У меня есть некоторое количество тиражных решений, как собственных, так и сделанных для работодателя.
Часть моих собственных решений опубликовано свободно и им пользуются тысячи пользователей (игра на Андроид, решения для 1С). Часть - приносит мне доход. Для разных решений есть разные ресурсы.

Вы предлагаете выложить это все тут? С просьбой - "я же делюсь бесплатно", ответьте мне на вопросы пожалуйста...

дальше в дискуссии не вижу смысла.
что такое ваша web-свалка я вообще не понимаю.

За ответы по существу на изначальные вопросы буду благодарен.
 

pvvx

Активный участник сообщества
Вы знаете, моя основная работа требует в т.ч. знания основ работы с Apache, в плане знания параметров его конфигурационных файлов. Но это не означает, что мне стоит задумываться как написан этот самый Apache.
Ну вы его изучили? Или нет - опрашиваете форумы, для вставки в конфиги того что вам нужно? :)
У меня есть некоторое количество тиражных решений, как собственных, так и сделанных для работодателя.
Часть моих собственных решений опубликовано свободно и им пользуются тысячи пользователей (игра на Андроид, решения для 1С). Часть - приносит мне доход. Для разных решений есть разные ресурсы.
Ну значит надо делиться во благо развития. Например помочь оплачивать ресурс на котором задаете вопросы...
Вы предлагаете выложить это все тут? С просьбой - "я же делюсь бесплатно", ответьте мне на вопросы пожалуйста...
Неа. Просто по существу и являются вопросы с предложениями по web-свалке, а остальное - это требование халявы для использования вами ради заработка.
Из вашего списка поддерживается всё, кроме 1wire, а также заработок с использованием решений из web-свалки.
Вот пример:
О чем говорит ваш вопрос "Поддержка какой-нибудь СУБД" - вы выбрали ESP8266 и не прояснили главные вопросы - его ресурсные возможности. Это только один намек на то, что пришли всё получить на халяву и типа вам тут обязаны (ардуиностроитель). Тема тут SDK и создание собственных прошивок, а не помощь в выборе уже готовых для заработка. Меняйте подход и всё будет Ok :)
 
Последнее редактирование:

valerivp

Member
Если вы делаете решение - ваше право устанавливать порядок его использования. Напишите лицензионное соглашение и выложите его в репозиторий. Текущий проект я делаю для себя, и может ли он стать тиражным сказать трудно.

Что такое web-свалка я не понимаю.

Если есть все, что мне требуется, подскажите пожалуйста
как вывести данные с UART в поле через web сокет? (тогда я смогу все что угодно слать на сайт)
как по нажатию на кнопку на сайте послать данные в UART
не увидел использования SD карты.
Не увидел (может плохо смотрел) явного описания как писать собственные модули.
 
Сверху Снизу