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

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

pvvx

Активный участник сообщества
Получается, что в версии web 0.47 180915 все работает потому, что SDK там версии 1.3?
С нуля перешивал, перешивал и после замены флэш с 512 на 4 МБ, изменений не было.
Не знаю. У меня на SDK 1.4.0 работает и ничего кривого пока не нашел, а что было и нашел исправил уже к версии типа 4.8c. Есть конечно нюансы, но основных функций Web они не касаются.
Описали бы конкретно, что и почему у вас тама не работает. Из изменений в SDK 1.4.0 всего предварительная инициализация-настройка WiFi, но это не у меня, а в китайской части SDK. В esp_init_data_default.bin 114 байт управляет типом инициализации. Описано на странице 24 "2A-ESP8266__IOT_SDK_User_Manual__EN_v1.4.pdf".
В Web меняется на странице http://aesp8266/protect/rfinit3.htm "phy_powerup_option[114]"
или http://192.168.4.1/web.cgi?sys_const_114=2
 
Последнее редактирование:

Tomahawk

New member
На некоторых браузерах(с Opera точно) можно столкнуться с тем, что после погружения смартфона в спящий режим и повторного открытия браузера, наблюдаются тормоза веб-сайта на модуле, иногда жуткие. Если это произошло, решаю проблему простым переподключением on\off вай-фая, тогда сайт снова быстро загружается.
 

pvvx

Активный участник сообщества
На некоторых браузерах(с Opera точно) можно столкнуться с тем, что после погружения смартфона в спящий режим и повторного открытия браузера, наблюдаются тормоза веб-сайта на модуле, иногда жуткие. Если это произошло, решаю проблему простым переподключением on\off вай-фая, тогда сайт снова быстро загружается.
При "погружении смартфона в спящий режим" они часто отключают WiFi. Тут надо смотреть как состоится дальнейший диалог смарта по WiFi. Может это потеря связи связанная с WPA или другой авторизацией... Без разных логов говорить пока не о чем.
 

balabom

New member
Уважаемые граждане, имею небольшой вопрос.
***Спойлер: спасибо pvvx за замечательную прошивку***
Данную прошивку уже давно (3 недели) использую, собрав из стабилизатора на 3,3в + ESP-01 + max3232. конвертер RS232-TCP-Wifi. Вещь хорошая: приятнее программировать оборудование, свободно расхаживая с ноутом по стройке, нежели быть привязанным шнурком)
Так же есть желание сделать конвертер RS485-TCP-Wifi, благо в закромах лежит заказанный модуль RS485-TTL на микросхеме MAX485.
Но есть ньюанс - RS485 полудуплексный интерфейс, для этого у MAX485 есмъ специальный пин, на котором должен быть LOW при работе в режиме приема, и HI в режиме передачи.
Т.е. как только TХ 8266 стал активен, нужно подтягивать к + вывод передачи, и держать пока идет передача.
Оборудованием RTS/CTS не поддерживается, используются только TX-RX-GND у rs232.
Собственно вопрос: есть ли идеи, как это реализовать не правя исходников, или без правок не обойтись?
 

pvvx

Активный участник сообщества
Собственно вопрос: есть ли идеи, как это реализовать не правя исходников, или без правок не обойтись?
Без поправок не обойтись, тем более есть стандарт Modbus TCP. Вам нужен типа Modbus TCP bridge - он позволяет подключить к локальному RS-485 несколько устройств для удаленного управления... Для реализации было пару проблем, но они уже решены. Готовой прошивки пока нет - некогда переписывать интерфейс на HTML.
В исходниках пример Modbus TCP уже вложен и он работает (можно быстро дописать управление пинами и т.д. модуля), но нет моста с RS-485, т.к. возникают множественные конфликты с TCP2UART... Короче это выливается в отдельную систему.
 
Последнее редактирование:

aneox

Member
Я перепробовал штук 5 разных прошивок, Ваша самая стабильная, отлично работает и скорость есть.
У меня задача такая, работать с стм32 с мобильника. Иногда нужно переслать 30-40мб быстренько. Озу у меня есть для этого 40кб свободных, передавая пакетами по 40кб с подтверждением удалось добиться скорости около 120кб / с расчетных, при скорости уарта 1.000.000 бод. Хотелось бы быстрей, но не суть. У меня накопилось несколько вопросов, надеюсь ответите на все:

1. В простое вайфай линк рвется, решил пока посылкой пакета в тсп раз в 3 секунды, но это не очень удобно, как можно обойти?
2. Оптимально ли передавать пакетом 40кб с подтверждением? может что посоветуете, rts cts нет возможности использовать, нет свободных ног у стм32
3. Каким запросом можно менять ssid , пароль и скорость уарта, а также программный ресет не заходя в веб морду, 192.168.4.1/?action=......
4. Как проще всего отключить веб морду после настройки, если это возможно.
5. Правильно ли я понял что если притянуть rx ногу есп к земле во время старта и рестарта, то настройки сбросятся к дефолту?
Заранее спасибо
 

pvvx

