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

Вопрос Замена старого доброго RS232

Sanchos

New member
Привет всем форумчанам!
Я новичок и еще не сталкивался с wifi модулями, но возникла небходимость. У меня старенький ЧПУ станок, который общается с компьтером простредством USB-RS232 конвертера. Из этого понятно, что связь ограничена длиной кабеля, поэтому хотелось бы реализовать связь между ПК и станком по wifi, так сказать "расширить возможности соединения".
Имеются некоторые вопросы:
1) Возможно ли настроить TCP-соединение между двумя ESP8266 модулями (по схеме: ПК <--> USB-to-TTL модуль <--> 1-ый ESP8266 модуль <--> 2-ой ESP8266 модуль <--> UART станка) базируясь только на AT-командах или всё-таки придётся использовать прошивку NodeMCU и писать скрипты?
2) И если возможно, то насколько это надежное соединение - не возникнет ли проблемы у обслуживающией программы со станком?
 

sharikov

Active member
Я новичок и еще не сталкивался с wifi модулями, но возникла небходимость. У меня старенький ЧПУ станок, который общается с компьтером простредством USB-RS232 конвертера.
Вам лучше использовать usb-rs232. Оно надежнее. Радиосвязь не дает 100% гарантии на доставку информации.
Если надо увеличить расстояние используйте фирменный переходник Ethernet-Rs232 но при этом все соединения только кабелем (без wifi).
 

Sanchos

New member
Я не спорю, что usb-rs232 надёжнее, но всё же используют различные радиомодули. Меня всё же интересует ESP8266.
 

pvvx

Активный участник сообщества
Зависит от скорости RS-232 и от временных задержек в используемых на нем протоколе. AT и NodeMCU очень медленно работают по RS-232 и у них низкая скорость передачи (большие задержки передача-прием). Так-же AT не может работать с открытым постоянно соединением. Ну и т.д. Если напишите сами на СИ с SDK - то пойдет.
 

Sanchos

New member
Спасибо, pvvx, за четкий и прямой ответ. Можно, конечно, попробовать написать свою прошивку, но, к сожалению, кроме как с 8-битными AVR и PIC контролерами не имел дело - придется где-то информацию искать. А может взгляну на другие модули.
 
Последнее редактирование:

Pavel Safronov

New member
Спасибо, pvvx, за четкий и прямой ответ. Можно, конечно, попробовать написать свою прошивку, но, к сожалению, кроме как с 8-битными AVR и PIC контролерами не имел дело - придется где-то информацию искать. А может взгляну на другие модули.
Могу сказать что 100% отлично работает на модуле http://www.hlktech.net/product_detail.php?ProId=39
По поводу esp - создал тему про прозрачный мост, буду там ждать комментов от умных людей =)
 

Sanchos

New member
Спасибо, Pavel Safronov, за совет, но таких модулей пруд пруди и они больно дорогие. Вот даже нашел модуль с микрухой на ядре ARM Cortex-M4 и работает по напряжению как на 3,3В, так и на 1,85В.
 

Victor

Administrator
Команда форума
Спасибо, Pavel Safronov, за совет, но таких модулей пруд пруди и они больно дорогие. Вот даже нашел модуль с микрухой на ядре ARM Cortex-M4 и работает по напряжению как на 3,3В, так и на 1,85В.
не совсем понял по цене - просвятите, плиз.
Ваш вроде стоит 17,80$ + доставка 25$, а по ссылке выше 13,20$ (стоимость доставки не указана)
 

Sanchos

New member
Извиняюсь, Victor, но указал ссылку на официальный сайт не ради цены, а ради xарактеристик модуля.
 

nikolz

Well-known member
можно сделать для ЧПУ на основе ESP и на луа (nodeMCU) модуль devkit.
например,
у меня 4 типа датчиков обмен с компом по UDP скорость отправки UDP пакета 50 mc все сделано на ЛУА
 

pvvx

Активный участник сообщества
Новая прошивка AT от v0.23 может вам подойти, если у вас сервер, к которому присоединяются клиентами модули ESP8266.
В новой версии есть команда AT+SAVETRANSLINK=1,”ip”,port,“TCP” - она работает нормально.
Настраиваете модуль на компьютере, в конце даете эту команду и ставите в устройство. Она будет соединяться автоматом при включении питания...
Скорость UART я там устанавливал и 921600 Baud - работает.
 

