Sie sind auf Seite 1von 6

1.

Updates + Upgrade durchf�hren danach Kamera aktivieren

Code: Select all


sudo apt-get update

# Dann im Konfigmen� Punkt "Camera" ausw�hlen und auf "Enable" mit Enter
best�tigen
sudo raspi-config

2. IP des PI �ndern

Code: Select all


sudo nano /etc/network/interfaces

# Eintrag �iface eth0 inet dhcp� suchen und durch folgendes ersetzen und Datei
speichern
iface eth0 inet static
address 192.168.0.9 //statische IP Adresse f�r den PI
netmask 255.255.255.0 //Subnet Mask
network 192.168.0.0 //Netzwerk
broadcast 192.168.0.255 //Broadcast
gateway 192.168.0.1 //Gateway

# Und jetzt den PI neustarten


sudo reboot

3. Webserver einrichten (Apache2 + PHP5 + ProFTPD)


Apache installieren

Code: Select all

# Root Rechte holen sonst funktioniert die Installation nicht


sudo bash

# User Gruppe erstellen


sudo groupadd www-data
sudo usermod -a -G www-data www-data

# Apache installieren
sudo apt-get install apache2

# httpd.conf �ffnen, keine Panik die Datei ist leer!


sudo nano /etc/apache2/httpd.conf

# und diesen Eintrag hinzuf�gen und speichern


ServerName localhost

PHP 5 installieren

Code: Select all


sudo apt-get install php5

# Dann PI wieder neustarten


sudo reboot
Pro FTPD installieren

Code: Select all


# ProFTPd Installation
# Es �ffnet sich w�hrend der Installation ein Fenster, dort w�hlt ihr
�standalone� aus und best�tigen!
sudo apt-get install proftpd

# Konfiguration der Virtuellen User


sudo nano /etc/proftpd/proftpd.conf
# Und nun folgendes eintragen und die Datei speichern!
DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off

# in den Ordner von Proftpd wechseln


cd /etc/proftpd/

# FTP User erstellen. In diesem Fall hei�t der User �ftp_pi�, ihr k�nnt ihn
auch �ndern.
# Danach wird ihr aufgefordert ein Passwort zu vergeben
sudo ftpasswd --passwd --name ftp_pi --uid 33 --gid 33 --home /var/www/ --shell
/bin/false

# Server neustarten
sudo /etc/init.d/proftpd restart

# ggf. Lese- und Schreibrechte setzen


chmod g+s /var/www
chmod 775 /var/www
chown -R www-data:www-data /var/www

Apache Web Port �ndern

Code: Select all


sudo nano /etc/apache2/ports.conf
# Hier k�nnt ihr den Port �ndern
# Sucht nach den Eintr�gen �NameVirtualHost: 80� und �Listen: 80� statt der
"80" gebt ihr euren ihr euren Port an und speichern

# Und hier m��t ihr auch den Virtulen Host ebenfalls auf euren Port �ndern
sudo nano /etc/apache2/sites-enabled/000-default
# Sucht nach dem Eintrag �VirtualHost: 80� und gebt statt der "80" euren
vorherigen Port an!

# Apache neustarten
Befehl: sudo /etc/init.d/apache2 reload

4. Webserver starten
Browser �ffnen und IP Adresse + Port eures PI eintragen ("http://192.168.0.9:80")
um zu testen ob Apache2 richtig funktioniert. Bekommt ihr eine Meldung mit "It's
works...." dann habt ihr es geschafft.
II. PHP und Script Dateien

Es werden jetzt zwei Dateien (wc_pid.sh und wc_image.php) erstellt. Ich pers�nlich
verwende dazu Notepad++. Da der FTP Server
wunderbar funktioniert, hat man die Gelegenheit auf die FTP Erweiterung von
Notepad++ zuzugreifen und uns mit dem PI zu verbinden.
So ist ein editieren der Web- und Script Dateien schneller und einfacher ;)

