B loop() крутится кусок кода:
В таком виде при постоянном подключении из браузера к ESP все работает, ответы идут без задержек. Но так работает только когда присутствуют строки Serial.println("...") до 22 строчки в коде, если какую нибудь из них удалить, то ответы от сервера приходят непредсказуемо - иногда сразу, иногда с задержками или вообще не приходят. Уже замучался прогружать ESP с разными вариантами
Вместо Serial.println пробовал ставить delay(1...10) - не помогает. Из за чего со строками Serial.println работает, а без них нет - не могу разобраться...
Что то читал на английских форумах про проблемы с client.flush(); но так и не сообразил, что к чему. Хочется разобраться в этом вопросе и сделать правильно, а не методом тыка.
Спасибо.
Код:
WiFiClient client = server.available();
if (!client) return; //Проверяем подключение клиента
Serial.println("new client");
// delay(10);
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
/// delay(1);
Serial.println("1"); ///Serial.println(millis());
if (req.indexOf("/gpio/0") != -1) val = 0;
else
if (req.indexOf("/gpio/1") != -1) val = 1;
Serial.println("2"); ///Serial.println(millis());
digitalWrite(2, val); //Устанавливаетм выход GPIO2
Serial.println("3"); ///Serial.println(millis());
client.flush();
/// delay(1);
Serial.println("4"); ///Serial.println(millis());
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n<a href=""http://192.168.0.241/gpio/""";
s += (val)?"0>Set ON":"1>Set OFF";
s += "</a><br>\r\n";
s += String(temp1,4)+" now<br>\r\n";
s += listtemp+String(avertemp1/count,4)+" "+String(count)+"<br>\r\n";
s += String(DHT_h,1)+" %<br>\r\n";
s += String(temp2,4)+" C T02<br>\r\n";
s += String(DHT_t,1)+" C DHT<br>\r\n";
s += String(DHT_hic,2)+" hic<br>\r\n";
s += String((millis()-old_millis)/1000)+" sec<br>\r\n";
s += String(float (millis())/86400000,5)+" day\r\n";
s += ss+"\r\n";
s += "</html>\n";
/// Serial.println("5"); Serial.println(millis());
client.print(s);
delay(1);
Serial.println("Client disonnected");
Вместо Serial.println пробовал ставить delay(1...10) - не помогает. Из за чего со строками Serial.println работает, а без них нет - не могу разобраться...
Что то читал на английских форумах про проблемы с client.flush(); но так и не сообразил, что к чему. Хочется разобраться в этом вопросе и сделать правильно, а не методом тыка.
Спасибо.