YouTubeHolk

Bloggat

Fågelholk online

Äntligen fått till en uppkopplad fågelholk – ett projekt jag länge velat göra. Blev inspirerad av en jobbarkompis som byggt en uppkopplad fågelholk och ville prova själv med en holk utanför kontoret.

Att koppla upp en fågelholk och streama aktiviteterna som pågår inne i holken till YouTube är ett riktigt kul byggoteknik-projekt. Men man får räkna med att stöta på både bygg- och teknikrelaterade problem eller utmaningar och förhoppningsvis kanske denna instruktion kan hjälpa. Om inte annat så är det en bra dokumentation för min egen del om något behöver skruvas på i framtiden…

Länk till holken på YouTube.

Projektet består av två delar; ett fågelholksbygge som är själva snickeridelen och en del som är mer teknikinriktad att konfigga en Raspberry Pi med en kamera och få den att streama till YouTube. Vi börjar med holkbygget som omfattar ett gäng bilder 🙂

Fågelholksbygget

– en tvårummare med fågelrum och teknikrum.

Features:

  • Vill dela av fågelrummet och teknikrummet med en plexiglasskiva som webbkameran kan se igenom. På så sätt får elektroniken vara ifred från diverse insekter och annat kryp. En fågelholk blir ganska bösig efter en säsongs användning och då är det fräscht om elektroniken får ett eget renrum att husera i
  • Löstagbar botten gör det enkelt att tömma holken till nästkommande gäst
  • Löstagbart tak gör det enkelt komma åt elektroniken vid behov
  • Sågade spår i panelen gör att holken ser ut att vara byggd av liggande panel
  • Inbrottssäker – spikad ring runt entrén så inte större fåglar kan hacka sig in

Material:

  • Några träbitar 22×170 mm ca 40 cm långa
  • En bit formplyfa till tak
  • Trälim för utomhusbruk
  • En bit 2mm plexiglas
  • 8 st 4x50mm skruv till stommen
  • En skruv 5×80 mm till bottenlåset
  • 2 st 4×30 mm skruv till bottenplattan
  • 4 st Magnetlås
  • Tätningslist
  • Utomhusfärg
  • Några pappspik runt ingången
  • 2 st hängbläck
  • 4 st små försänkta skruv till hängbläcken
  • 2 st montageskruv att hänga upp holken med

Verktyg:

  • En kapsåg underlättar göra fina kap
  • En klyvsåg för att göra spår som ser ut som liggande panel
  • En fogsvans
  • Vinkelhake
  • Penna
  • Skruvmejsel eller skruvdragare med bits
  • 6 mm borr
  • 11 mm borr för inkommande ström (Micro-USB-kontakt)
  • 1,5 mm borr till pappspiken
Byggoteknik Bird Box

Byggoteknik Bird Box med trådlöst WiFi för streaming till YouTube. I förgrunden syns redskapsboden och längre bak en 2-bostadsholk.

Hårdvaran

Komponenter:

  • Raspberry Pi Zero W
  • Raspberry Pi NOIR camera module
  • Litet case som passar. Följde med kort platt kabel som ansluts till kameran
  • Ett MicroSD-kort. Jag kör med ett 16 GB
  • 5 meter Micro-USB kabel för att strömsätta kortet
  • En infraröd LED
  • En bit hylslist till IR-ledden
  • Ett 100-ohms motstånd
  • Lite 2 mm krympslang
  • Batterieliminator 5V minst 2,1A. Jag valde en med USB-uttag för att enkelt kunna ansluta 5-meters-kabeln

Bra att ha:

  • En kortläsare för att skriva filerna till SD-kortet
  • En lödkolv och lödtenn för att kunna fixa till IR-dioden samt löda fast header-stiften på pi-kortet
  • En adapterkabel USB OTG för att kunna ansluta ett USB-tangentbord till Raspberryn
  • En adapter Mini HDMI hane till HDMI hona underlättar om man vill ansluta en TV med HDMI-port (och du redan har HDMI-kabel) under tiden man konfigurerar Raspberryn

Mjukvara

Här finns en hyffsat komplett guide för hur man får igång Raspberry-streamingen men vissa detaljer förutsätter att man är bekant med Raspberryn. Följande gjorde jag från en Windows 10-maskin.

Raspberry Pi OS

Raspberry Pi Imager

Raspberry Pi Imager

Installera Raspberry Pi OS (tidigare kallad Raspbian) med hjälp av Raspberry Pi Imager. Följde denna guide och valde Raspberry Pi OS Other, Raspberry Pi OS Lite eftersom jag inte behöver något gränssnitt utan bara ett basic operativsystem.

Det går inte formatera SD-kortet i Windows

SD Card Formatter

SD Card Formatter

