• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 :)
 
Сверху Снизу