Quantcast
Channel: Byggoteknik
Viewing all articles
Browse latest Browse all 319

Fågelholk online

$
0
0

YouTubeHolk

Ä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 holken som hänger 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 under byggets gång stöter man stöter på ett antal både bygg- och teknikrelaterade problem eller utmaningar.
Projektet består av två delar; ett fågelholksbygge som är själva snickeridelen och en del som är mer teknimkinriktad 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
Material:
  • Några träbitar 22x170 mm ca 40 cm långa
  • En bit formplyfa till tak
  • Trälim för utomhusbruk
  • En bit 2mm plexiglas
  • En skruv 5x80 mm
  • 2 4x30 mm skruv
  • 2 st Magnetlås
  • Tätningslist
  • Utomhusfärg
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
[gallery ids="13802,13803,13804,13805,13806,13807,13808,13809,13810,13811,13812,13796,13797,13798,13799,13800,13801"]

Hårdvaran

Komponenter:
  • Raspberry Pi NOIR camera module
  • Ett MicroSD-kort. Jag kör med ett 16 GB
  • Litet case som passar
  • 5 meter Micro-USB kabel för att strömsätta kortet
  • 3 Female-to-female jumper
  • Några 220 Ohm 1% Resistors
  • Några infraröda LED (5mm 890nm)

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. 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 formattera SD-kortet i Windows

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

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 https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md 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 }

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.

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

Skapa två script genom att använda Notepad++ och lägg dem i rooten på SD-kortet. start_stream.sh Det här är kommandot för att starta YouTube-streamen från kameran: 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/ 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 vitbalanspreset 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". För att slippa hålla på med det långa kommandot för att starta en stream så har jag lagt kommandot rakt upp och ner i ett Bash-script som jag döpt till start_stream.sh. 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". Sen hade jag ju problemet med att streamen kraschade ibland, och jag vill då att den automatiskt startar upp igen. Det gjorde jag genom ett enkelt script som jag kallade "wrapper-script.sh". I wrapper-script.sh kör jag 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 starta min stream kör jag alltså wrapper-script.sh som anropar start-stream.sh. wrapper-script.sh until ./start_stream.sh; do echo "Script crash: $?. Respawning.." >&2 sleep 10 done /boot/config.txt De här raderna har jag lagt längst ner i /boot/config.txt Det är tack vare dem som min Pi Zero slutade att krascha hela tiden over_voltage=4 force_turbo=1 arm_freq=600 arm_freq_max=700 arm_freq_min=500

Autostarta streamingen

För att autostarta streamingen till YouTube när Raspberryn strömsätts flyttade jag wrapper_script.sh till HMM... ÅTERKOMMER.

Belysning

För att man ska kunna se även när det blir mörk installeras infraröda LED. Beskrivning kommer så småningom...

Streama till YouTube

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

Fler holkar

Här är min kompis fågelholksstream.

Viewing all articles
Browse latest Browse all 319


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>