Просто получить половину данных с сервера (модуль ESP8266 ESP-01 UNO)

#http #arduino #wifi

#http #arduino #wifi

Вопрос:

Мой php-файл на сервере. Просто простая программа php. Он отправит ответ на мой ESP8266 :

 <?php
       ECHO $_GET['subject'];
       ECHO "SELAMAT DATANG";
?>
  

Мой эскиз в arduino uno. Просто в цикле () :

 void loop() {
 // put your main code here, to run repeatedly:
 
 data="subject=anis";
 String requestGet="GET /index.php HTTP/1.0rnHost: nyalalampu.atwebpages.comrnAccept: */*rnContent-Length: " String(data.length()) "rnrn" data;
 
 anis.println("AT CIPSTART="TCP","nyalalampu.atwebpages.com",80rn");
 delay(2000);
 while(anis.available()>0)
 {
   char c=anis.read();
 }

 anis.println("AT CIPSEND=" String(requestGet.length() 2) "rn");
 delay(2000);
 while(anis.available()>0)
 {
   char c=anis.read();
 }

 anis.println(requestGet);
 delay(1);
 while(anis.available()>0)
 {
   String a=anis.readString();
   Serial.println(a);
 }

 anis.println("AT CIPCLOSErn");
 delay(1000);
 while(anis.available()>0)
 {
   char c=anis.read();
 }
}
  

Данные, которые я получаю с сервера :

  IPD,165:HTTP/1.1 200 OK

Date: Wed, 14 Oct 2020 22:46:16 GMT

Serve hes-/e

T
  

Похоже, я просто получаю половину данных с сервера, а остальные теряются. Может кто-нибудь показать мне что-нибудь или сказать, что не так с моим эскизом? TQ

Комментарии:

1. Измените delay(1); на более длинное значение, 165 байт данных поступают дольше.

2. последовательный запуск медленный, поэтому между полученными символами есть пробелы, поэтому функция available() иногда возвращает 0

3. @Juraj Tq сэр … у вас есть какой-нибудь учебник, в котором я могу решить свою проблему?

4. Я использую readBytesUntil.arduino.cc/reference/en/language/functions/communication/serial /…

5. @Juraj Alhamdulillah …tq sir…it он работает на меня…