Добрый вечер!
Имею на руках WIFI плату на основе ESP32. Хочу реализовать функцию удаленного OTA обновления прошивки платы.
Для этого нашел специальную библиотеку
"Update". Здесь есть
пример, настроенный для скачивания bin файла прошивки с AWS облака (Амазон).
Вместо Амазона я хочу использовать свой WEB сайт, для этого я в нужный каталог загрузил bin файл прошивки, который успешно скачивается по ссылке. Далее вбил его в данный пример, указал имя файла и загрузил на ESP32. По итогу, в порту отладки получаю сообщение: "Client Timeout !". Если смотреть по коду, то данное сообщение выводится, если ESP32 успешно перешла по ссылке, сделала GET запрос:
// Get the contents of the bin file
client.print(String("GET ") + bin + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Cache-Control: no-cache\r\n" +
"Connection: close\r\n\r\n");
И после, спустя некоторое время не получила ответ:
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println("Client Timeout !");
client.stop();
return;
}
}
Структура ответа должна быть следующей:
Response Structure
HTTP/1.1 200 OK
x-amz-id-2: NVKxnU1aIQMmpGKhSwpCBh8y2JPbak18QLIfE+OiUDOos+7UftZKjtCFqrwsGOZRN5Zee0jpTd0=
x-amz-request-id: 2D56B47560B764EC
Date: Wed, 14 Jun 2017 03:33:59 GMT
Last-Modified: Fri, 02 Jun 2017 14:50:11 GMT
ETag: "d2afebbaaebc38cd669ce36727152af9"
Accept-Ranges: bytes
Content-Type: application/octet-stream
Content-Length: 357280
Server: AmazonS3
{{BIN FILE CONTENTS}}
Вопрос, должен ли я что-то делать на стороне WEB сайта, чтобы клиент мог получить такой ответ?