Jag har haft en raspberry pi i mitt växthus ett tag.. i år upptäckte jag dock att jag hade larvat bort det sd-kortet som satt i. Så jag tänkte dokumentera hur jag har satt upp min så andra kan göra lika dant eller kanske ännu bättre.. 🙂
Om vi börjar med inköpet av själva raspberryn. En del har sådana som ligger och skräpar eftersom många gillar att ha dem som mediaspelare..
Men om vi utgår från att du inte ha något alls liggandes hemma..
Då hade jag åkt till NetOnNet.. Eller Kjell och Company eller liknande el-nasare.. Personligen orkar jag sällan åka till flera ställen.. Har 1 butik allt i lager så åker jag dit och kör på ett onestop-shop..
https://www.netonnet.se/art/komponenter/moderkort/integreradprocessor/raspberry-pi-3-model-b-startpaket/229799.9008/
Där har du din raspberry. Komplett med låda, sd-kort och nätdel.. Du kan komma mycket billigare undan om du letar runt lite.. Men vem orkar det.. Inte jag i vilket fall.. Det är okej pris och jag kan handla den på studs..
Sedan vill jag ha en kamera till så jag kan ta bilder.. Jag gillar Microsoft Lifecam Studio.. Den ger mig en bra upplösning till ett okej pris.. Dock fanns den ju inte hos netonnet..
http://www.prisjakt.nu/produkt.php?p=724739
När vi väl har dessa prylar hemma så är det dags för installation av själva systemet.
Jag började med att hämta hem noobs från Raspberry Pi:s hemsida..
Det är en zipfil som man lägger på minneskortet.. Det är bara att kopiera ut filerna.. Installationen löser allt själv sedan..
Jag kopplade raspberryn till min teve eftersom det var den snabbaste hdmi anslutningen som jag hade hemma.. Jag kopplade ett tangentbord till den..
När den väl var installerad så öppnade jag en terminal, (CTRL-ALT-T) och där skrev jag
sudo adduser nisse
(Du kan ju välja vilket användarnamn du vill).
Fyllde i alla uppgifter och valde ett lösenord för nisse..
Sedan gav jag nisse möjlighet att köra skit som sudo.. (Det är enklast så för att komma åt kamera etc.. Man kan lösa det genom grupper.. Men hey.. Det skall bli klart innan sommaren är över.. Jag kan tajta till installationen senare.. Eller mer troligen aldrig..
Vill man göra det fult så skriver man som följer..
sudo chmod 644 /etc/sudoers
sudo echo "nisse ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo chmod 400 /etc/sudoers
Vad som händer med raderna ovan är följande :
chmod 644 gör att man kan redigera men inte köra och andra kan läsa..
echo raden gör att nisse får leka gud utan att ange ett lösenord.. Du kan enklet googla dig fram till hur du bygger en bra sudorad för just ditt system.. Tanken är inte att någon utifran skall köra något mot denna maskinen så jag gör det enkelt för mig..
chmod 400 gör att enbart root får läsa filen och ingen annan vilket skyddar den från oönskade ögon..
När detta är klart klart så har du en användare som du kan köra saker med och slipper köra processer om gud.. Vilket du skall undvika i största möjliga mån..
Nu är det dags att uppdatera systemet.. Om din pi är uppkopplad mot internet så kan du köra följande för att allt skall vara av senaste snitt..
sudo apt-get update
sudo apt-get upgrade
I detta skedet så kan det vara bra att ha koll på vilken ipadress som din raspberry har fått..
Det kan du enkelt kolla genom att du kör följande :
ifconfig
Då får du upp något i stil med detta..
Det du skall skriva ner är det som jag har markerat med en grön pil.. Altså inet adressen för ipv4.. Kör du ipv6 så har du nog inte ens tittat på bilden ovan..
Det röda behöver du inte bry dig om, det är bara jag som är lite paranoid och maskar en del..
Personligen så är jag inte mycket för att köra X (Det grafiska gränssnittet) på mina raspberry pi:s.. Så jag brukar stänga av det..
Det gör jag genom att köra följande
sudo raspi-config
Där väljer jag Bootoptions.
Där under väljer jag Console, det finns ingen anledning att den skall logga in automatiskt.. Jag kör alla processer via crontab eller så startar jag dem via php..
Slutligen så kan du välja att boota om..
Nu när du har valt att boota om så loggar du inte med din nya användare och tillhörande lösenord.. Eller så kör du putty och ssh:ar in direkt på din raspberry.. Då slipper du ha den kopplad till en skärm..
Nu är det dags för det roliga..
Först slänger vi på fswebcam
sudo apt-get install fswebcam
Borde ta cirka 20-30 sekunder..
Sedan är det dags att testa..
sudo fswebcam -D 3 -S 30 /tmp/plupp.jpg
Nu skall du ha en jpg fil som ligger /tmp/ och heter plupp.jpg..
Om du vill bygga dig en film på ditt objekt som du fotar så kan du ju bygga en fil med hjälp av datum och tid.. Jag lägger till det senare här i posten..
Just nu så skickar jag filen till ftp så att ni skall kunna se den på denna wp-sajten..
Det gör jag med hjälp av wput.. Wput ligger inte med som standard så det får du hämta,
sudo apt-get install wput
Sedan kallar jag på wput med följande sträng
wput -R -nc -B -u /tmp/plupp.jpg ftp://ftpanvändarnamn:[email protected]/
Eftersom min kamera (Microsoft LifeStudio Cam) tar på tok för ljusa bilder så har jag fått slänga på lite växlar på fswebcam..
Dessa installningar är de som jag kör med för stunden..
fswebcam -r 1280x720 -s brightness=40% -s Contrast=50% -s Gamma=50% --jpeg 100 --title="Public Growcam 1" -D 1 -S 300 /tmp/plupp.jpg
-r 1280×720 ger mig en bra upplösning på bilden
-s brightness=40% tar ner ljusstyrkan till 40% (Bilden var alldeles för ljus från början.)
-s Contrast=50% tar ner kontrasten till hälften i bilden..
-s Gamma=50% halverar gamman
–jpeg 100 ger mig en jpeg med 100% bildkvalité..
–title=”Public Growcam 1″ ligger en text i botten på bilden.
-D 1 Ger 1 sekunds fördröjning för att kameran skall hinna starta upp ordentligt..
-S 300 kasserar de första 300 framesen.. Det räcker med 30 för att kameran skall ställa in sig ordentligt.. Men jag har gott om tid så jag låter den gå torrt ett tag..
Och slutligen sökväg och filnamn på framen som skall ut..
Jag har lagt allt i ett skript.. Det ligger i min hemkatalog /home/nisse och du skapar ett likandant genom att skriva
nano tjo.sh
Och där i så klistrar du in följande text.
echo "Grabbing frame from webcam.."
sudo fswebcam -r 1280x720 -s brightness=40% -s Contrast=50% -s Gamma=50% --jpeg 100 --title="Public Growcam 1" -D 1 -S 300 /tmp/plupp.jpg
echo "Putting frame to ftp.."
sudo wput -q -R -nc -B -u /tmp/plupp.jpg wput ftp://user:[email protected]/
echo "All done.."
Sedan gör du filen körbar.
chmod +x tjo.sh
Nu är du redo att crontabba ditt job..
crontab -e
Där skall det se ut som följer
# m h dom mon dow command
1,31 6-21 * * * /home/nisse/tjo.sh
Då kommer ditt skript att köras 1 minut över och 31 minuter över mellan 6-21, dvs första körningen 06:01 och sista 21:31.
Om du vill bygga en timelaps så gör du såhär..
Skapa en fil som heter typ som denna..
nano time.sh
#!/bin/bash
_date=$(date +"%Y%m%d")
_time=$(date +"%H:%M:%S")
_file="timelaps_$_date-$_time.jpg"
sudo fswebcam -q -r 1280x720 -s brightness=40% -s Contrast=50% -s Gamma=50% --jpeg 100 --title="Gr33nh0uS3 TiM3L4Pz" -D 1 -S 30 /tmp/$_file
chmoda den med +x
lägg till den i crontab att köras var 5:e min..
*/5 * * * * /home/nisse/time.sh
Nu kommer du att få filer som heter /timelaps_201605031-22:19:01.jpg i din /tmp mapp..
OBS!.. Om din pi startas om så rensas allt som ligger i /tmp.. Så är du osäker så lägg filerna i din hemkatalog..
Det blir ju en del filer.. Du kan ju tajta till det och ta mellan lämpliga tidpunkter.. Så blir det mindre antal filer.. Det är ju sällan av nytta att ta bilder när det är mörkt..
Jag buntar ihop filerna som en zip under natten.. Det gör jag med följande script..
nano bup.sh
#!/bin/bash
_date=$(date -d "1 day ago" +"%Y%m%d")
_file="timelaps_$_date-*.jpg"
sudo zip -1 -m /tmp/timelaps_$_date.zip /tmp/timelaps_$_date-*.jpg
Med det scriptet så flyttar jag alla gårdagen .jpg filer in till ett ziparkiv som heter timelaps_20160631.zip (om det nu var 20160631 igår..)
Sedan kan jag köra wput på filen och lägga den på en ftp.. I mitt fall så jag jag nasen mountad mot min pi så jag skapar zipfilen där direkt istället för i temp..
Sedan kan jag snabbt och enkelt gå igenom gårdagens bildskörd när jag känner för det.. Eller packa upp alla dagar som jag vill manipulera eller bygga en laps av.. Det finns ingen hejd på det roliga.. Jag skall gå igenom ffmpeg som jag brukar använda för att spola ut filmer.. Men vi håller det såhär så länge..
Här kommer stegen lite kort.. Skall beskriva dem bättre i detalj senare..
Todo..
Intern webb
ftp
webb..
Bildingenkänning – Håller på att kolla på libs.. Tänkte bygga en funktion som kan hålla reda på relativ tillväxt..
Onewire
Det finns onewirestöd direkt på GPIO bussen i raspberry pi..
Hittade en guide hos m.nu som jag tänkte implementera för lite temp.. Troligen kommer jag att hysta in tempen direkt i bilden när jag fotar..
nexa
mysql temp till extern webb..