ESP8266, как модем с Arduino UNO роль веб-клиента - PullRequest
0 голосов
/ 29 октября 2018

Я использую ESP8266 в качестве модема в качестве веб-клиента с использованием библиотек ESP8266.h, SoftwareSerial.h. Я отправляю запрос на сервер, который отправляет ответ в виде json. Этот ответ на вышеуказанную библиотеку обрабатывается следующим образом.

uint8_t buffer[100] = {0};
uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000);

if (len > 0) {
    Serial.print("Received:[");
    for(uint32_t i = 0; i < len; i++) {
        Serial.print((char)buffer[i]); 
    }
    Serial.print("]\r\n");
}

Однако этого достаточно только для заголовка ответа веб-сервера, он не достигает данных json. Увеличение uint8_t buffer [100] = {0}; до 400 также недостаточно (оно показывает больше, но опять-таки не достигает информации json). С большим буфером Arduino нестабилен и не запускается вообще. Как пропустить заголовок сервера и сразу прочитать json? Буду благодарен за любую помощь! поблагодарить Постскриптум фактически, если бы буфер считывался символ за символом, можно было бы найти открывающую фигурную скобку и, если она была найдена, поместить всю информацию после нее в переменную, пока не будет найдена закрывающая фигурная скобка. Но как это реализовать, если здесь буфер wifi.recv немедленно загружается ненужной информацией о заголовках веб-страницы, предусмотренных в стандарте обмена сообщениями между клиентом и веб-сервером (((*

...