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

не отправляются фото в хорошем качестве по протоколу HTTP (ESP32-cam)

DarkP1xel

New member
Здравствуйте, относительно в программирование микроконтроллеров я новичок, столкнулся с проблемой которую своими силами не смогу решить.
Заранее перерыл весь интернет в поисках решения, нашел лишь объяснения что это ограничения самой платы, где-то идет лимит.

Использую такие настройки:
C++:
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 10;
config.fb_count = 2;
Сама отправка фото на веб-сервер:
C++:
void createPhoto() {
    camera_fb_t * fb = NULL;
    fb = esp_camera_fb_get();
    if(!fb) {
        Serial.println("Camera capture failed");
        delay(1000);
        ESP.restart();
    }

    if ((WiFi.status() == WL_CONNECTED)) {
        http.begin("https://*********/api/send/photo?device_imei=**********");
        http.addHeader("Content-Type", "image/jpeg");
        int httpResponseCode = http.sendRequest("POST", fb->buf , fb->len);
        Serial.println(fb->len);
       
        Serial.println(httpResponseCode);
   
        http.end();
        esp_camera_fb_return(fb);
    }
}
Благодарю за возможную помощь от комьюнити)
 
эээ . А сама фотография (та что в fb->buf) при этом получается "хорошего качества"?
 
сли ФОТО ухудшить по качеству настройками - то оно отправится.
Скорее всего тут дело с размером получающегося файла, где нибудь переполняется какая нибудь переменная, или получается отлуп по таймауту соединения.
Опять таки тупо памяти может не хватать под буфер
 

CodeNameHawk

Moderator
Команда форума
Может стоит посмотреть, чем отличаются http.sendrequest от http.send.
 
к сожалению я так вряд ли смогу сразу понять куда смотреть и что переделывать в моем коде.
У чувака там свои проблемы, о которых написано у тех кто ему отвечает, но проблем с передачей больших файлов нет. Повторите его код, с исправлениями от старших товарищей, и посмотрите уйдет ли ваша проблема, Если уйдет - адаптируйте его пример под свои задачи. Если не уйдет ищите другие примеры.

ps: никто тут не наловит вам рыбы нахаляву, вот о том как самому себе сделать сети раскажут охотно.
 

CodeNameHawk

Moderator
Команда форума
Напишите в гоогле "esp32 send file to server".
Там есть пример отсылки фото кусками.
 

DarkP1xel

New member
Напишите в гоогле "esp32 send file to server".
Там есть пример отсылки фото кусками.
не нашел решения, может подскажите так как вы профи?
Мне фотку надо отправить как есть, у меня нет возможности на сервер поменять код. Я только могу подстраиваться под веб-сервер
 
Сверху Снизу