• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

A_D

Active member
Всё это к китайцам. Это их идеология в SDK - скрыть информацию и давать порциями, да всё запутать, чтобы продать тысячу раз добавив по крупице.
В STM32 ещё больше файлов и если там потребуется сделать аналог, то выйдет ешё запутанней или вообще ничего не выйдет при использовании стандартных либ.
ну на удивление.... там это выходит быстрее и проще.... ну это уже разгагольствование, думаю хватит оффтопа.
И проект не имеет вашей цели, а сделан для настройки имеющихся аппаратных кусков через Web и используемые вещи требуют высокой производительности и малого объема кода. Это не Arduino c массой ограничений.
Вам данный проект не годится. Используйте Arduino :)
это я понимаю и он реально подходит лучше других вариантов. А адурино я как то даже не скачивал и не смотрел чего там наворотили под ESP - хватило обычного под AVR, столько нагромождений в библиотеках + убожественная ide с маленькой буквы... не, пожалуй это даже для новичков не годится - лучше уж с чистого С начать обучать в нормальной IDE. :)
 

pvvx

Активный участник сообщества
ну на удивление.... там это выходит быстрее и проще.... ну это уже разгагольствование, думаю хватит оффтопа.
Эт не офтоп. Не видел я там, на STM32, Web сервера :) Что-то не лезет он в стандартные либы :)
это я понимаю и он реально подходит лучше других вариантов. А адурино я как то даже не скачивал и не смотрел чего там наворотили под ESP - хватило обычного под AVR, столько нагромождений в библиотеках + убожественная ide с маленькой буквы... не, пожалуй это даже для новичков не годится - лучше уж с чистого С начать обучать в нормальной IDE. :)
Тогда наверно понятно от куда и почему я использую приставку "свалка". Учтите ещё, что она строилась совместно с выходом глюк за глюком выходящих китайских SDK.
И время перехода на новый SDK у неё одно из первых. Дурино до сих пор не может переползти на SDK 1.4.0.
Да и это прикол - сравнивать работу цельной корпорации с мной одним, не являющимся проф.программистом, по вечерам. :) :) Итоги сотен человеко жизней и мои дцать человеко-часов. :)
Они работают по вашим предлагаемым методам и как итог – у них ничего и не реализовано за многие годы. А раз нет возможности при использовании их либ достичь результата в короткие сроки с малыми затратами - значит метод и принципы у них не верны.
 
Последнее редактирование:

A_D

Active member
Эт не офтоп. Не видел я там, на STM32, Web сервера :) Что-то не лезет он в стандартные либы :)
а тема то была не о web а об обычном uart :) ну а если про web - то к примеру в Keil е не мало фич, которые буквально кликами мыши набираешь необходимую переферию, обвес (типа веб сервера) и от программиста требуется минимум для запуска примера - а дальше вороти как хоч )

Тогда наверно понятно от куда и почему я использую приставку "свалка". Учтите ещё, что она строилась совместно с выходом глюк за глюком выходящих китайских SDK.
И время перехода на новый SDK у неё одно из первых. Дурино до сих пор не может переползти на SDK 1.4.0.
и тем не менее, Ваш вариант наиболее стабильный.

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

Они работают по вашим предлагаемым методам и как итог – у них ничего и не реализовано за многие годы. А раз нет возможности при использовании их либ достичь результата в короткие сроки с малыми затратами - значит метод и принципы у них не верны.
эм, я никаких методов никому не предлагал.
 

pvvx

Активный участник сообщества
а тема то была не о web а об обычном uart :)
UART с управлением через web. Дык часть конфигурации Uart и описана, и остается после отключения TCP2UART.
эм, я никаких методов никому не предлагал.
А про кошмарное структурирование хидеров и либ я выдумал? :)
И я не сомневаюсь, что можно всё описать более структурированно и компактнее, да чтобы и итоговый код был ещё меньше и более производительный. Но вот вы не даете решений как это сделать, а сравниваете с неперспективными методами заимствованными у других. Неперспективными для одиночки, чтобы реализовать что ему требуется.
Для блогов и прочего видео "мигаем светодиодом" arduino явно перспективнее. :p