Активный участник сообщества
1. В простое вайфай линк рвется, решил пока посылкой пакета в тсп раз в 3 секунды, но это не очень удобно, как можно обойти?
Это внешние причины, если включено "Sleep Mode: NONE" и ответа на этот авопрос нет, т.к. телекинезом я не владею и не знаю какая используется аппаратура. Последняя на сегодня сборка (если собрать исходники, а не прошивка) вроде такого не делает.
2. Оптимально ли передавать пакетом 40кб с подтверждением? может что посоветуете, rts cts нет возможности использовать, нет свободных ног у стм32
Без rts/cts никакой гарантии целостности данных нет. Про буфера для TCP2UART в соседней теме.
3. Каким запросом можно менять ssid , пароль и скорость уарта, а также программный ресет не заходя в веб морду, 192.168.4.1/?action=......
Откройте файл wifi.htm и т.д. - в них даны имена переменных.
?wifi_ap_ssid=apssid&wifi_st_ssid=stssid .... &wifi_newcfg=0x2ffff
?uart_0_baud=4000000
?sys_reset=12345 или ?sys_restart=12345 , но они плохо работают (т.к. китайские). deep_sleep точно работает ?sys_sleep_us=время в us
4. Как проще всего отключить веб морду после настройки, если это возможно.
В исполнении TCP2UART только назначив порт Web = 0 в меню:
WebDisable.gif
5. Правильно ли я понял что если притянуть rx ногу есп к земле во время старта и рестарта, то настройки сбросятся к дефолту?
Да. Но если установлена инверсия RX, то на +3.3V...
 

aneox

Member
Супер, спасибо.
По первому, использую в виде софтап, там вроде нет слип мод. Модуль есп-03, клиент iphone, ipad, lg g2, несколько пробовал
 

aneox

Member
Сегодня гонял 60 мбайт из тсп в уарт на 2.000.000бод с стм32, вроде работает, но при одном условии, температура на поверхности чипа ниже 46-47 градусов, если выше начинает глючить, и чем выше тем сильней, сыпет в тсп порт мусор, иногда в уарт не доходит пакет полностью, иногда кажется перезагружается, но точно не понял. Успевает передать где-то 22% от 60 мб без ошибок, пока не нагрелся. Прикладывал к чипу железячку, удалось передать за 6 минут и всего с 5ю ошибками) Модуль есп-03 распаян вот так http://www.scrabber.net/DbHKm.jpg в воздухе по сути только гпио2, R1 R2 = 1kOhm. Софтово гпио пока не используются вообще никак
На 1.000.000 греется меньше заметно. Надо попробовать 07 модуль, надеюсь будет лучше.
 

pvvx

Активный участник сообщества
Успевает передать где-то 22% от 60 мб без ошибок, пока не нагрелся.
Ограничьте мощю передатчика, возможно будет греться меньше. Но перегреваются только неисправные чипы или ещё какой брак или неверные нагрузки.
Все токи потребления исправным чипом приведены, даже в режиме замыкания выходов... Ссылок много, основные в конце первого сообщения темы Разработка ‘библиотеки’ малого webсервера на esp8266. Перегрев модуля при интенсивной передаче и т.д. был исправлен в ПО WiFi в SDK вышедших у китайцев после их якобы "сертификации" (это где-то SDK 0.9.6). По этому исправный чип ныне не перегревается.
 
Последнее редактирование:

aneox

Member
Спасибо, снижение мощности заметно уменьшило нагрев. Заметил что на модулях 12е выведен spi на торец, сложно ли переделать прошивку в wifi2spi? каких скоростей можно ожидать если написать драйвер для работы с сд, как думаете, 500 кб в сек реально?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Заметил что на модулях 12е выведен spi на торец, сложно ли переделать прошивку в wifi2spi? каких скоростей можно ожидать если написать драйвер для работы с сд, как думаете, 500 кб в сек реально?
Возможно. Flash по SPI читает и упирается в передачу за 1 Мегабайт/сек...
 
Последнее редактирование:

Alexis66

New member
Доброго дня всем завсегдатаям ветки!
У меня есть вопрос: можно ли с помощью данной прошивки реализовать следующее:
Есть программа на PC под Windows, она общается с устройством на ARM-контроллере через COM-порт (используются только RxD, TxD, сигналы квитирования не используются). PC находится в локальной сети с Wi-Fi роутером. Возможно ли, используя ESP c данной прошивкой, организовать связь с этим устройством по Wi-Fi?
Я, к сожалению, недостаточно еще силен в сетевых технологиях, и вижу решение так:
- на PC использовать Tibbo virtual serial port (в качестве моста "COM-порт - сеть");
- COM-порт ESP8266 подключить к COM-порту устройства (естественно, через MAX232).
Затрудняюсь с настройками TCP2UART в прошивке - как правильно раздать адреса в Tibbo и в прошивке, кто сервер, кто клиент, что писать в поле "Client/Server IP" настроек TCP2UART0 ESP? Сильно, пожалуйста, не пинайте - все когда-то были начинающими.
 

