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

esp8622+stm32 TCP сервер

reg33

New member
Дорый день.
Разрабатываю устройство, в котором esp8622 выступает в качестве tcp сервера подключенному по wifi к сети.
Обрабаотку данных выполняет stm32. связь между контроллерам осуществляется от по usart порту по
средствам AT команд. Набросал веб страничку в которой присутствует java script при загрузке которой
идет запрос на сервер один раз в секунду.На stm32 тикает счетчик. значение счетчика передаются AT
командами на esp сервер отправляет в браузер клиента. Дело в том что нет стабильности. Значения меняются
в браузере а потом пауза несколько секунд и потом проходит обновленне. Причем значения не всегда
корректны. Идет обновление в окне браузера к примеру 80,81,AT+81,82....Прошивка esp8622 версии
ESP8266_NONOS_SDK-3.0.6.
Заранее благодарен.
 

IBAH

New member
Дорый день.
Разрабатываю устройство, в котором esp8622 выступает в качестве tcp сервера подключенному по wifi к сети.
Обрабаотку данных выполняет stm32. связь между контроллерам осуществляется от по usart порту по
средствам AT команд. Набросал веб страничку в которой присутствует java script при загрузке которой
идет запрос на сервер один раз в секунду.На stm32 тикает счетчик. значение счетчика передаются AT
командами на esp сервер отправляет в браузер клиента. Дело в том что нет стабильности. Значения меняются
в браузере а потом пауза несколько секунд и потом проходит обновленне. Причем значения не всегда
корректны. Идет обновление в окне браузера к примеру 80,81,AT+81,82....Прошивка esp8622 версии
ESP8266_NONOS_SDK-3.0.6.
Заранее благодарен.
Здесь нет ни одного вопроса....
 

reg33

New member
Здесь нет ни одного вопроса....
Вопросов два, первый как получается что часть протокола AT попадает в область передаваемых значений клиенту сервера (в браузере периодически отображается вместо 80 символы AT+80 ). И второй на сколько быстро обрабатывает сервер на базе esp способен обрабатывать данные, полученные по usart? Нужны лм паузы при реализации AT протокола по usart?

Код обработки запроса от браузера и ответа на запрос прилагаю прилагаю

else if(chek_answerESP_buff_ring(ptrReceiveData, "tim_value")) {
lenCountTim2=sprintf (prtBuffAjaxCountTim2,"%d",countTim2);
sprintf(ptrTransmitData,"%s%d%c%d%s","AT+CIPSEND=",0,',',strlen(prtBuffAjaxCountTim2),"\r\n");
send_ESP_ring (BuffUsart.espTransmit);
if (chek_answerESP_buff_ring(ptrReceiveData, ">")){

testAjax='>';
sprintf (ptrTransmitData,"%d%s",countTim2,"\r\n");
testTxVar=countTim2;
send_ESP_ring(BuffUsart.espTransmit);
HAL_Delay(130);

if (chek_answerESP_buff_ring(ptrReceiveData, "SEND OK")){
testAjax='Y';

}

}

close_conections_ring();

}

}
 

IBAH

New member
Вопросов два, первый как получается что часть протокола AT попадает в область передаваемых значений клиенту сервера (в браузере периодически отображается вместо 80 символы AT+80 ).
Чего-то кривое. Может , алгоритм передачи УАРТ. Или неправильно обрабатывается AT+CIPSEND. После приглашающего символа '>' передается не указанное количество байт. Кстати. Там ошибка в документации приглашающий не символ '>', а два символа '>' и пробел.


И второй на сколько быстро обрабатывает сервер на базе esp способен обрабатывать данные, полученные по usart? Нужны лм паузы при реализации AT протокола по usart?
АТ команды тем и хороши, что не надо ждать. Всем управляет модем. Если модем ответил, значит он принял и обработал команду.
То есть алгоритм должен быть следующий:
посылаем AT+CIPSEND,
Ожидаем ОК. Это означает что команда верна и может быть выполнена.
Ожидаем приглашения к передачи данных.
Приглашение получено.
Передаем заявленное количество данных
Ожидаем SEND OK
SEND OK получено. Это означает, что данные переданы, а в ТСП и доставлены адресату.
Можно переходить к следующей передаче.
 
Сверху Снизу