Die Script Datei (wc_pid.sh) hilft uns beim ausf�hren des "raspistill" Befehls der
die Kamera aktiviert
um ein Foto zu machen. Die PHP Datei (wc_image.php) f�hrt die Script Datei aus und
zeigt das Foto im Browser an.

Das Script verhindert auch das der Kamera Befehl "raspistill" nicht zu oft
hintereinander ausgef�hrt wird, um so ein "aufh�ngen" des Kameramoduls zu
verhindern bzw. ist die Kamera gerade aktiv so wird das letzte aufgenommene Bild
angezeigt.
Standardm��ig ben�tigt das Kamermodul 5 Sekunden f�r ein Foto. Man kann dieses
Zeitintervall selber einstellen aber darunter leidet aber auch der AWB Modus der PI
Cam (Automatic WHite Balance).

1. PHP Datei (wc_image.php) erstellen

Erstellt eine neue PHP Datei und gebt folgendes ein.

Code: Select all


<?php
//Max Resolution 2592 x 1944
$width = 1920;
$height = 1080;
$output = shell_exec("sudo ./wc_pid.sh '-w ".$width."' '-h ".$height."'");
header('Content-Type: image/jpeg');
readfile("wc_image.jpg");
?>

Bei den Variablen $width und $height gebt ihr die Gr��e eures Bildes an. maximale
Aufl�sung sind 2592 x 1944 Pixel.

2. Script Datei (wc_pid.sh) erstellen


Erstellt eine neue SH Datei und gebt folgendes ein.

Code: Select all


#!/bin/bash
PID=$$
SCRIPTNAME=`basename $0`
PIDFILE=/tmp/$SCRIPTNAME.pid

RUN=0
WIDTH=$1
HEIGHT=$2
if [ -f "$PIDFILE" ]
then
RUNNINGPID=`cat "$PIDFILE"`
PROGRAMPID=`ps -e | grep "$SCRIPTNAME" | grep -v grep | awk '{print $1;}'`
for PIDEL in $PROGRAMPID
do
if [ "$PIDEL" == "$RUNNINGPID" ]
then
RUN=1
break
fi
done
fi
if [ "$RUN" == "1" ]
then
#echo "wc_image.jpg"
exit 1
fi
echo $PID > $PIDFILE

###################################################################################
########
# RASPISTILL Befehl um die Kamera anzusprechen

raspistill $WIDTH $HEIGHT -q 40 -t 3000 -sh 10 -awb horizon -vf -o


/var/www/wc_image.jpg

# Erkl�rung des Befehls im n�chsten Punkt

###################################################################################
########

rm $PIDFILE
exit 0

3. "raspistill" Parameter in unserem Script File (wc_pid.sh)


Befehl: raspistill $WIDTH $HEIGHT -q 40 -t 3000 -sh 10 -awb horizon -vf -o
/var/www/wc_image.jpg