Ну а что про UART– вам надо описать свою процедуру обработки прерывания Uart и кидать какие-то принятые данные в буфер, как и передачу. Передача по прерываниям пустого fifo буфера UARTвообще проста. Вставлять это в web-свалку не буду, т.к. это дело протоколо-зависимо на 100% под каждый случай и не обобщается.
Готовится только простой modbus rtu. А далее, возможно, если будет желание и реализация типа "панели оператора" с частичными функциями ПЛК но только на web-сервере. По этому использовать структурированные либы и описания я не могу - не позволяют имеющиеся ресурсы у ESP8266...
 
Последнее редактирование:

A_D

Active member
ну я же писал - это не придирка, это просто выражение первых мыслей в слух, как только начинаешь вникать во всё то, что в большей степени китайцами нагорожено.
Блог я к сожалению (или счастью?) не веду, как и видео с моргалками не снимаю
- а что то маломайски серьезное реализовать уже на перспективной адурино как то не видится возможным имхо)
Спасибо большое за ответы выше! без них я бы точно дольше порядком разбирался ;)
 

ghostaz

New member
Здравствуйте. Прочитал первый пост с описанием сервера и его возможностей, есть ли поддержка динамических страниц?
 

codavr

New member
поддержка динамических страниц
некоторые возможности этого есть. ресурсов мало. никаких перлов и php. есть инклуд веб-файлов и вывод переменных сервера.

что-то конкретное можно дописать на си.
 
Последнее редактирование:

ghostaz

New member
То есть CGI поддерживается? Отлично!
Я правильно понимаю что можно на гитхабе взять из папки bin бинарник 0x00000.bin, прошить им чип и сервер будет работать? Или не все так просто?
 

pvvx

Активный участник сообщества
CGI только описанные, без дополнительного скриптового языка. Можно закопировать в диск любой набор веб страниц с java и javascript и он будет работать, как в варианте простейшего Web-сервера на windows...
Набор встроенных скриптовых переменных обеспечивает управление всеми режимами WiFi, UART, GPIO, ADC, переменных modbus и управление другими уже встроенными сервисами...
Поддержка передачи переменных в GET, POST, Куки и Мулти-Дата формате, формирование вывода переменных в XML.
GET, POST, Куки наборы переменных ограничены несколькими килобайтами за раз. Кол-во переменных в Мулти-Дата формате не ограничено (ограничено форматом передачи длины общего сообщения в 32 бита - 4294967296 байт - 4 Гегабайта).
PS: Впишу это в заголовок, чтобы не спрашивали... :) Но там уже всё в одно соо не лезет по ограничению объема...
 
Последнее редактирование:

ghostaz

New member
Если не сложно, опишите как загрузить веб сервер в чип. Модификация кода самого веб сервера мне не нужна, просто хотелось бы поставить сервер и писать странички. Возможно это уже где то описано, я не увидел. Заранее благодарен)
 

pvvx

Активный участник сообщества
Описано в теме TCP2UART. Скачиваете последний архив fullflash_and_webfs_xxx, прошиваете, собираете диск и вливаете в ESP8266 :)
Сейчас попробую туда добавить последний "скомпилленный" бинарник на meSDK1.4.1 для не желающих программировать на СИ...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Кто поможет привести в порядок это https://github.com/pvvx/esp8266web/blob/master/WebVars.xlsx ?
Пока вставлено так:
web135.gif
Простым выводом сохранением из Exel в htm :)
Решил заодно почистить бардак с переменными...
 
Последнее редактирование:

SoftUniq

Member
Либо я туплю либо уже кроме кода не вижу нормального текста, ребят где есть полное описание возможностей данной прошивки?
Почему спрашиваю, мне надо прочитать данные датчика температуры и влажности, как это сделать?
 

pvvx

Активный участник сообщества
Попробовать можно, но что есть привести в порядок? Сделать в виде справки с перекрестными ссылками? Поправить текст?
А я сам не знаю. Но чтобы не было таких вопросов:
Либо я туплю либо уже кроме кода не вижу нормального текста, ребят где есть полное описание возможностей данной прошивки?
@Andy Korg - писатель из меня никудышный. Один печатный лист грамотно составленной технической документации есть рабочий день квалифицированного инженера. А у меня столько времени нет, чтобы нарисовать доки во всех форматах, да и накопившийся объем для описания web-свалки будет составлять сотни страниц...
 

PostLast

Member
pvvx, В проекте интегрирован старый или модифицированный pwm.h не из iot от 1.4.0 Он работоспособен с 1.4.0? Вы планируете интегрировать ШИМ в проект ?
 

pvvx

