Skocz do zawartości

ESP32-CAM - Foto Pułapka


Miglandz

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Dnia 25.04.2020 o 22:10, Miglandz napisał:

Trapi mnie jeszcze jeden problem mianowicie jeśli na zdjęciu jest więcej szczegółów np: cały kadr trzciny lub trawy, to obraz jest obcinany tak około 100-200px z dołu. Nie jest to chyba problem buforu w ESP bo przy kompresji ustawionej w sofcie na 10 zdjęcia zajmują 384KB jeśli zwiększę kompresje zdjęcia zajmują mniej a obraz i tak jest obcinany.

Ja tak mialem w przypadku ustawienia zbyt wysokiej rozdzielczosci obrazu. Bierze sie to z powodu sposobu rejestracji obrazu na matrycy i buforu zapisu. Jak obinzysz szczegolowosc lub rozdzielczosc to problem powinien zniknac.

Ja w swojej fotopułapce na "zwierzynę blokową" utknąłem na zapisie plikow na serwerze ftp. Niestety czas jaki byl potrzebny na zapis i przeslanie pliku byl zbyt duzy zebym potrafil sobie z tym poradzic. W koncu wykorzystalem ja jako webcamere i przy pomocy raspberry zapisuje obrazy po wyzwoleniu z czujnika ruchu. Ale ja mam dostep do pradu 😉

  • Lubię! 1
Link do komentarza
Share on other sites

@Kuba_k mówisz że zmiana rozdzielczości pomoże, wydaje mi się że już to testowałem, dzisiaj zabrałem kamerkę do domu i okazało się ze zmiana parametru

   config.frame_size = FRAMESIZE_UXGA; // FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA

nic nie zmienia 🙂 niezależnie co ustawię zawsze jest UXGA. Postaram się jak najszybciej udostępnić mój kod może ktoś znajdzie jakiegoś buga 😉

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

11 godzin temu, Miglandz napisał:

nic nie zmienia 🙂 niezależnie co ustawię zawsze jest UXGA. Postaram się jak najszybciej udostępnić mój kod może ktoś znajdzie jakiegoś buga 😉

Jeśli korzystasz z biblioteki espressif to z tego co pamietam najpierw kod robił zrzut na pełnej rozdzielczości, a dopiero później zmienijszał do zapisu do odpowiedniej. Dodatkowo sprawdz jaka jakosc masz zapisu do jpg bo to też może wpływać.

Jeszcze przypomniałem sobie, że podobny efekt miałem gdy za często skrypt wyzwalał migawkę, chyba minimum to była 1s żeby działało.

Link do komentarza
Share on other sites

