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

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

pvvx

Активный участник сообщества
а можно расшифровку, как к примеру отправить вот такое сообщение через веб морду:
A1-0; D1-1; RA1; RD1; SA1-DO; SA2-AI; WD6-130
Так и отправить, но в порт TCP2UART.
Пытаюсь подружить ардуину с ней...
На это есть тема Arduino + ESP8266
и еще если не сложно как считать что либо с последовательного порта в вебморду, пример если не трудно.
Это невозможно в рамках много-пользовательского Web интерфейса, без создания специального дополнительного протокола, отслеживания приоритетностей запросов-ответов и самих пользователей, да активных соединений. Внешняя простая плата Arduino этого не потянет.
сам разберусь!
Ждем вашего решения для скоростей UART от 300 до 5000000 Бод, не занимающего все ресурсы ESP8266, да подходящего всем другим и не конфликтующего с простыми стандартами Web.
 

PostLast

Member
pvvx, Вы правильно хотите решить задачу но юзеру хочется простого. Введите пару команд sys_uars~ и ~sys_conf~
с кодом в web_int_callbacks.c
Код:
else if(!os_memcmp((void*)cstr, "uars", 5)){ char uars = READ_PERI_REG(UART_FIFO(UART0)); tcp_puts("%c", uars);}
else if(!os_memcmp((void*)cstr, "conf", 4)) {uart_tx_one_char('!'); }
и юзер радоcтоно напишет в WEB
~sys_uars~~sys_uars~~sys_uars~~sys_uars~~sys_conf~ и один пользователь получит строчку в веб морде, а ардуино подтверждение, что строка прочитана. И не надо разбираться ему с переменными типа sys_ramaddr=val
А если захочет дальше то и http://aesp8266/web.cgi?sys_ram0x60000000=0x21 напишет и компилятор поставит
 

Elik

New member
Так и отправить, но в порт TCP2UART.
На это есть тема Arduino + ESP8266
Это невозможно в рамках много-пользовательского Web интерфейса, без создания специального дополнительного протокола, отслеживания приоритетностей запросов-ответов и самих пользователей, да активных соединений. Внешняя простая плата Arduino этого не потянет.
Ждем вашего решения для скоростей UART от 300 до 5000000 Бод, не занимающего все ресурсы ESP8266, да подходящего всем другим и не конфликтующего с простыми стандартами Web.
похоже я в тупике...

то есть соединив RX и TХ ESP8266 с Ардуиной не получится по ТХу отправить (хотя я уже отправил туда сообщение и ардуино его распознал) и получить в вебинтерфейс данные типа ответа на запрос об опросе цифровых входов, как это у вас получается с входами GPIO самого модуля?


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

Заранее благодарен в любом случае!!
 

Вложения

Последнее редактирование:

pvvx

Активный участник сообщества
pvvx, Вы правильно хотите решить задачу но юзеру хочется простого. Введите пару команд sys_uars~ и ~sys_conf~
с кодом в web_int_callbacks.c
Код:
else if(!os_memcmp((void*)cstr, "uars", 5)){ char uars = READ_PERI_REG(UART_FIFO(UART0)); tcp_puts("%c", uars);}
else if(!os_memcmp((void*)cstr, "conf", 4)) {uart_tx_one_char('!'); }
Вы же должны понимать, что это работать не будет. Перечитав страницу что будет?
Если делать вывод построчно, то надо терминировать строку и помещать в буфер, до приема новой. Этот буфер уже отображать на странице. Но и там будет полный бардак и тысячи вопросов - "что я делаю не так?".
Напишите на java терминал и гоняйте какие хотите строки в TCP2UART.
Для передачи переменных через UART существуют стандартные, хотя и кривые протоколы типа modbus rtu. К этому прошивка и идет...
 

PostLast

Member
Правильно. Один человек или запрос один раз получит один байт из UART. Иное это протоколозависимая часть реализуемая юзером где он хочет и какие знания у него есть.
Немного философии
[off]Вашу прошивку я воспринимаю как набор позволяющий создавать действительно интеллектуальные устройства c нормальным пользовательским интерфейсом за копейки. Есть целый класс устройств, которым при работе экран не нужен но нужен интерфейс для начальной настройки и периодического контроля. Логгеры, контроль доступа, замки. Вы видели какие чудеса мысли придумывают разработчики чтобы настроить например цифровой датчик давления, усилия, весы, логгер? Если ранее эту задачу надо было решать или жертвуя ТТХ изделия в том числе и ценой или заставляя пользователя таскать с собой спец ПО. Здесь можно создать пользовательский интерфейс и не за $35 а за $3 Так вот мне кажется проект можно развивать именно в сторону эффективного взаимодействия ядра системы с WEB в целом Вы уже сделали шаг в эту сторону, но как я понял поддержка modbus позволяет уже сейчас создавать виртуальные панели оператора и строить децентрализованные системы обеспечивая резервирование. [/off]
 

