Tekniken bakom Holken - Live
Kameran som jag använde - esp32-camera [meny]
RandomNerdtutorials har en utmärkt guide för att få igång kameran. När man programmerar den så behövs en FTDI-modul för att kunna föra över koden via usb, men det fungerar också om man har en Arduino Uno som FTDI-modul. Ett tips är att köpa en kamera med FTDI-modulen och antennen, det underlättar en del.
3D-printade delar [meny]
Jag använde en 3D-printer för att få till ett litet kamerahus med lysdioder till esp32-cam och några hållare för att kunna sätta upp solcellen.
Kamerahuset fick inte vara så stort och det skulle också vara möjligt att sätta dit fyra stycken lysdioder för att få till ljuset i holken. Utan extra belysning blir bilden inte bra, lysdioderna lyser upp ganska bra.
Kolla gärna in lysdiod-kopplingen och när lysdioderna ska vara tända under programmering.
Kolla gärna in lysdiod-kopplingen och när lysdioderna ska vara tända under programmering.
Det blev också några hållare för solcellsmodulen, tanken var att jag skulle kunna justera in vinkeln mot solljuset. Kolla gärna mer under strömförsörjning.
Strömförsörjning [meny]
Eftersom jag inte har ström fram till holken fick jag hitta på en lösning. Jag tänkte mig att solceller vore ett intressant projekt att kasta sig in i. Lagringen av strömmen från solcellerna gjorde jag till ett 12V batteri till för en motorcykel eller något sådant. Batteriet har en kapacitet på 9 Ah så det bör räcka tänkte jag.
Esp32-cam drar nog en del om wifi ska vara inkopplat hela tiden, men jag hoppades på att 9 Ah skulle räcka även för någon molnig eller snöig dag. Kolla in mina försök att få till energibesparing via programmeringen.
Esp32-cam drar nog en del om wifi ska vara inkopplat hela tiden, men jag hoppades på att 9 Ah skulle räcka även för någon molnig eller snöig dag. Kolla in mina försök att få till energibesparing via programmeringen.
Man kan också se monteringen av solcellsmodulen, med hjälp av mina 3D-printade hållare. Förhoppningsvis håller montaget även efter att solen har skickat sina strålar mot PLA-plasten från 3D-skrivaren.
Det skulle ju inte få regna in på solcellsregulatorn, så jag köpte en billig plastlåda som jag stoppade in allt i. Vanligt smältlim fungerade utmärkt att få fast regulatorn i plastlådan.
Det skulle ju inte få regna in på solcellsregulatorn, så jag köpte en billig plastlåda som jag stoppade in allt i. Vanligt smältlim fungerade utmärkt att få fast regulatorn i plastlådan.
![]() |
| Solcellhållarna |
![]() |
| Hela installationen |
Programmering [meny]
Jag hade en idé om att kunna vara energieffektiv och försätta esp32-cam i sleep-mode under natten (googla deepsleep arduino). Deepsleep betyder att allt utom en RTC (klockmodul) försätts i sovläge, wifi modulen, processorn etc. Jag fick till det, men tyvärr fungerade det inte helt när esp32-cam vaknade upp igen, bildupplösningen gick ned till sämsta möjliga och http-strömningen var man tvungen att start upp igen manuellt. Om man hade grävt djupare hade det kanske gått att lösa.
På natten ville jag inte att lysdioderna skulle lysa, dels för att fåglarna förmodligen vill ha det mörkt när de sover och dels för att spara lite ström. Man skulle kunna lösa det med ett fotomotstånd som kände av ljuset, men det släppte jag för att det nog vore svårt att ställa in exakt läge då man ska stänga av lysdioderna. Två skäl fick mig att ändra tankegången, den ena var att vi går mot en ljusare och ljusare period och förmodligen kan det vara rätt ljust långt in på kvällen i maj, den andra var att det vore svårt att få till ett värde som täcker när det är molnigt, regnigt eller snöstorm. Så det fick bli en annan lösning.
Jag använde mig av Arduino IDE när jag förändrade och la till i exempelkoden för esp32-cam. Lösningen var att testa vad klockan är med ett anrop till en NTP-server. Jag löste det så att esp32 processorn räknade upp/väntade 3600 sekunder och sedan kollade vad timmen var och reagerade på det. Lysdioderna lyser nu mellan kl. 08.00 och 21.00 (ungefär), Och det fungerar ganska bra, även om man kunde ha kollat tiden lite tätare ex. efter 15 min.
Men...
Om jag hade varit lite mer förutseende och testat mer, så hade jag försökt få till en kodsnutt som återstartar Wifi om esp32-cam av någon anledning tappat kontakten. Det händer ungefär en gång per natt eller kväll. Jag fick också köpa in en wifi-extender för att ha bra koppling, men ibland händer det att nätet svajar lite (inte ofta) och då tappar esp32-cam kontakten. Och den går inte upp automatiskt. Rekommenderas en antenn, wifi återstart kanske tillsammans med/innan vi försöker få kontakt med NTP-servern.
Och gärna en esp8266 som kunde checka av batteristatus. Det får bli nästa gång.
Förresten, man skulle kanske ha kvar FTDI-modulen på Esp32-camchippet, så att man kunde programmera om den utan att öppna holken. Jag använde mig av en enkel transistor (bc547) för att styra lysdioderna direkt från batterikällan för att undvika att dra ström direkt från Esp32-cam.
Och gärna en esp8266 som kunde checka av batteristatus. Det får bli nästa gång.
Förresten, man skulle kanske ha kvar FTDI-modulen på Esp32-camchippet, så att man kunde programmera om den utan att öppna holken. Jag använde mig av en enkel transistor (bc547) för att styra lysdioderna direkt från batterikällan för att undvika att dra ström direkt från Esp32-cam.
Streaming via Youtube [meny]
När man har fört över koden till ESP32-cam så startas en http-streamingserver som strömmar kamerans video lokalt till den IP-adress som tilldelats kortet. Det finns inbyggt en hel del inställningar man kan göra, men det viktiga är att sätta videoupplösningen först (i mitt fall 1600x1200) och sedan starta strömmen. Om man stänger den sidan och öppnar 192.168.xxx.xxx:81/stream så kommer man åt http-strömmen utan inställningarna. Allt sker lokalt i ditt nätverk.
Nu ska vi skicka videoströmmen till youtube (du måste ha ett konto), det finns en hel del olika varianter av lösningar, men jag valde den fantastiska Open Source programvaran Open Broadcast Software - OBS Studio. Jag installerade på en gammal Mint Linux laptop, som jag konfigurerade till att funka med bildskärmen stängd. Jag hann tyvärr inte grotta ner mig i FFmpeg på en Raspberry Pi som också hade kunnat strömmat vidare till youtube. (http-strömmen måste konverteras till rtmp-videoström, men det fixar OBS Studio)
I OBS Studio ställer man in att man vill använda en webbläsare och där matar man in xxx.xxx.xxx.xxx:81/stream sedan är det bara att konfigurera med youtube streamingnyckel eller enklast koppla youtubekontot. Börja strömma! Och kolla in ditt youtube konto om det funkar.
Inte alls så svårt som det verkar vid första anblicken, OBS Studio är ganska intuitivt,
I OBS Studio ställer man in att man vill använda en webbläsare och där matar man in xxx.xxx.xxx.xxx:81/stream sedan är det bara att konfigurera med youtube streamingnyckel eller enklast koppla youtubekontot. Börja strömma! Och kolla in ditt youtube konto om det funkar.
Inte alls så svårt som det verkar vid första anblicken, OBS Studio är ganska intuitivt,
Inköpslistan [meny]
Solcellspanelen köpte jag från Banggood.com, det tar lite tid innan man får grejorna, men moms är inkluderad så man slipper tull/avgifter från PostNord i efterskott.
Du kan också köpa en ESP32-cam med antenn inkl. FTDI-modulen därifrån.
Eller köp hos PCHButik.se men då får du lägga till en antenn och FTDI
Eller Electrokit.se (lite dyrare men bra) + antenn och FTDI
Solcellspanelen har en regulator som ger 12 V för batteriet och även ut via 2 usb 5 V. Det fungerar att ta ström (5 V) direkt till ESP32-cam utan att konvertera.
För streamingen har jag en gammal laptop med Mint Linux och installerat Linux OBS Studio allt utan någon kostnad, för en gammal dator/laptop har man ju liggande... :-)
Erfarenheter och "borde ha tänkt på detta" [meny]
Jag har nämnt det innan i texten, men den absolut största erfarenheten är att programmera in en restart-funktion om wifi-kopplingen tappar kontakten med Esp32-cam. Då ska koden avsluta wifi och sedan koppla upp igen (förmodligen får den samma IP-adress, annars kan du alltid låsa den i din router). Det borde inte vara så himla svårt kan jag tänka mig. Just nu sitter wifi-koden i Startsekvensen på kortet, den kan man förändra.
Givetvis också en extern antenn till esp32-cam. Jag monterade en takplåt på holken för att skydda för regn, givetvis skulle det ha varit takpapp eller liknande. Plåten stör förmodligen wifi lite grand, jag har inte mätt om det är så, men det är en hypotes.
Givetvis också en extern antenn till esp32-cam. Jag monterade en takplåt på holken för att skydda för regn, givetvis skulle det ha varit takpapp eller liknande. Plåten stör förmodligen wifi lite grand, jag har inte mätt om det är så, men det är en hypotes.
Kanske låta FTDI-modulen sitta kvar på kortet så att du kan programmera i efterhand när holken är på plats. Om det nu är möjligt att föra över kod utan att trycka reset (boot-läge), eller kanske hellre programmera allt färdigt och tänka klart innan man sätter upp holken. ;-)
Önskvärt skulle kunna vara att man sätter en esp8266 som mäter spänningen i batteriet och uppdaterar resultat via en webbserver om det är Ok eller inte. Den skulle man förmodligen kunna försätta i deepsleep och med 10 min mellanrum vakna upp och skicka över resultatet. Det borde inte dra så mycket ström. Det får bli nästa gång!







Kommentarer
Skicka en kommentar