Więc tak częściowo ogarnięte, standardowo miałem taki kawałek kodu:

  if (psramFound()) {
    config.frame_size = FRAMESIZE_UXGA; // FRAMESIZE_ + QVGA|CIF|VGA|SVGA|XGA|SXGA|UXGA
    config.jpeg_quality = 10;  //10-63 lower number means higher quality 
    config.fb_count = 1;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

No i zmieniając FRAMESIZE_UXGA na FRAMESIZE_SXGA nic się nie działo.

w dalszej części kodu, eksperymentowałem z różnymi opcjami typu balans bieli  kontrast itd. po przeanalizowaniu biblioteki doszedłem do wniosku że tam też można zmienić rozdzielczość i tak dopisałem:

   sensor_t * s = esp_camera_sensor_get();

          s->set_brightness(s, 0);     // -2 to 2
          s->set_contrast(s, 0);       // -2 to 2
          s->set_saturation(s, 0);     // -2 to 2
          s->set_special_effect(s, 0); // 0 to 6 (0 - No Effect, 1 - Negative, 2 - Grayscale, 3 - Red Tint, 4 - Green Tint, 5 - Blue Tint, 6 - Sepia)
          s->set_whitebal(s, 1);       // 0 = disable , 1 = enable
          s->set_awb_gain(s, 1);       // 0 = disable , 1 = enable
          s->set_wb_mode(s, 1);        // 0 to 4 - if awb_gain enabled (0 - Auto, 1 - Sunny, 2 - Cloudy, 3 - Office, 4 - Home)
          s->set_exposure_ctrl(s, 1);  // 0 = disable , 1 = enable
          s->set_aec2(s, 0);           // 0 = disable , 1 = enable
          s->set_ae_level(s, 0);       // -2 to 2
          s->set_aec_value(s, 300);    // 0 to 1200
          s->set_gain_ctrl(s, 1);      // 0 = disable , 1 = enable
          s->set_agc_gain(s, 0);       // 0 to 30
          s->set_gainceiling(s, (gainceiling_t)0);  // 0 to 6
          s->set_bpc(s, 0);            // 0 = disable , 1 = enable
          s->set_wpc(s, 1);            // 0 = disable , 1 = enable // likwiduje bad piksele białe
          s->set_raw_gma(s, 0);        // 0 = disable , 1 = enable // nie wiadomo co to robi domyslnie 1
          s->set_lenc(s, 1);           // 0 = disable , 1 = enable
          s->set_hmirror(s, 0);        // 0 = disable , 1 = enable
          s->set_vflip(s, 0);          // 0 = disable , 1 = enable
          s->set_dcw(s, 1);            // 0 = disable , 1 = enable
          s->set_colorbar(s, 0);       // 0 = disable , 1 = enable
          s->set_framesize(s, FRAMESIZE_SXGA);     // ustawiamy jeszcze raz jakość 

No i rozdzielczość się zmieniła. Powiem tak jest lepiej ale i tak na niektórych zdjęciach przycina, ale nie jest już tak tragicznie.

Link do komentarza
Share on other sites

Świetna sprawa, zwłaszcza że to jest naprawdę tanie urządzenie. ESP32 CAM ile kosztuje? Z 20 zł, a efekt jest naprawdę dobry 👍

Zainspirowałeś mnie, może zamontuję na balkonie podobne urządzono - tu dość często siadają przybysze z pobliskiego lasu 🙂 

Link do komentarza
Share on other sites

Dnia 12.05.2020 o 22:13, Miglandz napisał:

W ramach uzupełnienia uszczelnionych fotek :

 

Masz jakies opoznienie zeby PIR byl ignorowany do ilustam sekund? Bo imo to moze byc spowodowane za duza iloscia operacji na zdjeciu (opcje przetwazania ktore wrzuciles), zmieniana czestotliwoscia xclk i/lub za czestym wyzwalaniem migawki (esp nie daje rady obrobic i porzuca konwersje). To tak a propos dolu obrazu

Link do komentarza
Share on other sites

Czołem,

Świetny projekt. Także jestem na etapie testowania podobnego rozwiązania tyle, że po zrobieniu zdjęcia, esp wysyła zdjęcie z kartySD na google drive - tu link do github'a https://github.com/SCWhite/esp32cam-SDcard-googledrive-PIR. Chciałem skorzystać z Waszej wiedzy i zapytać czy jest możliwość implementacji w ten projekt trybu deep_sleep (coś na kształt tego projektu - https://randomnerdtutorials.com/esp32-cam-pir-motion-detector-photo-capture/. Mianowicie, chodzi mi o to, aby po zrobieniu zdjęcia i wysłaniu na gdrive esp szedł spać a w przypadku pojawienia się ruchu PIR (podłączony do GPIO13 przez tranzystor 2N3904) wzbudzał cały układ i ponownie łączył się z wi-fi i wysyłał zdjęcie. Próbowałem coś wymyślić i dorzucić te pare linijek kodu ale z marnym skutkiem - nie jestem programistą. Będę wdzięczny za podpowiedzi.

  esp_sleep_enable_ext0_wakeup(GPIO_NUM_13, 0);
 
  Serial.println("Going to sleep now");
  delay(1000);
  esp_deep_sleep_start();
  Serial.println("This will never be printed");

 

Link do komentarza
Share on other sites

(edytowany)

W załączniku mój kod. Działa tam deepsleep i to bez tego tranzystora. ESP32 budzone jest po wykryciu ruchu oraz co 30 min. foto-trap-v2-forbot.zip

I przy okazji ładna fotka:)

IMG40_128_2_1.thumb.jpg.1dbcc86fec4f6edf583aaeee32f4dc0c.jpg

 

@Kuba_k zmniejszyłem czułość, na PIR i jest teraz ok, bardzo mało fałszywych fotek.

 

Edytowano przez Miglandz
  • Lubię! 2
Link do komentarza
Share on other sites

Dzięki serdeczne za kod - pomysł z integracją domoticza przedni, spróbuje go dostosować do home-assistanta przez rest API albo mqtt. Pewno trochę to zajmie bo moje zdolności programistyczne są dość ograniczone. Jeszcze raz dzięki 🙂

Edit:

Nie było tak strasznie - w załącznikuesp32_cam_trap_FTP_PIR_MQTT.zip kod Miglandza z integracją MQTT - to rozwiązanie wydało mi się bardziej uniwersalne niż rest API home-assitant.

 

Edytowano przez jasiek_
Link do komentarza
Share on other sites

Dnia 29.05.2020 o 15:01, Miglandz napisał:

Działa tam deepsleep i to bez tego tranzystora.

A sprawdzałeś może jak jest pobór prądu przy uśpieniu? Ostatnio testuję różne regulatory i niestety 1117 który zwykle bywa w płytkach ESP niezbyt mi się zaczyna podobać w kwestiach energooszczędności 😞 ten modulik z kamerą miałem raz w ręku ale nie pamiętam jak to tam jest zrobione.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.