Jonas@pi

Bloggade nörderier.

Webbstyrd pi-kamera

Regning oktoberlördag. Barnen är på utflykt och jag och min bror biologen bestämmer oss för att leka med Raspeberry Pi-cam. Tanken är att bygga en kamera som vi kan styra via en webbsida. Första steget är att installera en webbserver. Efter att ha strulat en bra stund med lighttpd, eftersom den enligt internets samlade visdom kräver mindre resurser än klassiska Apache, så väljer vi i alla fall Apache då den ger felmeddelanden som faktiskt kan tolkas.

sudo apt-get install apache

tar hand om att installera Apache-servern på pi:n. För att testa om det fungerat är det bra att surfa in till Raspberryn från en annan dator. Att kolla den lokala ip-adressen görs enkelt i

/sbin/ifconfig

Om allt fungerat ska du se en testsida från Apache.

Fungerar allt som det ska är det dags för nästa steg, att skapa en webbsida som kan användas för att styra Raspberry Cam. På Raspberry Pi skapar vi en fil som heter kamera.html med

sudo nano kamera.html

I Nano bygger vi först en enkel sida med en kameraknapp som sedan ska starta ett Perl-script som kan styra kameran. Vi använder “form” för att senare kunna lägga till olika parametrar till raspistill, kommandot som sköter pi-kameran.

<html>

<form method="get" action="/cgi-bin/kamera.cgi">
<input type="submit" value="Ta bild">
</form>

</html>

Sidan sparar vi i www-foldern för att Apache ska kunna hitta den.

Nästa steg är att skapa ett Perl-script som kan ta bilder. Det visade sig vara ganska krångligt att få att fungera med rättigheterna som krävs för att kameramodulen ska kunna spara bilden. Men till slut fungerade det Great success!

Lösningen blev att lägga till www-data som sudo utan lösenord och känns inte helt tillfredsställande.

Perl-scriptet i kamera.cgi blev så här:

#! /usr/bin/perl

use strict;
print "Content-type: text/html\n\n";
print "<html>";
system "sudo /usr/bin/raspistill -o \"/var/www/bild.jpg\" -vf -n;
print '<img src="/bild.jpg">';
print "</html>";

Glöm inte heller att köra chmod +x på filen för att den ska kunna köras av webbservern.

Comments