$WIDTH = wird von der PHP Datei �bergeben (Standardbefehl zB: -h 1920) w�re dann
1920 Pixel in der Breite
$HEIGHT = gleiches Prinzip wie bei $WIDTH nur f�r die H�he des Bildes
-q 40 = Qualit�t der JPG Datei, in diesem Fall 40% (Werte von 0 bis 100)
-t 3000 = Das Zeitintervall (in Millisekunden) bis die Kamera das Foto macht, in
diesem Fall 3 Sekunden (Mann sollte min 1 Sekunde einstellen wegen dem AWB Modus
(Automatic White Balance).
-sh 10 = Die Sch�rfe des Bildes (Werte von -100 bis 100)
-awb horizon = Automatic White Balance (Es gibt mehrere Optionen, die stehen in der
Doku)
-vf = Spiegelt das Bild vertikal
-o /var/www/wc_image.jpg = Speicherort des Bildes im WWW-Root von Apache. Die JPG
Datei hat den Dateinamen "wc_image.jpg"

Es gibt eine ausf�hrliche Dokumentation f�r das Kameramodul, in dem jeder Parameter
erkl�rt wird.
https://github.com/raspberrypi/userland/blob/master/host_applications/linux/apps/ra
spicam/RaspiCamDocs.odt

4. Rechte f�r die beiden Dateien (wc_image.php und wc_pid.sh) vergeben!


Nochmal am PI einloggen.

Code: Select all


sudo visudo
# Dann folgenden Eintrag hinzuf�gen
www-data ALL= NOPASSWD: /var/www/wc_pid.sh

Datei speichern

Und jetzt noch die Rechte f�r das Ausf�hren vergeben.

Code: Select all


sudo chmod 755 /var/www/wc_pid.sh
sudo chmod 755 /var/www/wc_image.php

Solltet ihr weitere PHP Dateien erstellen in denen eine Script Datei aufgerufen
wird, m��t ihr den PHP Dateien die "Ausf�hrungs" Rechte geben, ansonsten wird das
Script in der PHP Datei nicht ausgef�hrt!

Update!
Dann f�hren wir das Script "wc_pid.sh" das erste mal aus, damit gleich eine JPEG
Datei erstellt wird.

Code: Select all


cd /var/www
sudo ./wc_pid.sh '-w 800' '-h 600'

jetzt sollte die rote LED beim Kamera Modul aufleuchten (ca. 3 Sekunden lang) und
das script eine JPEG Datei "wc_image.jpg" mit 800x600 Pixel ertellen und im Ordner
"/var/www/" apspeichern. Um das ganze zu �berpr�fen einen Browser �ffnen und IP +
Port eingeben zB: "http://192.168.0.9:80/wc_image.jpg". Nun sollte im Browser das
erste Foto angezeigt werden!

5. Fertig!
Jetzt k�nnt ihr das ganze testen.
Browser �ffnen und "http://IPvomPI:Port/wc_image.php" eingeben und es sollte das
Bild der Webcam erscheinen ;)

Habe die zwei Dateien angeh�ngt falls ihr das ganze probieren m�chtet ;)

Wenn ihr das Webcam bild auf eine Website einbinden wollt k�nnt ihr mit dem <img>
Tag das Bild anzeigen. zB: <img src="wc_image.php" />. Wenn ihr ein DynDNS Konto
habt geht es auch von extern zB: <img src="http://DynDNS_Adresse/wc_image.php" />

Hier noch ein paar Fotos meiner "Outdoor RaspiIP Webcam"

Altes Outdoor Geh�use mit Heizung, 5V USB Adapter, LAN


Image

Raspi CAM ;)
Image

Raspi CAM + Wetterstation


Image

Meine Website wo ihr die Kamera testen k�nnt


http://www.stone-village.at/webcam/?cam=5
(es dauert ein paar Sekunden bis das Foto geladen wird, den auch die Daten der
Wetterstation werden mit generiert und im Bild mit eingef�gt)
Nat�rlich wird dadurch keine vollwertige "IP Webcam" mit LiveStream usw. ersetzt,
aber der Sinn einer Webcam ist soweit erf�llt.
Nat�rlich bin ich f�r Tipps sehr dankbar da es mein erstes Raspberry PI Projekt
ist.
Habe leider nie richtig in Linux/Debian usw. programmiern gelernt, aber meine
Programmierkenntnisse in PHP & Javascript haben mir doch etwas geholfen ;)

Viel spa� ;)

Attachments

Raspi_IP_CAM.zip
wc_pid.sh
wc_image.php
(815 Bytes) Downloaded 531 times

Last edited by KlaRu on Mon May 27, 2013 8:44 am, edited 1 time in total.
My first Project: Raspi IP CAM - Outdoor Webcam
http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

Posts: 7
Joined: Mon May 20, 2013 10:06 pm