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

Нужна помощь пропадает подключение TCP

Stelsing

New member
Добрый день.
Имею модуль ESP8266 12E, мне необходимо чтобы модуль поднимал точку доступа и мог подключаться к существующей точке (одновременно), поднимал сервер TCP и управлял устройством. Настраиваю следующем образом:
Код:
//инициализация esp8266
void esp8266Init(){
    printf("AT+CWMODE=3\r\n");
    mDelay(ESP8266_TIME_DELAY);
    printf("AT+CIPMUX=1\r\n");
    mDelay(ESP8266_TIME_DELAY);
    printf("AT+CIPSERVER=1,8888\r\n");
    mDelay(ESP8266_TIME_DELAY);
}

//подключение к точке доступа
void esp8266ConnectToRouter(char* accessPoint,char* password){
    char str1[100];
    sprintf(str1, "AT+CWJAP=\"%s\",\"%s\"\r\n",accessPoint,password);
    printf(str1);
}

//получение текущего IP
void esp8266GetIp(){
    printf("AT+CIFSR\r\n");
}

//отправка данных через TCP
void esp8266SendData(char* string){
    char str1[100];
    sprintf(str1, "AT+CIPSEND=0,%i\r\n",countChar(string));
    printf(str1);
    mDelay(ESP8266_TIME_DELAY);
    printf(string);
}
Сервер создается, к точке доступа подключаюсь и могу подключиться к устройству, все хорошо. Но через некоторое время (это время разное, может секунд 10, а может и минут 20) после подключения связь разрывается, в приложение у меня возвращается ошибка, что соединение было разорвано. Так же пинг разрывается, обычно 20-40 мс, а иногда вообще связи нет или ответ по 500 мс... Прошивку пробовал ту, которая была изначально (сентябрь 2015 года) и последнюю с сайта, работают одинаково. Думал, что это мой контроллер вешает вайфай, подключился через переходник к компу, прописал эти же команды, подключаюсь к серверу и через некоторое время тоже отключается.
Подскажите как заставить этот модуль более стабильней работать? Может есть нормальная прошивка для TCP сервера? Или может не так настраиваю?
 

=AK=

New member
У меня такая хрень происходит с роутерами Billion. А с роутером Netis работает без проблем.
 

Stelsing

New member
Пропадает связь даже тогда, когда модуль работает как точка доступа, без подключения к роутеру. Немного работает, дальше не отвечает и рвет подключение. Завтра хочу попробовать другие прошивки. Скажите, а как работает прошивка TCP2UART - все что приходит по TCP сразу отправляется на юарт, а настройка через веб? И в прошивке NodeMcu можно настраивать подключение через UART командами?
 

=AK=

New member
Вы от меня слишком многого хотите. Я работал с АТ командами, сейчас работаю с Ардуино IDE, а про остальные варианты ничего сказать не могу.

Касательно того, что рвет соединение в режиме точки доступа. Скорей всего это совсем другая проблема.

B тот момент, когда происходит подключение к внешней АР, ESP настраивает свой WiFi канал на тот, который нужен для этой АР. Ну а поскольку в самом чипе канал один, то по softАР в этот момент связь теряется, ведь канал-то изменился.

У меня с роутером Billion подключение к АР шло больше десяти секунд. За это время я успевал подключиться к softАР с мобильника, и вдруг - опаньки - связь пропала. С другими роутерами подлючение идет в разы быстрее, так что на эти грабли наступить труднее.

А вы с каким роутером работаете?
 
Последнее редактирование:

Stelsing

New member
Дело в том, что рвет подключение даже без подключения к роутеру
 

=AK=

New member
А чем подключаетесь?

И вообще, может вы соединение не закрываете? Тогда вас по тайм-аутy отрубит. Соединeния надо закрывать.
 
Последнее редактирование:

Stelsing

New member
TCP2UART пробую сейчас, вроде нормально работает, только связь не очень хорошая когда через роутер, а напрямую хорошо
 
Сверху Снизу