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

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

TheEvilGenius

New member
Здравствуйте. Используется 2 модуля 01 в качестве моста UART-TCP-WIFI-TCP-UART, то есть банальный беспроводной uart. Один модуль в режиме SOFTAP - точка доступа, порт tcp 55555, ip 127.0.0.1. Второй модуль STASIONAP - цепляется к первому, порт tcp 55555, ip 192.168.4.1. Второй модуль присоединяется к первому, но соединение tcp не открывается, почему так происходит?
 

ZaitsevY

New member
Добрый день!
Прошу уважаемого автора прошивки по возможности реализовать задекларированную в tcp2uart.h функцию [inline]err_t tcp2uart_write(uint8 *pblk, uint16 len)[/inline] (исхожу из предположения, что она задумана как возможность программно дополнить поток UART->TCP).
Моя задача - по кнопке (на каком-либо GPIOx) послать TCP-клиенту символ (якобы с UARTа).
 

Andy Korg

Moderator
Команда форума
...точка доступа, порт tcp 55555, ip 127.0.0.1. Второй модуль STASIONAP - цепляется к первому, порт tcp 55555, ip 192.168.4.1 ...
IP адреса должны быть из одной сети. Например SOFTAP - 192.168.4.1 (обычно такой он в этой прошивке), STATION - 192.168.4.2
 

Vova777

New member
Подскажите мне, пожалуйста.
Мне нужно пересылать с ПК (в перспективе это будут мобильные приложения на Android и iOS) на ESP символы ('А', 'В', '1', '*' и т.п.), чтобы затем они ретранслировались микроконтроллеру AVR по UART. ESP не должен быть точкой доступа, он должен быть в составе существующих Wi-Fi сетей. Не знаю, как надо это сделать, господа, помогите.

Микроконтроллер AVR уже принимает символы по UART через USB-UART конвертер на базе чипа СР2102.

Может быть, есть терминальные программы (как например "KeTerm" для COM и TCP: http://www.kernelchip.ru/articles/KA005.php), в которой можно было бы прописать параметры ESP в сети (IP-адрес, порт и т.п.), ввести сообщение, нажать "Отправить" и оно, по Wi-Fi передастся на ESP, а от него автоматически ретранслируется по UART на МК?

Подскажите, как решаются такие задачи? Прошивка стоит TCP2UART.

Я еще не понимаю, если ESP будет в составе существующей Wi-Fi сети, как узнать её IP-адрес, чтобы с ней связаться?
 
Последнее редактирование:

Sanchos

New member
Вообще, это правильный путь?
Из всего, что вы донесли, я понял, что вам необходимо: создать точку доступа на ПК, далее настроить esp модуль через web-интерфейс, с помощью терминальной программы создать сервер и открыть порт, и естественно отправить запрос на AVR (через esp) и получить ответ. Если это так, то вы на правильном пути.
 

Vova777

New member
создать точку доступа на ПК
Разве беспроводной роутер не является точкой доступа? Зачем мне её создавать на ПК?

Если это так, то вы на правильном пути.
Да это так. Спасибо. Теперь мне нужна помощь, как всё это осуществить...

Я еще не понимаю, если ESP будет в составе существующей Wi-Fi сети, как узнать её IP-адрес, чтобы с ней связаться?
 

Sanchos

New member
Разве беспроводной роутер не является точкой доступа? Зачем мне её создавать на ПК?
Что за роутер? Если правильно я вас понял, вам необходима прямая связь ПК и esp. Или вы хотите через еще один ретранслятор передавать данные?
Вам необходим USB-маршрутизатор (типа такого или такого), позволяющий создать точку доступа на ПК.

Да это так. Спасибо. Теперь мне нужна помощь, как всё это осуществить...
Я еще не понимаю, если ESP будет в составе существующей Wi-Fi сети, как узнать её IP-адрес, чтобы с ней связаться?
Настройка esp (как клиента) через web:
1) Входим во вкладку WiFi Scan, где производится поиск точек доступа, и выбирает нашу точку доступа. Далее вводим пароль в поле Type Password, ставим галку в чекбокс AutoConnect и нажимает кнопку Set Config.
2) Ждем пока обновится страница, и теперь переходим во вкладку TCP-UART Settings. Здесь в поле Client/Server IP вводим IP-адрес нашей точки доступа, в поле TCP Port вводим номер удаленного порта (или оставляем по умолчанию), в поле Baud (если нужно) меняем скорость передачи данных. Нажимаем кнопку Set Configuration.
3) Теперь переходим во вкладку WiFi Settings. Здесь в поле WiFi Mode меняем режим на STATION_MODE (хотя я рекомендовал бы оставить STATIONAP_MODE) и нажимает кнопку Set Config.
 
Последнее редактирование:

Vova777

New member
Что за роутер? Если правильно я вас понял, вам необходима прямая связь ПК и esp. Или вы хотите через еще один ретранслятор передавать данные?
Вам необходим USB-маршрутизатор (типа такого или такого), позволяющий создать точку доступа на ПК.
Роутер обычный, TP-LINK, типа такого: http://voffa.ru/wp-content/uploads/tp-link-wr741nd-top-back.jpg. На первом этапе - да, мне нужно прямое соединение. Потом я планирую делать через web-сервер, но пока вопрос так не стоит. Сейчас я хочу, чтобы ESP подключился к моему роутеру, как клиент, и был доступен терминальной программе.