pvvx

Активный участник сообщества
Так вот мне кажется проект можно развивать именно в сторону эффективного взаимодействия ядра системы с WEB в целом Вы уже сделали шаг в эту сторону, но как я понял поддержка modbus позволяет уже сейчас создавать виртуальные панели оператора и строить децентрализованные системы обеспечивая резервирование.
Да, но времени на него нет. Но он всё равно остается в планах, после реализации других задач, т.к. они тоже ведут к нему.
 

kloker

New member
прошивал fullflash_web052.bin в NodeMCU c esp12e, но в сети WiFi не появляется SSID ESP8266. что я делаю не так?
модуль исправен, проверял прошивками от других проектов.

https://en.wikipedia.org/wiki/NodeMCU
FLASH_DOWNLOAD_TOOLS Options (all size flash 512k..16Mbytes):
CrystalFreq: 26M
File: fullflash_webXXX.bin
SPI SPEED: 40 MHz
SPI MODE: DIO
FLASH SIZE: 4Mbit (512kbytes) !
ADDR: 0x00000
BAUDRATE: 115200
 
Последнее редактирование:

pvvx

Активный участник сообщества
прошивал fullflash_web052.bin в NodeMCU c esp12e, но в сети WiFi не появляется SSID ESP8266. что я делаю не так?
модуль исправен, проверял прошивками от других проектов.
Найдено - в старт SDK 1.4.1 была добавлена ещё инициализация переменной настроек WiFi у китайцев. Я её пропустил. Но это ещё не всё - какая-то нестабильность в старте всё равно осталась... Наверно только в новом SDK починят.
 
Последнее редактирование:

kloker

New member
fullflash_web052d.bin заработала и не слетает после первой перезагрузки. удивило что вебморда WEBFiles.bin уже была во флеше, похоже осталась от предыдущих экспериментов.
Спасибо за правку в коде, буду разбираться с функционалом.

при коннекте WiFi Station к AP из сети пропадает WiFi SoftAP. есть ли режим первичной настройки (пин на землю или питание к примеру)? Сброс настроек WiFi по умолчанию - RX на GND в предыдущей прошивке не работал. при попытке настроить девайс в другой WiFi сети вариантов поправить настройки не нашел.

Опишите пожалуйста режим swap и как в него входить, на первую страницу темы желательно.
 
Последнее редактирование:

Николя

New member
Приветствую всех. Ребята, что я делаю не так. Залил прошивку. Получаю вот это. Дальше как быть?
На первой странице про диск пишется, ни фига не понял что и как. Вразумите пожалуйста.
Спасибо.
 

Вложения

kloker

New member
Приветствую всех. Ребята, что я делаю не так. Залил прошивку. Получаю вот это. Дальше как быть?
На первой странице про диск пишется, ни фига не понял что и как. Вразумите пожалуйста.
Спасибо.
не загружен диск с фебмордой))
4) Если Flash на модуле более 512 Кбайт, то после подключения к AP "ESP8266" требуется заливка диска программой WEBFS22.exe или эксплорером набрав http://192.168.4.1/fsupload. Можно записать WEBFiles.bin и программатором по адресу 0x80000.
 

Elik

New member
Приветствую всех. Ребята, что я делаю не так. Залил прошивку. Получаю вот это. Дальше как быть?
На первой странице про диск пишется, ни фига не понял что и как. Вразумите пожалуйста.
Спасибо.
Заливай предпоследнюю версию, последняя глючная, срабатывает не всегда...
У меня точно также было, когда поверх дефолтной вебморды заливал другую на версии 52. На 51 таких глюков не наблюдалось, но там нет поддержки svg!
 

kloker

New member
052 версию допилили, последняя 052d. И стала вполне устойчивой и стабильной. Первая действительно была с глюком при старте, частотные сетки плавали, насколько я понял. У меня 052d работает вторые сутки на тесте.
 

pvvx