pvvx

Активный участник сообщества
А прошивка AT v0.23 SDK 1.0.1 flash 512k пойдет для этого?
Да, именно на ней и тестировал. Но учтите - после передачи команды AT+SAVETRANSLINK=1,”ip”,port,“TCP”, после перезагрузки (питанием или ещё чем) модуля он уже не будет реагировать ни на что, кроме подключения к указанному в команде ip:порту и вывод из этого режима только перепрошивкой конфигурации или новой заливкой всей flash.
По этому сначала протестируйте соединение и другие начальные установки с командой AT+CIPMODE=1. Но там не полный чистый туннель TCP2UART (нет авто-передачи из принимаемых модулем по RX данных), но для предварительной проверки других настроек - пойдет.
Предварительные - это настройка режима STATION, скорости и типа соединения UART и к какой AP соединяться. Все эти настройки надо дать с опцией сохранения. После перезагрузки он должен авто-подключаться к выбранной AP. После этого и даете AT+SAVETRANSLINK=1,”ip”,port,“TCP”. Получаете модуль вечноподключающийся к выбранному AP и соединяющего канал TCP2UART с сервером на компе.
Описание AT команд есть на сайте. Как конкретно установить всё, если будут сложности - спросите - возможно кто и опишет.
 
Последнее редактирование:

Sanchos

New member
Несколько вопросов:
AT+SAVETRANSLINK команда применима только для режима STATION?
Возможно ли настроить соединение между двумя девайсами? У меня при тестировании соединение происходит между двумя девайсами, а отправка данных не получается - не удается создать TCP-соединение.
 

pvvx

Активный участник сообщества
А что, отправка в UART "+++" (три плюса сразу без CR+LF) не выводит из этого режима разве?
Нет. Ничего не выводит. Мост есть мост.
У них есть AT+SAVETRANSLINK=0 , но она работает после AT+SAVETRANSLINK=1,... пока не перезагрузился, соответственно и мост не включился....
Но попробуйте - я тестил быстро и коряво, "+++" засылал но не сработало. Гонял файлы через него...
И в какой канал засылать "+++"? Я засылал во все дырки :)
Про "+++" в китай-AT-доке указано только в AT+CIPSEND.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Несколько вопросов:
AT+SAVETRANSLINK команда применима только для режима STATION?
Возможно ли настроить соединение между двумя девайсами? У меня при тестировании соединение происходит между двумя девайсами, а отправка данных не получается - не удается создать TCP-соединение.
Должно. Но пока не пробовал. С внешним ip AT+SAVETRANSLINK=1,ip,p соединяет, а на другом наверно надо что-то другое, типа AT+CIPMODE=1
 

pvvx

Активный участник сообщества
Не пробовал менять выдаваемый IP модулю базовой AP, а там так писано в AT+SAVETRANSLINK, что никак не переводится:
1. This command will save the UART-WiFi passthrough mode and its link into Flash user parameter area,ESP8266 will enter UART-WiFi passthrough mode since next power on.
2. As long as the IP, port numerical conformance to specification, we will save them to Flash
Какой спецификации там не указано. А specification ввода IP много - в hex виде, octal, decimal, + 8.24 бит, 8.8.16 и т.д. :) Lwip ipaddr_aton(const char *cp, ip_addr_t *addr) их кушает.

Сработало "+++" - надо посылать без задержек между символами, а некоторые терминалы передают с межсимвольными интервалами....:
Код:
OpenLoaderSDK v1.0
nv version:VER1

>
ready
тут послал "+++"
CLOSED
 
Последнее редактирование:

pvvx

Активный участник сообщества
@Sanchos
Соединил AT с моим Web. На модуле с Web все настройки по умолчанию, но поставил таймауты на соединение TCP2UART (иначе при потере связи плохо). На AT модуль подал команды:
AT+CWMODE=1
AT+CWJAP_DEF="ESP8266","0123456789"
AT+SAVETRANSLINK=1,"192.168.4.1",12345,"TCP"
AT+RST

Всё соединилось. Получился туннель UART-WiFi-UART :)
 
Сверху Снизу