Активный участник сообщества
Вы планируете интегрировать ШИМ в проект ?
Нет ШИМ на таймере мне не нравится. Слишком низкочастотен и при этом большой джиттер из-за биений внутренней шины доступа к i/o, низкой частоты строба выходов i/o и частых запретов прерываний в китай-части обслуживания WiFi на большое время.
Есть только аппаратный sigma-delta, но с ней тоже не всё корректно - нет четкой документации - чип работает как-то не так (дрожит сигнал).

gpioN_sgs=duty - Подключить вывод GPIOn к sigma-delta 312кГц
gpioN_sgс=1 - Отключить вывод GPIOn от sigma-delta 312кГц
gpio_sgn=duty - Задать новый параметр duty для sigma-delta 312кГц
Где:
duty – параметр duty от 0 до 255. При =128 - выход меандр
N – номер GPIO: 0..15.
Sigma-delta выход назначается на любое кол-во выходов, но внутренний источник сигнала один.

ШИМ ещё можно организовать на выходе сигнала данных I2S, но у него низкий CLK для вывода приличного качества в области звукового диапазона...
В итоге внешний DAC - дешевле и сердитей.
 
Последнее редактирование:

PostLast

Member
pvvx, Спасибо, попробую надо только понять где gpioN_sgs=duty рулить. Но вероятно я этой частотой весь эфир испорчу. Мне надо именно шим с низкой частотой.
пока от кода
Код:
#include "hw/pin_mux_register.h"
#include "driver/pwm.h"

// бла бла бла

#define PWM_0_OUT_IO_MUX PERIPHS_IO_MUX_MTDI_U
#define PWM_0_OUT_IO_NUM 12
#define PWM_0_OUT_IO_FUNC  FUNC_GPIO12

#define PWM_1_OUT_IO_MUX PERIPHS_IO_MUX_MTDO_U
#define PWM_1_OUT_IO_NUM 15
#define PWM_1_OUT_IO_FUNC  FUNC_GPIO15

#define PWM_2_OUT_IO_MUX PERIPHS_IO_MUX_MTCK_U
#define PWM_2_OUT_IO_NUM 13
#define PWM_2_OUT_IO_FUNC  FUNC_GPIO13

uint32 duty = 50;
uint32 io_info[][3] = {    /*{PERIPHS_IO_MUX_MTDI_U,PWM_0_OUT_IO_FUNC,PWM_0_OUT_IO_NUM} ,
                            {PWM_1_OUT_IO_MUX,PWM_1_OUT_IO_FUNC,PWM_1_OUT_IO_NUM},*/
                            {PWM_2_OUT_IO_MUX,PWM_2_OUT_IO_FUNC,PWM_2_OUT_IO_NUM}    };
        LOCAL    void ICACHE_FLASH_ATTR config_PWM(void) {
       pwm_init(100, &duty, 1, io_info);
       pwm_start();
    };


LOCAL void ICACHE_FLASH_ATTR init_done_cb(void)
{
получаю выхлоп транслятора
Код:
c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc  -nostartfiles -nodefaultlibs -nostdlib -L../lib -T../ld/eagle.app.v6.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,-Map -Wl,.output/eagle/image/eagle.app.v6.map -Wl,--start-group -lsdk gdbstub/.output/eagle/lib/libgdbstub.a driver/.output/eagle/lib/libdriver.a web/.output/eagle/lib/libweb.a mdbtcp/.output/eagle/lib/libmdbtcp.a user/.output/eagle/lib/libuser.a -Wl,--end-group -o .output/eagle/image/eagle.app.v6.out
user/.output/eagle/lib/libuser.a(user_main.o): In function `init_done_cb':
user_main.c:(.irom0.text+0x70): undefined reference to `pwm_init'
user_main.c:(.irom0.text+0x74): undefined reference to `pwm_start'
user_main.c:(.irom0.text+0xa7): undefined reference to `pwm_init'
user_main.c:(.irom0.text+0xad): undefined reference to `pwm_start'
collect2.exe: error: ld returned 1 exit status
../Makefile:288: recipe for target '.output/eagle/image/eagle.app.v6.out' failed
mingw32-make[1]: *** [.output/eagle/image/eagle.app.v6.out] Error 1
mingw32-make[1]: Leaving directory 'C:/esp8266web-master/app'
C:/esp8266web-master/Makefile:237: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2
pwm.h 1.4.0 но от вашей сборки естественно с другим pwm_init(100, &duty); выхлоп идентичен.
 
Последнее редактирование:
Сверху Снизу