Настройка esp (как клиента) через web:
1) Входим во вкладку WiFi Scan, где производится поиск точек доступа, и выбирает нашу точку доступа. Далее вводим пароль в поле Type Password, ставим галку в чекбокс AutoConnect и нажимает кнопку Set Config.
2) Ждем пока обновится страница, и теперь переходим во вкладку TCP-UART Settings. Здесь в поле Client/Server IP вводим IP-адрес нашей точки доступа, в поле TCP Port вводим номер удаленного порта (или оставляем по умолчанию), в поле Baud (если нужно) меняем скорость передачи данных. Нажимаем кнопку Set Configuration.
3) Теперь переходим во вкладку WiFi Settings. Здесь в поле WiFi Mode меняем режим на STATION_MODE (хотя я рекомендовал бы оставить STATIONAP_MODE) и нажимает кнопку Set Config.
Спасибо, я отпишусь, как попробую...
 

Andy Korg

Moderator
Команда форума
...Мне нужно пересылать с ПК ....('А', 'В', '1', '*' и т.п.), чтобы затем они ретранслировались микроконтроллеру AVR по UART. ESP не должен быть точкой доступа, он должен быть в составе существующих Wi-Fi сетей. ....
Похожая задача решается в моей прошивке на базе "свалки" pvvx. На веб интерфейсе нажимается кнопка и на avr идет команда привязанная к этой кнопке. Посмотрите пожалуйста, возможно это то что вам нужно.
 

TheEvilGenius

New member
Спасибо за ответ. Уже разобрался. На сервере необходимо указать только порт т.е софтап без айпи. На клиенте указать адрес сервера и порт. Одна проблема, если на главной странице прошивке показано что нет TCP соединения, то это, не всегда правда. Пока не начал слать в уарт и не понял бы что работает, несколько часов мудохался, чуть лишнее действие опять перепрошивка, но победил. В среднем, соединение устанавливается за 14-15 секунд от включения обоих модулей. Вот когда в качестве клиента выступал компьютер было проще, на с++ запилил клиента и никаких траблов, а вот соединить два модуля сложнее оказалось
 

pvvx

Активный участник сообщества
Одна проблема, если на главной странице прошивке показано что нет TCP соединения, то это, не всегда правда.
Она же не обновляется в реал-тайм. Что было при в момент запроса то и отображает. Жмите F5 (обновить)... или перепишите HTML, вставив автоматическое обновление.
В среднем, соединение устанавливается за 14-15 секунд от включения обоих модулей.
Это зависит от настроек. Если заданы фиксированные ip: port и отключены dhcp, подобраны задержки (их там толпа), то первое соединение после вкл.питания устанавливается до 2-х сек, после непродолжительного deep_sleep - менее 0.7 сек. Но вот повтор соединения прописано делать через 5 сек, т.к. при связи через GSM соединения и/или при большом времени пинг возникает беда (пример беды в AT прошивке от китайцев :) - там 1 сек - открывает несколько соединений, бросая старые на которые не успевает придти ответ о соединении :) )...
Включенный dhcp отжирает много времени (от 1 сек) , хоть на супер-роутере. Используйте фиксированные ip.
 
Последнее редактирование:

TheEvilGenius

New member
А вот я обновлял, пишет close, может не углядел.
Спасибо, но так устраивает более чем.:) Мне именно для конкретной цели, я даже не юзаю все преимущества контроллера, точнее только вафлю и уарт, но в следующий раз учту, отключу dhcp и пропишу фиксирванные айпишники.
Чего у вас там с лицензией? И куда донатить(немного) в случае вiна?
 

pvvx

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

UnКаЙF

New member
Здравствуйте !
Читал тему и уже было такое:
Мое устройство, подключаемое по UART чувствительно к мусору на линии, поэтому очень досаждают данные, которые выдает загрузчик в начале работы. Не могли бы Вы подсказать, есть ли возможность переназначить UART на GPIO13 и 15 или после загрузки прошивки выдавать высокий уровень на произвольный вывод для управления внешним буфером?
Всё ж таки нужно управление внешним буфером. Подскажите пожалуйста как добавить ? Удобство в том, что прошивать ESP можно через тот же разъём, что используется для работы. Ещё вариант с TX на GPIO15 не понравился тем, что от сброса и до загрузки ESP на нём активный uart уровень, - т.е. низкий. Внешнее устройство может это воспринять как передачу. Спасибо.
 

pvvx

Активный участник сообщества
Ещё вариант с TX на GPIO15 не понравился тем, что от сброса и до загрузки ESP на нём активный uart уровень, - т.е. низкий. Внешнее устройство может это воспринять как передачу.
Есть инверсия сигнала TX.
 

UnКаЙF

New member
Так оно ж инвертировать начнёт ПОСЛЕ загрузки, а не сразу после сброса. Или инвертор ещё втуливать ? Вопрос, собственно не об этом был. Нужно, например, чтобы на GPIO15 после загрузки (или установки соединения) установился высокий уровень. Можно такое сделать ? Или оно так себя и ведёт (сигнал RTS) ?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Или оно так себя и ведёт (сигнал RTS) ?
Должен так и вести.
Вообще прием на другой скорости символов внешнем устройством не должен отрабатываться, т.к. будет ошибка по стоп битам и если установлена ещё четность, то тем более...
 
Сверху Снизу