Om man får problem med SD-kortet (vilket jag fick när jag avbröt Raspberry Imager mitt i en process) så kan det strula till sig med partitionerna på kortet och det går inte längre att skriva till kortet eller formatera det i Windows Explorer. Raspberry Imager skriver till två partitioner på SD-kortet; en boot-partition FAT32 och en Linux-partition som Windows inte ser. För att formatera om hela kortet kan man då använda ett program som heter SD Card Formatter som kan laddas ner här.

Börja med att byta lösenord på pi-användaren i användargränssnittet genom att skriva
sudo raspi-config

Headerless

WiFi och SSH

WiFi och SSH

Hittade en guide för att konfigurera en headerless Raspberry Pi. Headless (betyder att man inte ansluter någon skärm, mus eller tangentbord).

Konfigurera nätverket

Använd Notepad och skapa en fil i rooten som heter wpa_supplicant.conf och med detta innehåll:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=SE

network={
 ssid="2.4G WIFI NETWORK"
 psk="WIFI PASSWORD"
 proto=RSN
 key_mgmt=WPA-PSK
 pairwise=CCMP
 auth_alg=OPEN
}

Mer info.

Disabla Bluetooth

Disablade Bluetooth eftersom jag inte vill använda det genom att lägga till dtoverlay=disable-bt i config.txt-filen.

Routerkonfiguration

Mitt Raspberry Pi Zero W är version 1.1 och har inte stöd för 5G-WiFi. Var därför tvungen aktivera ett 2.4G gästnätverk i routern för att kunna ansluta till det. Tänk på att dölja SSID inte fungerar. Om du har ett mesh-nätverk med flera routers, tänk på att dela ut nätverket till de andra noderna. Jag valde också lägga in ett MAC-filter för att hindra andra enheter att ansluta till 2.4-nätet.

SSH

Använd Notepad och skapa en fil i rooten som heter SSH. Inget innehåll i själva filen. Starta upp pien så kommer filen läsas in och aktivera SSH. Installera en SSH-klient som t.ex. PuTTY.

Installera ffmpeg

https://ffmpeg.org/download.html
https://tracker.debian.org/pkg/ffmpeg
https://packages.debian.org/source/stable/ffmpeg

Testa kameran

Anslut Raspberryn via HDMI till TVn och kör kommandot:

raspivid -t 0
Ctrl + C för att avsluta

Avsluta Raspberry OS
sudo halt
Vänta tills ACT-lampan släcks.

Script

Raspberry radbrytning

Raspberry radbrytning

Skapa två bash-script genom att använda Notepad++ och lägg dem i rooten på SD-kortet. Se till att Notepad hanterar radbrytningar på rätt sätt genom att välja Unix (LF) under menyn Edit, EOL Conversion.

Bashscript är vanliga textfiler. För att göra ett Bash-script exekverbart behöver man sätta exekveringsflaggan på filen i Linux, såhär:
”chmod u+x start_stream.sh” (u+x betyder typ ”for user, add execution rights”, så ägaren av filen har rätt att exekvera den, men ingen annan) För att köra scriptet, om man står i samma katalog som det ligger, skriver man ”./start_stream.sh”.

start_stream.sh
Filen start_stream.sh innehåller följande kod för att starta streamen till YouTube:

raspivid -o – -t 0 -w 1280 -h 720 -fps 30 -b 4000000 -g 50 -awb greyworld -a 4 -a ”Bird Box: %Y-%m-%d %X” | ffmpeg -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i – -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/STREAMINGNYCKEL FRÅN YOUTUBE

Ersätt STREAMINGNYCKEL FRÅN YOUTUBE med den unika nyckeln för din streaming i YouTube. Hoppa till ”Streama till YouTube” längst ner för att förbereda din stream och få nyckeln.

Kommandot består av två delar. Första delen kör programmet raspivid.
Parametrarna efter säger bland annat storlek på bilden, var den ska skickas (ut i terminalen), och vitbalans-preset som heter ”greyworld” och är en vitbalans anpassad för NoIR-kameran. Om du har en annan kamera så kan du behöva en annan vitbalans, eller utelämna ”-awb”-parametern helt
raspivid -o – -t 0 -w 1280 -h 720 -fps 30 -b 4000000 -g 50 -awb greyworld -a 4 -a ”Bird Box: %Y-%m-%d %X”

Sen kommer ett pipe-tecken ”|” följt av nästa program som heter ffmpeg.
ffmpeg kodar videon till FLV-format och skickar till YouTube. En del av kommandot trycker in tystnad som ljudspår. Tror YouTube kräver det.

Pipe är vanligt i Linux och betyder att output från ett kommando, i det här fallet ”raspivid” används som input i nästa kommando som är ”ffmpeg”.

wrapper-script.sh

