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

ESP8266 with ESP8266

Jols

New member
Доброго времени суток!
У меня есть 2 модуля ESP8266 с прошивкой v20. Хочу реализовать, что бы 1 модуль мог подключиться к другому и по ТСП отпровлять данные! настраиваю на 1 модуле режим 3 , подключаюсь к своему роутеру, создаю множественное подключение, создаю свою точку доступа, создаю сервер с 9000 портом! Вроде все работает окей если проверять с ноута, через роутер подключаеться к серверу и через созданную точку доступа тоже подключаеться к серверу! Но как только пытаюсь со второго модуля поработать, начинаеться проблема - к точке доступа конектиться, а сессию с 192,168,4,1 начать не может, сразу пишет CLOSED, если пробую через роутер зайти модулем и подключиться к серверу через роутер, то всё ОК!
вот код на создание сервера:
WiFiPutString("AT+CWMODE=3\r\n");
if(esp8266Respons("OK","", 2000)!=1)
{
return 0;
}
conectToWifi();
if(esp8266Respons("OK","", 3000)!=1)
{
return 0;
}
WiFiPutString("AT+CIPMODE=0\r\n");
if(esp8266Respons("OK","", 2000)!=1)
{
return 0;
}

WiFiPutString("AT+CWSAP=\"Tager77\",\"123456789\",10,4\r\n");
if(esp8266Respons("OK","", 2000)!=1)
{
return 0;
}

WiFiPutString("AT+CIPMUX=1\r\n");
if(esp8266Respons("OK","", 2000)!=1)
{
return 0;
}

WiFiPutString("AT+CIPSERVER=1,9000\r\n");
 

pvvx

Активный участник сообщества
Во первых возьмите прошивку AT поновее - там нет столько ошибок с TCP, как у версий с SDK менее 1.0.0.
Во вторых существует проблема - клиент, запрашивающий модуль в режиме ST, пытается открыть соединение и при неуспехе в течении менее 1 сек, открывает следующее соединение, бросив старое. В итоге соединение между двумя модулями может устанавливаться сразу или через десятки секунд, после десятков реконнектов. Такова реализация оф.прошивки AT. Пишите на форум Espressif.
При соединении модуля (который в режиме ST) c портом на компе через AP образуется десяток одновременно открытых соединений, но работает только одно - последнее. Остальные модуль просто бросает, нарушая протокол TCP.
Необходимо "патчить" бинарную прошивку, т.к. исходников AT китайцы не дают...
 
Последнее редактирование:

Ivizil

New member
Могу предложить ещё один вариант - Blynk. У них есть возможность передавать данные между модулями, при этом не важно где они находятся , хоть на разных концах света.
 

pvvx

Активный участник сообщества
Могу предложить ещё один вариант - Blynk. У них есть возможность передавать данные между модулями, при этом не важно где они находятся , хоть на разных концах света.
Blynk работает только через посредника.
Я забыл упомянуть, что описанное относиться к автоматическому соединению модуля по команде AT+SAVETRANSLINK =<mode>,<IP>,<port>[,<type>]
В остальном AT клиент успешно соединяется с TCP2UART на базе моей свалки по Web без всяких роутеров, если поставить таймауты на web странице настроек TCP2UART.
Модули можно "соединить" и на Arduino IDE, тоже напрямую, без посредников...
 
Последнее редактирование:

Jols

New member
Спасибо за помощь! Переустановил и ещё нашел момент последовательности вызова команд! Щас всё отестю и скину 100% вариант!
 
Сверху Снизу