Активный участник сообщества
fullflash_web052d.bin заработала и не слетает после первой перезагрузки. удивило что вебморда WEBFiles.bin уже была во флеше, похоже осталась от предыдущих экспериментов.
В fullflash_web052d.bin ошибка в файле WEBFiles\protect\wifi.htm (строка 180):
HTML:
wifi_st_sta:(~wifi_st_sta~>5)?6:~wifi_st_sta~
Может не отрабатывать javascript на этой странице. Требуется исправить и перезалить диск.
Возникла по причине моего недосмотра - менял названия многих переменных в единое соответствие. Эту пропустил в HTML (в трех местах данного файла исправил, а в четвертом проскочил).
при коннекте WiFi Station к AP из сети пропадает WiFi SoftAP
На время поиска внешней AP. Пауза поиска указана в настройках. Китайская фича.
Reconnect.gif
Или http://sesp8266/web.cgi?wifi_st_rect=1 (отключение на китай-стандарт - на некоторых WiFi вообще не будет виден AP модуля)

есть ли режим первичной настройки (пин на землю или питание к примеру)? Сброс настроек WiFi по умолчанию - RX на GND в предыдущей прошивке не работал. при попытке настроить девайс в другой WiFi сети вариантов поправить настройки не нашел.
"Сброс настроек WiFi по умолчанию - RX на GND" работает, если не отключен.
http://sesp8266/web.cgi?cfg_pinclr=1 (включить, но по умолчанию включен)
Опишите пожалуйста режим swap и как в него входить, на первую страницу темы желательно.
swap.gif
Или http://aesp8266/web.cgi?uart_0_swap=1
 
Последнее редактирование:

Elik

New member
052 версию допилили, последняя 052d. И стала вполне устойчивой и стабильной. Первая действительно была с глюком при старте, частотные сетки плавали, насколько я понял. У меня 052d работает вторые сутки на тесте.
Ясно, завтра залью посмотрим...Спасибо за инфу!
 

pvvx

Активный участник сообщества
Первая действительно была с глюком при старте, частотные сетки плавали, насколько я понял.
И будут "плавать" при некоторых условиях - к примеру при перезагрузке и одновременному изменению напряжения питания без выставленных опций обязательной подстройки всех параметров при старте. Эти опции в esp_init_data_default.bin.
Частичные описания в 2A-ESP8266__IOT_SDK_User_Manual__EN_v1.4.pdf стр 24..25 ...
rf_init.gif
а так-же байт 107, 108 и множество других... и всё это в зависимости от причины перезагрузки...
Т.е. таблица подстроек с версии SDK 1.4.0 сохраняется в секторе за 128-ю байтами esp_init_data_default.bin. Он перезаписывается при старте с разными опциями.
sec0x7c.gif
 
Последнее редактирование:

kloker

New member
И будут "плавать" при некоторых условиях - к примеру при перезагрузке и одновременному изменению напряжения питания без выставленных опций обязательной подстройки всех параметров при старте. Эти опции в esp_init_data_default.bin.
Это автоподстройка под AP? А если модуль сам в роли AP, то что является опорной сеткой частот, отталкиваются от датчика напряжения? Мне достались am1117 3.3 не очень хорошего качества, один вообще плавать начал от 3.12в до 3,37в. Пришлось на dc-dc перейти.
 

pvvx

Активный участник сообщества
Это автоподстройка под AP? А если модуль сам в роли AP, то что является опорной сеткой частот, отталкиваются от датчика напряжения?
Этот вопрос задайте китайцам. Доков то нет, а интерфейс управления опциями калибровки и сохранения тоже отсутствует. В SDK 1.4.1 они уже начали патчить это дело в стартовой процедуре, что я и проглядел.
 
Последнее редактирование:

kloker

New member
Мрачно. Закрытый sdk с минимумом доки на чип. Если-бы не цена модуля, мало кто бы парился с такими тараканами.
Т.е прямого доступа к железу нет, и весь софт, включая ветку ардуины компилится через ихний sdk?
 

pvvx

Активный участник сообщества
Мрачно. Закрытый sdk с минимумом доки на чип.
В этом и есть самый главный интерес. :)
Т.е прямого доступа к железу нет, и весь софт, включая ветку ардуины компилится через ихний sdk?
Да. Плюс ещё конфликт алгоритмов системы ардуины к данной системе. В основном по многозадачности... и кривых китай-алгоритмов.
Если завтра выкинут новую версию с новым испытываемым алго, то ни java, ни Дурина, и прочие Lua, Байсик работать не будет. Будут месяцы адаптировать без итогов.
Версии SDK не менее чем через три китайцы оптимизируют алгоритм wifi калибровок... А пока будут вставлять патчи во все процедуры и куски своих либ, гордо заявляя об очередной "оптимазе" :)
 
Последнее редактирование:
Сверху Снизу