Skip to content

Luc3as/BirdCam3000

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐦 BirdCam3000

Energeticky sebestačná kamera pre vtáčie kŕmidlo Solar powered camera for bird feeder.

BirdCam3000 rendered visualisation

🔗 EN Project info bellow, ⬇️

ℹ️ Základné informácie

Živý pohľad je dostupný na adrese vtaciky.lukasporubcan.sk Projekt popisuje použitie lacného modulu ESP-32 CAM, ako kameru ktorá sníma vtáčikov v kŕmidle umiestnenom na balkóne bytového domu. Riešenie je energeticky sebestačné, napájané štvoricou solárnych panelov.

🔨 Hardwarové riešenie

Samotná kamera používa objektív so širokouhlou optikou, tým je zabezpečená viditeľnosť širokého priestoru z krátkej vzdialenosti.

Keďže doska ESP-32 je pomerne napäťovo hladná (cca 200mA pri vysielaní), plocha strechy nestačí na dostatočne veľké solárne panely, ktoré by dokázali napájať kameru aj po západe slnka. Kamera však nemá IR filter takže v noci nevidí. Preto som tento problém vyriešil modulom ktorý sa zopne po východe slnka čím pripojí kameru k batérií. Pre zvýšenie výdrže ESP-32 napájam z pinu 3V3 s použitím LDO 3,3V. Tento plánujem vymeniť za 3V, výdrž by mala byť ešte o niečo lepšia, ESP-32 dokáže podľa testov naštartovať zhruba pri 2,9V. Internal alignment Ako úložisko energie som použil 2x 18650 LiPo batérie zapojené paralelne k sebe, nabíjací obvod TP4056 so vstavaným ochranným obvodom pred podbitím batérie. Medzi solárnymi panelmi a nabíjacím obvodom je umiestnený ešte DC-DC boost modul ktorý zvyšuje napätie pri slabom osvetlení solárnych panelov.

Na indikáciu stavu batérie bez potreby pripojenia modulu k wifi je v krabičke vstavaný LED indikátor nabitia batérie. Wiring

:atom: Software

Základný program v kamere je ESPHome, kamera komunikuje cez WiFi do riadiaceho systému HomeAssistant. Pod HomeAssistantom je nainštalovaný addon Frigate NVR ktorý umožňuje detekciu objektov z videa pomocou naučených modelov umelej inteligencie.

Verejná stránka je jednoduchý web založený na Bootstrap 5 frameworku. Aby som sa vyhol sprístupneniu celého API verejnosti, používam NGINX Proxy Manager ktorý presmerováva požiadavky na konkrétne systémy v lokálnej sieti. Webová stránka dotazuje Nginx, ktorý cez Frigate API vracia aktuálny obrázok kamery a tiež historické snímky na ktorých bol detegovaný objekt, v našom prípade vták. Pre zobrazenie aktuálnej teploty a atmosférických podmienok používam HTTP Endpoint v NodeRED ktorý informácie z HomeAssistantu transformuje do JSON odpovede, ktorá sa zobrazuje na webe. Data flow diagram

✏️ Dizajn

Rozloženie, obrázky a celkovú kompozíciu webu som vygeneroval za pomoci umelej inteligencie cez službu MidJourney. Jednotlivé časti obrázkov som upravil, poskladal a usporiadal v Photoshope.

Časti zdrojového kódu webu ktorý má na starosti načítavanie aktuálneho obrázku z kamery, ako aj zobrazenie počasia, napísala taktiež umelá inteligencia, cez službu ChatGPT.

🧊 Krabička

Krabička pre uloženie komponentov, ako aj držiaky solárnych panelov sú dostupné v zložke 3D-files. Súčasťou krabičky je integrovaný tunel pre binderku ktorá zabezpečuje batérie pred pohybom. Pre jednoduchšiu tlač je kryt kamery a svetelného senzoru vytlačená zvlášť a spolu sú prichytené sekundovým lepidlom. Pre vyššiu odolnosť pôsobením vonkajších vplyvov odporúčam krabičku tlačiť z PET-G alebo podobného materiálu.

ℹ️ Basic informations

You can check live view at vtaciky.lukasporubcan.sk In this project I use cheap ESP-32 CAM module as camera for capturing birds in birds feeder, placed at balcony of our building. Solution is self powered with help of 4 solar panels mounted to the roof.

🔨 Hardware

To be able to view whole internal part of bird feeder from relatively shor distance, I found 160 degrees fish eye lens for ESP-32.

ESP-32 is quite power hungry for battery operated solutions (cca 200mA while transmitting), there is no enough space for bigger solar panels on the roof. But the camera module doesn't have IR filter so we don't need to broadcast at night. I solved this problem with cheap light dependend module switch, which will turn on power to the camera after sunrise. For better battery life I fed the ESP-32 module through 3V3 pin, using LDO AMS1117. I am planning to switch this to 3V LDO and prolong the battery life even a bit more. From my tests, my ESP-32 can boot sucessfully from about 2,9V. Internal alignment For energy storage I used 2x 18650 LiPo batteries, I harvested from old laptops. They are connected in parallel to gain capacity. For charging there is TP4056 module with integrated protection for battery undervolage and overvoltage cutout. Between solar panels and charger there is also DC-DC boost module to slightly increase voltage in cases there is not enough sunlinght. As visual battery indicator without need to be connected to WiFi, there is LED battery indicator module built in to the case. Wiring

:atom: Software

Camera runs on basic ESPHome firmware, it sends data through WiFi to the HomeAssistant. Under HomeAssistant there is addon called Frigate NVR, which is capable of detecting objects from video using pre-learned AI models.

Public WEB is simple website based on Bootstrap 5 framework. I don't wanted to exposed whole HomeAssistant, NodeRED, or Frigate API to the public internet, So I used NGINX Proxy manager as redirector for API calls from outside my network. Public web is requesting NGINX Proxy, which grabs actual image from Frigate, and also historical snapshots with detected objects, in our case birds, and shows it on the web. There is also API for loading outside temperature and humidity, this call handles HTTP Node in NodeRED, which asks HomeAssistant for data, encode response to JSON and sends it back. Data flow diagram

✏️ Design

Overall design, composition, images and birds were generated through AI, with MidJourney. Later I cleaned, aligned and edited all images in Photoshop.

Parts of code of public web page, reponsible for loading and showing actual camera image, as well as loading of weather, was too written with help of AI, using ChatGPT.

🧊 3D printed case

All 3D files for case for electronics as well as mounting of solar panels, are in 3D-files folder. There is integrated slot for zip tie under the batteries so you can secure them inside the case. For ease of print I splitted some parts of front cover as camera cover and LDR cover to separate files, these can be stitched together with drop of superglue.

To prolong case life in the wild, I suggest to use PET-G or similar material for printing the case.

📄 Zoznam komponentov / BOM

🖼️ Gallery

BirdCam3000 rendered visualisation BirdCam3000 rendered visualisation BirdCam3000 rendered visualisation BirdCam3000 rendered visualisation Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly Real photo of assembly

If you liked my work, you could buy me a coffee :)

Buy Me A Coffee

Or send some crypto

Donate Bitcoin

About

Solar powered camera for bird feeder.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published