pvvx

Активный участник сообщества
использовать Tibbo virtual serial port (в качестве моста "COM-порт - сеть");
Вроде работает, ранее писалось про него.
что писать в поле "Client/Server IP" настроек TCP2UART0
Если пустое или 127.0.0.1, то будет сервер -> ESP будет ожидать внешнего подключения. Если туда вписать внешний IP, то получится клиент -> ESP будет искать указанный сервер по этому IP и соединяться с ним.
 

Alexis66

New member
pvvx, спасибо! Кое-что прояснилось, попробовал на WeMos D1 + MAX3232, переходнике USBtoCOM и двух запущенных терминалах - работает!
Если не трудно, проясните дремучему - в настройках Tibbo-порта указан TCP-порт 12345 (был по умолчанию), в настройках TCP2UART0 указан TCP-порт 12345 (тоже был по умолчанию), а в инфо-строке интерфейса ESP сообщает "TCP2UART connect: 192.168.1.33:3617". Почему порт не совпадает?
И еще по поводу клиент/сервер: если я правильно понял, то клиентом надо назначать того, кто первый должен послать байты в порт (и таким образом стать инициатором соединения)?
 

pvvx

Активный участник сообщества
TCP-порт 12345 (тоже был по умолчанию), а в инфо-строке интерфейса ESP сообщает "TCP2UART connect: 192.168.1.33:3617". Почему порт не совпадает?
Потому, что соединение идет с любого порта к указанному. Вы же можете придти с любого адреса, если известен адрес назначения.
 

vasiliy_v

New member
Огромное спасибо Вам за проделанную работу! Мое устройство, подключаемое по UART чувствительно к мусору на линии, поэтому очень досаждают данные, которые выдает загрузчик в начале работы. Не могли бы Вы подсказать, есть ли возможность переназначить UART на GPIO13 и 15 или после загрузки прошивки выдавать высокий уровень на произвольный вывод для управления внешним буфером? Спасибо.
 

pvvx

Активный участник сообщества
Мое устройство, подключаемое по UART чувствительно к мусору на линии, поэтому очень досаждают данные, которые выдает загрузчик в начале работы. Не могли бы Вы подсказать, есть ли возможность переназначить UART на GPIO13 и 15 или после загрузки прошивки выдавать высокий уровень на произвольный вывод для управления внешним буфером?
Укажите как собираетесь использовать GPIO1 и GPIO3 - от этого зависит решение, как перекинуть TX0/Rx0 на GPIO13 и 15.
Если GPIO1 и GPIO3 будут RTS/CTS, то возможно достаточно вписать в WEBFiles\protect\init.ini строку [inline]sys_ram0x3FF00028=4[/inline] которая произведет замену:
Код:
/* PERI_IO_SWAP: 0x3FF00028
    bit0: swap two uart
    bit1: swap two spi
    bit2: swap uart0 pins (u0rxd <-> u0cts), (u0txd <-> u0rts)
    bit3: swap uart1 pins (u1rxd <-> u1cts), (u1txd <-> u1rts)
    bit5: hspi is with the higher prior
    bit6: two spi masters on hspi
    bit7: two spi masters on cspi (reg_cspi_overlap) */
И придется использовать режим RST/CTS, с выставленными инверсиями если надо.
+ потребуется проследить правильный уровень на GPIO3 при старте на установку сброса конфигурации, если данная функция включена...
 
Последнее редактирование:

Прапор

New member
Всем привет. Вот и я решил зарегистрироваться :).

Вчера долго разбирался с процедурой программирования и прошивки модулей ESP8266 (установил Эклипс по инструкции, поизучал готовые примеры и т.д.). В итоге удалось залить "fullflash_and_webfs_049". Прошивка поразила своей функциональностью! Это почти именно то, что я искал. Настроил модуль как SoftAP, подключился смартфоном к нему, с помощью программы , посылающей запросы MODBUS-RTU по TCP, установил соединение с эмулятором "модбас-рту" на компьютере, к USB-СОМ-порту которого подключен UART ESP8266. Единственный вопрос - как отключить встроенный в прошивку "MODBUS-TCP Example" , чтобы освободить 502-й порт ? В ВЭБ-морде такого параметра не нашел. Пытался порыться в исходниках, но эклипс при компиляции выдаёт что-то такоё: "recipe for target ".subdirs" failed" (что-то ему не нравится в MAKE-файле, а помочь ему я не могу , ибо эклипс и с++ для меня это "адское колдунство")) Может кто-нибудь в курсе как освободить порт 502 ? Или, господа программисты, посоветуйте решение проблемы с эклипсом пожалуйста.
З.Ы. Задумка - сделать беспроводной адаптер с RS-485 для опроса приборов по MODBUS-RTU с помощью смартфона на Андроиде. Т.е. чтобы адаптер "конвертировал" ТСР-запросы в RTU и обратно. Можно конечно прикрутить микроконтроллер к ESP8266 и реализовать всё в нём, но хочется более "красивого решения" :)
 
Сверху Снизу