?
Покажи код, который ты в базе используешь?
разные смотрел, сошелся пока на этом camera_fb_t * fb = NULL; uint8_t* fb_buffer; bool isMoreDataAvailable() { return (fb_length - currentByte); } uint8_t getNextByte() { currentByte++; return (fb_buffer[currentByte - 1]); } //... fb = esp_camera_fb_get(); //... if (!fb) { Serial.println(F("Camera capture failed")); bot.sendMessage(cid, F("Не удалось сфоткать."), ""); esp_camera_fb_return(fb); return; } currentByte = 0; fb_length = fb->len; fb_buffer = fb->buf; Serial.println(String(F("\n>>>>> Sending, bytes= ")) + String(fb_length)); bot.sendPhotoByBinary(cid, F("image/jpeg"), fb_length, isMoreDataAvailable, getNextByte, nullptr, nullptr); dataAvailable = true; Serial.println(F("Фото отправлено!*")); esp_camera_fb_return(fb); fb = NULL; continue; //...
?
бот телеги обращается к функциям извлечения из буффера кусков. но .. так стоп их я не приложил. ща поправлю
?
поправил. так вот я пытался найти как FB уменьшить не вдуплил ибо это как-то непонятно как делается. после инициализации камеры объем памяти нихреново так отжирается и при активной работе по https краши неменуемы
?
Пастебин не?
не понял. код написан на ардуино IDE
SSR
не понял. код написан на ардуино IDE
Это сервис, куда куски кода можно залить, чтобы всем удобно смотреть было
?
Плохо
отдельно либу камеры не требуется включать, она походу в базовой части железки прописана, стоит только сконфигурировать. кусок конфига сейчас достану... кода дохрена, приходится дергать.
?
Это сервис, куда куски кода можно залить, чтобы всем удобно смотреть было
не, сорян мне долго сайт на "вшивость" проверять. все скрипты обычно банятся пока не проверю. а сайт суда по названию и цели дофига зависимостей тянет и скорее всего у меня не заработает совсем.
?
раздели действия, сфоткал - записал на SD, отправил записанное кусками через буфер
сам процесс фото отжирает объем кадра. а чип еще в фоне дрочит память как ему хочется и изза этого краши частые
?
Как в интернете сидится?
говносайты белым экраном.. так и сидится.
?
так... всетаки я что-то упускаю... вот шматок с конфигом камеры . заголовочные файлы явсе-же подключаю. ошибочка. // внедряем камеру /// ESP32CAMCONFIG #include "esp_camera.h" framesize_t configframesize = FRAMESIZE_VGA; // FRAMESIZE_ + QVGA|CIF|_VGA_|SVGA|XGA|SXGA|UXGA int quality = 10; int qualityconfig = 5; #define CAMERA_MODEL_AI_THINKER #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 #include "esp_system.h" bool setupCamera() { camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; //init with high specs to pre-allocate larger buffers /*if (psramFound()) { config.frame_size = configframesize; config.jpeg_quality = qualityconfig; config.fb_count = 4; } else {*/ config.frame_size = configframesize; config.jpeg_quality = 12; config.fb_count = 1; /* }*/ Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); //static char * memtmp = (char *) malloc(32 * 1024); //static char * memtmp2 = (char *) malloc(32 * 1024); //32767 // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return false; } // free(memtmp2); // memtmp2 = NULL; // free(memtmp); // memtmp = NULL; Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); sensor_t * s = esp_camera_sensor_get(); // drop down frame size for higher initial frame rate s->set_framesize(s, (framesize_t)configframesize); s->set_quality(s, quality); delay(200); return true; }
Igor
Такое не пойдет?
Плохо что человек не понимает что такое пасте/хасте бин и продолжает слать эту хрень
так... всетаки я что-то упускаю... вот шматок с конфигом камеры . заголовочные файлы явсе-же подключаю. ошибочка. // внедряем камеру /// ESP32CAMCONFIG #include "esp_camera.h" framesize_t configframesize = FRAMESIZE_VGA; // FRAMESIZE_ + QVGA|CIF|_VGA_|SVGA|XGA|SXGA|UXGA int quality = 10; int qualityconfig = 5; #define CAMERA_MODEL_AI_THINKER #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 #include "esp_system.h" bool setupCamera() { camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; //init with high specs to pre-allocate larger buffers /*if (psramFound()) { config.frame_size = configframesize; config.jpeg_quality = qualityconfig; config.fb_count = 4; } else {*/ config.frame_size = configframesize; config.jpeg_quality = 12; config.fb_count = 1; /* }*/ Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); //static char * memtmp = (char *) malloc(32 * 1024); //static char * memtmp2 = (char *) malloc(32 * 1024); //32767 // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return false; } // free(memtmp2); // memtmp2 = NULL; // free(memtmp); // memtmp = NULL; Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); sensor_t * s = esp_camera_sensor_get(); // drop down frame size for higher initial frame rate s->set_framesize(s, (framesize_t)configframesize); s->set_quality(s, quality); delay(200); return true; }
Я без мата не могу сказать…
?
так... всетаки я что-то упускаю... вот шматок с конфигом камеры . заголовочные файлы явсе-же подключаю. ошибочка. // внедряем камеру /// ESP32CAMCONFIG #include "esp_camera.h" framesize_t configframesize = FRAMESIZE_VGA; // FRAMESIZE_ + QVGA|CIF|_VGA_|SVGA|XGA|SXGA|UXGA int quality = 10; int qualityconfig = 5; #define CAMERA_MODEL_AI_THINKER #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 #include "esp_system.h" bool setupCamera() { camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; //init with high specs to pre-allocate larger buffers /*if (psramFound()) { config.frame_size = configframesize; config.jpeg_quality = qualityconfig; config.fb_count = 4; } else {*/ config.frame_size = configframesize; config.jpeg_quality = 12; config.fb_count = 1; /* }*/ Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); //static char * memtmp = (char *) malloc(32 * 1024); //static char * memtmp2 = (char *) malloc(32 * 1024); //32767 // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return false; } // free(memtmp2); // memtmp2 = NULL; // free(memtmp); // memtmp = NULL; Serial.printf("Internal Total heap %d, internal Free Heap %d\n", ESP.getHeapSize(), ESP.getFreeHeap()); Serial.printf("SPIRam Total heap %d, SPIRam Free Heap %d\n", ESP.getPsramSize(), ESP.getFreePsram()); sensor_t * s = esp_camera_sensor_get(); // drop down frame size for higher initial frame rate s->set_framesize(s, (framesize_t)configframesize); s->set_quality(s, quality); delay(200); return true; }
VGA вынужден поставить иначе либо краш после бута либо тупо ошибка инициализации
Slava
Такое не пойдет?
Характеристики сфоткай
?
Я без мата не могу сказать…
проект не мной одним писан и кусками переехал с ESP8266 на ESP32.
Slava
Уже разбирал? Там есп или реалтек?
проект не мной одним писан и кусками переехал с ESP8266 на ESP32.
Почитай еще раз. В таком формате твой говнокод не читаем
Igor
я в погребе поставил - не дает замерзнуть и графики строит.
Igor
Igor
?
Я без мата не могу сказать…
этот пастебин вебал мозг. он без регистрации умеет вообще?
Igor
Уже разбирал? Там есп или реалтек?
https://aliexpress.ru/item/1005003258153856.html?sku_id=12000024888884274 ESP8266
?
Почитай еще раз. В таком формате твой говнокод не читаем
если пинаете, будьте добры пинать в нужном направлении. я лично могу читать код в блокноте и без подсветки. да дебажить так сложно, но дело привычки.
Chel
помогите, чета я где-то затупил сильно. Установил MQTT , настроил конфиг чтобы слушал 1883 порт, запустил - работает. Могу с помощью клиента на том же компе подключиться и это отображается. Но когда запускаю сенсор, который по wifi должен публиковать значения в топики, брокер не реагирует никак. все адреса в коде точно правильные
?
Я вроде популярно объяснил. Но бывает.
не берет пастебин код мозг нечет. что-то оскорбительное усмотрел и просит включить что-то что не доступно к влючению. заебало ну и хуй с ним. не хотите помогать, игнорьте. не нравится копипаст кусков кода (не могу весь скинуть там ебанешся текста) ну и хер с ним. какнибудь разберусь сам. а вы тут умничайте дальше.
?
https://hastebin.com
увы гугл у меня в бане. похуй забей. сам какнить разберуть. на крайняк с нуля напишу либу. не первый раз в говне ковыряться приходится
Sergey
Sergey
Собрал код arduino по кускам из просторов интернета но ни как не получалось привязать все это дело к кнопке
Sergey
Хотел осуществить проверку угла поворота барабана с помощью энкодера не смог а вот с кнопкой разобрался есть люди кто пример дать могут буду благодарен
Sergey
Принцип кода должен быть такой "если шм сделал опр число оборотов то *сервопривод сделал свои шаги * если нет то ошибка
Sergey
Во избежании столкновения барабана с линейным приводом
Sergey
Это вы мне?
Sergey
Мой модуль arduino uno куплен в eBay
Владимир
А что за агрегат?
Sergey
А что за агрегат?
Автоматическая подача гильз для сигаретной машины
Владимир
Автоматическая подача гильз для сигаретной машины
:) именно с Ардуино не помогу. Но учитывая, что вращение в одну сторону, можно просто тики посчитать с 1 вывода энкодера.
Ruslan
шаговый врядли там пропускает шаги
Sergey
Я пытался но все напрасно них. Ена не увидел ни подсчётом шагов ни..
Sergey
шаговый врядли там пропускает шаги
Вы правы шаговик точный но в случае пробки гильз бывают пробуксовки
Sergey
По этому меня интересует такая проверка
2319
что за гранулы?)
Sergey
Табак :)
🤙🏻 ℙ𝔸𝕍𝔼𝕃
Насвай)
2319
Табак :)
почему не сделать по принципу разделителя стволов дерева?
Chel
запустил тестовый код отсюда https://github.com/marvinroger/async-mqtt-client/blob/develop/examples/FullyFeatured-ESP8266/FullyFeatured-ESP8266.ino подставил свой адрес и вайфай, вот что происходит в итоге. Это говорит о том, что брокер неправильно настроен? Почему не подключается? с esp8266 пробую
2319
Интересно просвятите
https://www.youtube.com/watch?v=XgJ1adZ4DDw
Chel
похоже под одним логином ходят несколько клиентов 😉
я без аутентификации вообще оставил
Ruslan
я без аутентификации вообще оставил
реконнекты такого вида бывают, когда на брокер ломятся два абсолютно одинаковых клиента
Sergey
https://www.youtube.com/watch?v=XgJ1adZ4DDw
Да и такой вариант рассматривал но этот компактнее)
Ivan
Конда на секунду отключил фаервол и злые хакеры тут-же насрали в сервер @devopsina
Sergey
а энкодер внешний ?
Да энкодер внешний
2319
Да энкодер внешний
зачем вам столько сигарет?)
2319
Да энкодер внешний
По мне так задача для школьников
ok-home
попробуй не в режим енкодера. просто повешай на нем заглушки ( или дырки) в нужных местах. Почти кнопка получится. Один оборот енкодра равен одному обороту барабана
Ivan
Только у меня печальный опыт с геозоном