cd /boot
until ./start_stream.sh; do
        echo "Script crash: $?. Respawning.." >&2
        sleep 10
done

Om du får problem med att scriptet kraschar efter en stund kan man skapa ytterligare ett script som automatiskt startar upp processen igen. wrapper-script.sh innehåller ett kommando som heter ”until” för att anropa ”start_stream.sh”. Until kommer att köra ”start_stream.sh” till dess att det kraschar, och kommer då att utföra instruktionerna som står efter ”do”, och sen startar until om ”start_stream.sh” igen. I mitt fall skriver ”until” ut ”Script Crash” och lite annat, och sen pausar den 10 sekunder innan den drar igång ”start_stream.sh” igen.

Glöm inte att köra ”chmod u+x wrapper-script.sh” också. Så för att köra igång streamingen kör jag alltså wrapper_script.sh som anropar start_stream.sh.

/boot/config.txt
De här raderna har jag lagt längst ner i /boot/config.txt. Det kan lösa problem om pien kraschar.

over_voltage=4
force_turbo=1
arm_freq=600
arm_freq_max=700
arm_freq_min=500

Eject USB Drive

Så fort konfigurationen är klar på SD-kortet via datorn är det bra att frånkoppla enheten på ett säkert sätt så inga filer ligger låsta eller liknande. Högerklicka på den lilla USB-sticke-ikonen nere till höger på skärmen och välj Eject USB Drive och enhetsbokstaven.

Autostarta streamingen

För att autostarta streamingen till YouTube när Raspberryn strömsätts flyttade jag wrapper_script.sh till /etc/init.d genom att skriva följande
cd /boot
sudo mv wrapper_script.sh /etc/init.d
cd /etc/init.d
sudo update-rc.d wrapper_script.sh defaults

Efter detta autostartar streamingen men jag vet tyvärr inte hur man avbryter programmet om man skulle vilja. Får återkomma om detta…

Belysning

För att man ska kunna se även när det blir mörk installeras en infraröd LED i serie med ett 100 ohms motstånd och ansluts till Raspberryns 5V-utgång. LEDen jag använder har framspänning 1,5V och drar 100mA varför ett 100 ohms motstånd blir ganska lagom till 5V. Det räcker med en LED. Gjorde ett snabbt test i labbet och anslut till spänningsregulatorn och förhandsgranskade streamingen i total mörker och det blev som mott på dagen trots att man inte själv ser ljuset från IR-dioden! Då kommer den heller inte störa fågellivet!

IR-diod

En IR-diod lyser upp fågelrummet så man kommer kunna se även när det är mörkt men fåglarna kommer inte störas av ljuset eftersom våglängden är 850nm och därmed osynlig för ögat.

Montering

Sedan är det bara att löda fast headern i Raspberryn, montera kameran och trycka dit grejerna i caset. Hur snyggt som helst! Justera in focus på kameran med dem medföljande vita ploppen som man fäster försiktigt på kameralinsen och snurrar något varv tills man hittar rätt.

Raspberry Pi Zero W Headers

Raspberry Pi Zero W Headers

Raspberry Pi Zero W med NOIR-kamera

Raspberry Pi Zero W med NOIR-kamera

Streama till YouTube

YouTube-stream

YouTube-stream

Har du inget YouTube-konto sedan innan kan det ta något dygn innan det går att streama live.

  • Logga in på din YouTube-kanal
  • Välj Hantera videor
  • Välj Innehåll och fliken Live
  • Kom igång
  • Börja Nu
  • Välj Streamingprogramvara
  • Skapa Streamingen
  • Kopiera Streamingnyckeln och adressen

Uppdatera OS

Uppdaterat 2023-04-30. Efter ett par säsongers drift är det dags att uppdatera Raspberry PI OS för att säkra med patchar o.s.v. Det kräver att SSH är aktiverat enligt ovan. Mer info här.

  • Anslut till Raspberry med PuTTY från en dator i samma nät
  • Ange IP adress i Host Name-fältet
  • Uppge användarnamn och lösenord. Default användarnamn om det inte är ändrat är pi
  • Kontrollera OS-version genom att skriva cat /etc/debian_version
  • Hämta de senaste packages sudo apt-get update. Om det står
    Repository ’http://raspbian.raspberrypi.org/raspbian buster InRelease’ changed its ’Suite’ value from ’stable’ to ’oldstable’
    This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
    Kör kommando sudo apt-get update –allow-releaseinfo-change
  • Uppdatera listan med tillgängliga packages sudo apt-get upgrade -y
  • Installera packages sudo apt full-upgrade
  • sudo apt clean rensar bort filer som inte behövs
  • sudo reboot startar om

Fler holkar

Här är min kompis fågelholksstream

.

,

By  -      


Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *