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

PI Camera Modul als Outdoor Webcam verwenden ;)

Tue May 21, 2013 5:23 pm

Hi Community!

Da meine alte Webcam nur 0,3 Megapixel (640 x 480) hat und nicht mehr den Stand der heutigen Technik entspricht, wollte ich mir eine neue besorgen. Doch Outdoor Webcams mit 2 bis 3 Megapixel sind einfach zu teuer. Deswegen habe ich mir den Pi (Model B) mit dem neuen Camera Modul (Rev 1.3) besorgt um ihn als neue Outdoor Webcam zu betreiben, den das Gehäuse mit Heizung ist ja schon vorhanden.

Leider habe ich es nicht geschafft die Kamera mit MJPG-Streamer, AVCONV, FFMPEG usw... zu anzusteuern, da anscheinend nur USB Kameras unterstützt werden. Sollte es jemand doch geschafft haben, würde ich mich über eine Nachricht freuen wie es genau funktioniert ;)

Dennoch habe ich eine andere Lösung programmiert, ist zwar nicht so umfangreich wie eine "richtige" IP Webcam aber es funktioniert.

Hier ein kleines Tutorial von mir wie man eine Raspberry PI + Camera Modul als "IP Webcam" benützen kann.

Projekt: Raspi IP Cam
I. Raspberry PI einrichten

1. Updates + Upgrade durchführen danach Kamera aktivieren

Code: Select all

sudo apt-get update
sudo apt-get upgrade

# 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 ... amDocs.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 858 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

towolf
Posts: 421
Joined: Fri Jan 18, 2013 2:11 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Tue May 21, 2013 8:19 pm

Probier mal "--exposure night", dann gibt’s abends noch bessere Bilder. Nachteile für tagsüber hab ich noch nicht festgestellt.

Live streaming geht ziemlich gut, man muss eben den h264 Stream von raspivid per stdout in ffmpeg rein pipen und damit dann streamen. Die bis dato coolste Methode, die ich gefunden habe ist HLS streaming. Beschrieben hier: http://www.raspberrypi.org/phpBB3/viewt ... 4&p=353891

Falls dich das interessiert könnte ich meine beiden Skripte hier pasten.

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Wed May 22, 2013 10:46 am

Hi towolf!
Danke für den Tipp! :mrgreen:
Bitte poste mir deine Skripte :P
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

towolf
Posts: 421
Joined: Fri Jan 18, 2013 2:11 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Wed May 22, 2013 9:36 pm

Okay, falls du Details willst, wühle dich durch den im letzten Post gelinkten Thread.

Ein Wermutstropfen: Ich weiß nicht, ob das mit libav-tools in Raspbian funktioniert. Falls nicht besorg dir einen aktuellen ffmpeg Snapshot oder installier gleich Arch (das verwende ich).

Evtl willst du auch statt Apache2 was leichteres verwenden. Ich habe hier nginx drauf.

Das Aufnahmeskript:

Code: Select all

#!/bin/bash

# on 13GB data partition
# record 12 hours worth at 2.5mbps: -b 2500000 -hls_wrap 3600 -hls_list_size 300
# record  6 hours worth at   5mbps: -b 5000000 -hls_wrap 1800 -hls_list_size 300
# record  3 hours worth at  10mbps: -b 10000000 -hls_wrap 900 -hls_list_size 300

wwwroot="/data/live"
raspivid -n -w 1280 -h 720 -fps 25 -vf -t 86400000 -b 10000000 -o - \
  | /root/psips | ffmpeg -loglevel 2 -y \
  -analyzeduration 10M \
  -i - \
  -c:v copy \
  -hls_time 12 \
  -hls_list_size 300 \
  -hls_wrap 900 \
  "${wwwroot}/stream.m3u8"
Du brauchst dann noch das psips Programm, das AndyArmstrong im zitierten Thread gepostet hat. Ich hänge das binary hier vorsorglich an. Du kannst es auch kompilieren.

Wenn du das laufen läßt, holt sich ffmpeg den h264 Stream und zerhackt den in kurze Segmente. Ich habe 12 Sekunden gewählt. Man lässt die Segmente im www Pfad ablegen. Die m3u8 Datei verweist unten immer auf das neuste Segment, das aus der Kamera gekommen ist. Und die Player sollten mit dem letzten Eintrag anfangen. Die alten Segmente sind aber auch noch abspielbar. Man kann also, den richtigen Player vorausgesetzt, im Livestream zurückspulen. Bei 300 wäre das eine Stunde. Dir steht frei mehr einzutragen (-hls_list_size).

Mit Apple-Browsern kann man direkt von dieser index.html abspielen

Code: Select all

<!doctype html>
<title>live</title>
<meta charset=utf-8>
<video width=1280 height=720 autoplay controls>
<source src=stream.m3u8 type="application/x-mpegURL" />
<source src=stream.m3u8 type="application/vnd.apple.mpegurl" />
</video>
Anderenfalls die Player mit der URL füttern, die auf die m3u8 Datei zeigt, z.b. http://alarmpi.lan/live/stream.m3u8

Player, die ich getestet hab: Ipad, iPod touch, Safari auf Mac, VLC (nicht so prall), ffplay, und gst-launch.
Attachments
psips.tar.gz
(20 KiB) Downloaded 372 times

Jordanie
Posts: 1
Joined: Thu May 23, 2013 2:11 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Thu May 23, 2013 2:15 pm

Hi,

Respekt, tolle Sache das !!!

Ist es möglich das jemand ein fertiges Image zum DL bereit stellt ?

Danke vorab

Jordanie

User avatar
Hiswif
Posts: 663
Joined: Sat Oct 13, 2012 11:54 am
Contact: Website

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Thu May 23, 2013 3:29 pm

Das sieht richtig gut aus. Respekt. Auch die Dinge in der Entfernung sind gut. Klasse Arbeit.
http://technikegge.blogspot.de

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Thu May 23, 2013 5:43 pm

towolf wrote:Okay, falls du Details willst, wühle dich durch den im letzten Post gelinkten Thread.

Ein Wermutstropfen: Ich weiß nicht, ob das mit libav-tools in Raspbian funktioniert. Falls nicht besorg dir einen aktuellen ffmpeg Snapshot oder installier gleich Arch (das verwende ich).

Evtl willst du auch statt Apache2 was leichteres verwenden. Ich habe hier nginx drauf.

Das Aufnahmeskript:

Code: Select all

#!/bin/bash

# on 13GB data partition
# record 12 hours worth at 2.5mbps: -b 2500000 -hls_wrap 3600 -hls_list_size 300
# record  6 hours worth at   5mbps: -b 5000000 -hls_wrap 1800 -hls_list_size 300
# record  3 hours worth at  10mbps: -b 10000000 -hls_wrap 900 -hls_list_size 300

wwwroot="/data/live"
raspivid -n -w 1280 -h 720 -fps 25 -vf -t 86400000 -b 10000000 -o - \
  | /root/psips | ffmpeg -loglevel 2 -y \
  -analyzeduration 10M \
  -i - \
  -c:v copy \
  -hls_time 12 \
  -hls_list_size 300 \
  -hls_wrap 900 \
  "${wwwroot}/stream.m3u8"
Du brauchst dann noch das psips Programm, das AndyArmstrong im zitierten Thread gepostet hat. Ich hänge das binary hier vorsorglich an. Du kannst es auch kompilieren.

Wenn du das laufen läßt, holt sich ffmpeg den h264 Stream und zerhackt den in kurze Segmente. Ich habe 12 Sekunden gewählt. Man lässt die Segmente im www Pfad ablegen. Die m3u8 Datei verweist unten immer auf das neuste Segment, das aus der Kamera gekommen ist. Und die Player sollten mit dem letzten Eintrag anfangen. Die alten Segmente sind aber auch noch abspielbar. Man kann also, den richtigen Player vorausgesetzt, im Livestream zurückspulen. Bei 300 wäre das eine Stunde. Dir steht frei mehr einzutragen (-hls_list_size).

Mit Apple-Browsern kann man direkt von dieser index.html abspielen

Code: Select all

<!doctype html>
<title>live</title>
<meta charset=utf-8>
<video width=1280 height=720 autoplay controls>
<source src=stream.m3u8 type="application/x-mpegURL" />
<source src=stream.m3u8 type="application/vnd.apple.mpegurl" />
</video>
Anderenfalls die Player mit der URL füttern, die auf die m3u8 Datei zeigt, z.b. http://alarmpi.lan/live/stream.m3u8

Player, die ich getestet hab: Ipad, iPod touch, Safari auf Mac, VLC (nicht so prall), ffplay, und gst-launch.
Vielen Dank! werde ich demnächst gleich mal ausprobieren!!!!!!!!!! DANKE!!
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

cmeckler
Posts: 5
Joined: Fri Aug 03, 2012 3:14 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Sat May 25, 2013 5:25 pm

hallo
hab mir den aktuelle snapshot mit apt-get install ffmpeg
das mit dem anderen tool verstehe ich nicht.
beim ausführen vom skript geht im mom kurz das licht an.
in der Konsole steht die Meldung
-bash: /root/psips: Permission denied

Gruß

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Sun May 26, 2013 9:49 pm

Hallo
Ich hab das direkt mal so gemacht wie beschrieben, bekomme aber die Meldung

Die Grafik "http://192.168.111.171:5001/wc_image.php" kann nicht angezeigt werden, weil sie Fehler enthält.

Die php und *.sh scripte habe ich von Deinem Zip verwendet.
Kann mir jemand Tips geben was da nicht geht?

Gruss Ralf

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon May 27, 2013 8:35 am

derrapf wrote:Hallo
Ich hab das direkt mal so gemacht wie beschrieben, bekomme aber die Meldung

Die Grafik "http://192.168.111.171:5001/wc_image.php" kann nicht angezeigt werden, weil sie Fehler enthält.

Die php und *.sh scripte habe ich von Deinem Zip verwendet.
Kann mir jemand Tips geben was da nicht geht?

Gruss Ralf
Hi!
Gehe jetzt davon aus das Apache mit dem PHP Modul funktioniert und die "www-data" Gruppe erstellt hast.

Code: Select all

# User Gruppe erstellen
sudo groupadd www-data
sudo usermod -a -G www-data www-data
Hast du beide Datei "wc_image.php" und "wc_pid.sh" im gleichen Ordner "/var/www/" ?

Hast du die Zugriffsrechte für die wc_pid.sh Datei vergeben?

Code: Select all

sudo visudo

# Dann folgenden Eintrag ganz unten hinzufügen
www-data ALL= NOPASSWD: /var/www/wc_pid.sh
sowie die Ausführungsrechte für die beiden Dateien?

Code: Select all

sudo chmod 755 /var/www/wc_pid.sh
sudo chmod 755 /var/www/wc_image.php
Probier mal in PuTTy die wc_pid.sh auszuführen

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 ein Bild mit 800x600 Pixel ertellen und im Ordner "/var/www/" apspeichern und im Browser - in deinem Fall - "http://192.168.111.171:5001/wc_image.jpg" eingeben und das Bild angezeigt werden.
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon May 27, 2013 9:43 pm

Hi Danke für die Tips
Hab mal ein wenig rumprobiert: Das kommt raus wenn ich das Shellscript starte.

Code: Select all

sudo ./wc_pid.sh '-w 800' '-h 600'
./wc_pid.sh: 22: [: 0: unexpected operator
Invalid command line option (-w)
Ich habe gestern nochmal die raspistill Zeile auf der Commandline ausgeführt und dann diese Fehlermeldung bekommen:

Code: Select all

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
Die Kamera hat erst wieder funktioniert nach einem Reboot. Ich hab dann einfach mal per Commandline ein jpg erzeugt - das wird im Browser auch angezeigt - aber das Shellscript scheint kein Bild zu erzeugen.
Ich habe auch mal ein "sudo" vor das raspistill gehängt weil ich sonst gar kein Bild im www Verzeichnis bekomme.
Kann es sein, dass mit dem Aufruf irgendwas nicht stimmt? Gemäß der Doku muesste doch auch noch ein "-w" vor die Breite und ein "-h" vor die Höhe, oder?
Obwohl Zeile 22 ist ja die hier:

Code: Select all

    if [ "$RUN" == "1" ]
Gruss Ralf

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon May 27, 2013 10:14 pm

Ich glaub ich hab's:
Ich musste die Zeile von oben wie folgt ändern.
if [ $RUN -eq 1 ]
Dann geht's.

Gruss Ralf

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon May 27, 2013 10:36 pm

Mist.
Doch nicht. Jetzt kommt wieder
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
Das scheint immer zu kommen wenn man mit einem zweiten Browser das Foto anschauen will.
Hat da jemand ne Ahnung wie man das in den Griff bekommt??

Gruss Ralf

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon May 27, 2013 11:04 pm

derrapf wrote:Hi Danke für die Tips
Hab mal ein wenig rumprobiert: Das kommt raus wenn ich das Shellscript starte.

Code: Select all

sudo ./wc_pid.sh '-w 800' '-h 600'
./wc_pid.sh: 22: [: 0: unexpected operator
Invalid command line option (-w)
Ich habe gestern nochmal die raspistill Zeile auf der Commandline ausgeführt und dann diese Fehlermeldung bekommen:

Code: Select all

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
Die Kamera hat erst wieder funktioniert nach einem Reboot. Ich hab dann einfach mal per Commandline ein jpg erzeugt - das wird im Browser auch angezeigt - aber das Shellscript scheint kein Bild zu erzeugen.
Ich habe auch mal ein "sudo" vor das raspistill gehängt weil ich sonst gar kein Bild im www Verzeichnis bekomme.
Kann es sein, dass mit dem Aufruf irgendwas nicht stimmt? Gemäß der Doku muesste doch auch noch ein "-w" vor die Breite und ein "-h" vor die Höhe, oder?
Obwohl Zeile 22 ist ja die hier:

Code: Select all

    if [ "$RUN" == "1" ]
Gruss Ralf
Hi Ralf

Die Parameter "-w" und "-h" werden von der PHP Datei mit gesendet.
PHP Datei:
$output = shell_exec("sudo ./wc_pid.sh '-w ".$width."' '-h ".$height."'");

Man könnte das ganze auch so ändern:
PHP Datei (wc_image.php):

Code: Select all

$output = shell_exec("sudo ./wc_pid.sh '".$width."' '".$height."'");
SCRIPT Datei (wc_pid.sh):

Code: Select all

raspistill -w $WIDTH -h $HEIGHT -q 40 -t 3000 -sh 10 -awb horizon -vf -o /var/www/wc_image.jpg
Aber intressant warum das Script bei dir nicht mit dieser IF Bedingung funktioniert

Code: Select all

if [ "$RUN" == "1" ]
Bei mir läuft es eigentlich ohne Probleme?!

Poste doch mal deine PHP und Script Datei?

Das mit dem aufhängen der Kamera kenne ich nur zugut ;)
Hatte das ganze im internen Netzwerk mit vier Geräten getestet (iphone, ipad, pc, notebook). sobald zwei geräte gleichzeitig auf die kamera zugreifen, hatte sich die Cam schon "erhängt" und es half nur mehr ein reboot :( Also eigentlich keine optimale Variante den Raspi als Webcam zu benützen.

Deswegen die Script Datei die ein "aufhängen" verhindern sollte. Ist zwar vielleicht nicht so ausgereift aber bis her hat sich das Script bewährt, kein Aufhängen der Kamera mehr und das bei ca. 100 - 200 zugriffen am Tag ;)

Gruß Rudi
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Tue May 28, 2013 9:41 am

Hallo Rudi

Das ist ja dann komisch.
Im Prinzip verwende ich ja genau Dein Script (das aus dem zip); nur dass ich die If-Abfrage modifizieren musste.
Am php script hab ich gar nichts geändert.
Dass sich die Kamera aufhängt ist natürlich ein no-Go für die Webcam-Anwendung, weil gerade hier ja immer mehrere User auf die Seite zugreifen.
Ich habe gesehen, dass es inzwischen auch einen Bugreport für diesen Fehler gibt:
https://github.com/raspberrypi/userland/issues/39
Eventuell gibt es aber auch noch andere Randbedingungen für den Absturz als nur der gleichzeitige Zugriff der das Dings. Du sagst ja, dass es bei Dir mit dem Script gut funktioniert.
Ich habe, wenn man es genau nimmt nicht mal gleichzeitig auf die Kamera zugegriffen:
Ich habe einmal die Seite im Firefox offen gehabt (da war sie aber schon aktualisiert) und dann habe ich das Kamerabild (also die URL) in der Mediola-Fernbedienung eingebaut. Da hat's dann auch geklappt, denn das Bild wurde angezeigt.
Der Fehler kam dann erst als ich den Browser wieder aktualisiert habe.

Konisch...


Gruss Ralf

raspberry0
Posts: 4
Joined: Wed May 29, 2013 8:50 am

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Wed May 29, 2013 8:57 am

Hallo!

Schönes Projekt, und sehr schöne Bilder.

Mich würde noch das mit den Wetterdaten interessieren... was für eine Station ist das, wie ist sie angebunden und wie werden die Daten ins Bild integriert?

Danke für deine Mühen, das hier so schön zu dokumentieren =)

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Wed May 29, 2013 9:01 pm

raspberry0 wrote:Hallo!

Schönes Projekt, und sehr schöne Bilder.

Mich würde noch das mit den Wetterdaten interessieren... was für eine Station ist das, wie ist sie angebunden und wie werden die Daten ins Bild integriert?

Danke für deine Mühen, das hier so schön zu dokumentieren =)
Hi raspberry0

Die Wetterstation ist eine Matrix II von TFA (TFA 35.1049 Matrix II oder auch als WS-2308 bezeichnet). Die Station ist an einen kleinen Mini ITX PC angeschlossen (12V ca. 150 Watt Netzteil) der im 24/7 Betrieb ist.

Die mitgelieferte Software der Station heißt "Heavyweather Ver.2". Dazu gibts auch ein Programm "Heavyweather Publisher" das es dir ermöglicht selber ein Design für deine Wetterdaten zu erstellen bzw. gibts auch es schon ein paar vorgefertigte Vorlagen. Das ganze wird dann automatisch als JPG oder PNG Datei abgespeichert und automatisch per FTP auf deinen Webserver geladen. Nur gefiel mir diese Variante nicht ganz, da es eigentlich keine möglichkeit gibt Daten längerfristig abzuspeichern oder im Webcam Bild anzuzeigen :-(

Über dem Raspberry habe ich bis jetzt noch keine möglichkeit gefunden die aktuellen Daten der Wetterstation auszulessen bzw. die wetterstation anzuschließen. Die Wetterstation hat einen Seriellen 9.pol Anschluß (COM) ich glaube es gibt auch ein serielles Modul für den "Raspi" kann ich nicht genau sagen habe meinen "Raspi" erst seit 2 Wochen und der zweite ist schon am Weg ;)

Die aktuelle Variante wie ich meine Wetterdaten auslesse sieht so aus:

Die Wetterstation erstellt auf dem "Wetter PC" (Mini-ITX) eine "Wetter Datei" in dem alle aktuellen Wetterdaten abgespeichert werden und das alle 5 - 30 Sekunden (mit Kabelverbindung der Sensoren ca. 5 -15 Sekunden, mit Funkverbindung ca.15 - 30 Sekunden).

Diese Datei lass ich mir per FTP automatisch alle 2 Minuten auf den Webserver laden. Am Webserver hab ich mir eine PHP Script geschrieben das die Wetterdaten aus der Datei auswertet und in eine SQL Datenbank schreibt. Es funktioniert auch ohne SQL Datenbank, aber da ich auf meiner Website unter "Wetterstation" auch die Liniendiagramme habe wollte, benötigte ich eine Datenbank :o

Bei dem Webcambild mit Wetterdaten habe ich auch ein eigenes PHP Script. Sobald jemand eine Webcam anwählt holt sich das Script die letzten abgespeicherten Wetterdaten der "Wetter Datei" und kopiert das Webcam Bild + Wetterdaten per PHP zusammen.

Bin jetzt über das verlängerte Wochende unterwegs, wenn ich wieder total entspannt zurückkomme kann ich dir ja ein Beispiel PHP Script posten wie man Text in Bilder einfügt. :mrgreen:

Lg Rudi
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

raspberry0
Posts: 4
Joined: Wed May 29, 2013 8:50 am

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Thu May 30, 2013 7:25 am

=) Nein ich glaube, den Rest bekomme ich selber hin - danke für die ausführliche Antwort und deine Mühe!

derrapf
Posts: 6
Joined: Sun May 26, 2013 9:45 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Mon Jul 08, 2013 12:40 am

Hi
Eines würde mich noch interessieren:

Ich habe jetzt auf dem Raspi ein Script laufen das jedesmal wenn Bewegung erkannt wird das wc_image.jpg in var/www neu schreibt. Das muss jetzt nicht mehr durch das php Script initiiert werden

Ich haette aber gerne, dass die Seite automatisch refreshed wird, wenn das Bild upgedatet wurde.
Wie geht denn sowas? Kann mir da jemand helfen?
Gruss Ralf

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

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Fri Jul 19, 2013 1:29 pm

derrapf wrote:Hi
Eines würde mich noch interessieren:

Ich habe jetzt auf dem Raspi ein Script laufen das jedesmal wenn Bewegung erkannt wird das wc_image.jpg in var/www neu schreibt. Das muss jetzt nicht mehr durch das php Script initiiert werden

Ich haette aber gerne, dass die Seite automatisch refreshed wird, wenn das Bild upgedatet wurde.
Wie geht denn sowas? Kann mir da jemand helfen?
Gruss Ralf
Hallo Ralf
Es gibt die Möglichkeit das Erstellungsdatum der JPG Datei auszulessen und alle paar Sekunden zu überprüfen ob sich das Datum und Uhrzeit geändert hat um dann das Bild zu "reloaden", aber dieses kleine Script habe ich gerade getestet und läuft eigentlich auch ganz gut ;)

Hier das Javascript das sekunden abhängig die JPG Datei (wc_image.jpg) "reloadet".

Code: Select all

# Alles wird im <body> Tag eingetragen

<img name="webcam" src="wc_image.jpg" width="100%" height="100%" />
<script type="text/javascript">
<!--
function webcam_bild() {
    var sekunden = 5;  #nach wieviel Sekunden soll das Bild neu geladen werden
    var jetzt = new Date();
    if (document.images) 
	{
        document.images.webcam.src = 'wc_image.jpg?' + jetzt.getTime();
    }
	setTimeout('webcam_bild()',sekunden*1000);
}

webcam_bild();
//-->
</script>
Lg Rudi
My first Project: Raspi IP CAM - Outdoor Webcam http://www.raspberrypi.org/phpBB3/viewtopic.php?p=353856#p353856

popeye007
Posts: 8
Joined: Wed Jul 24, 2013 9:18 am

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Wed Jul 24, 2013 9:28 am

hallo towolf,

gute umsetztung möchte das bei mir auch machen, sehe hier aber nicht wirklich was ich alles dafür machen muss, bzw. ist mein Englisch auch nicht so gut.

Hast du eine genauere Anleitung auf Deutsch oder so. Oder kannst du das vielleicht mal punktweise auflisten wenn möglich.

Hatte das bis jetzt immer mit einer usb Kamera am laufen aber die ist zu schwer für mein vorhaben. Deshalb habe ich jetzt die Pi kamera.

Viellen Dank für deine Hilfe.

perlian
Posts: 1
Joined: Sat Jul 27, 2013 12:43 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Sat Jul 27, 2013 1:50 pm

Hallo

Ich bekomme leider immer folgende Meldung

pi@raspicam /var/www $ sudo ./wc_pid.sh '-w 800' '-h 600'
./wc_pid.sh: 22: [: 0: unexpected operator

Es wird ein Bild aufgenommen aber das wars dann auch
Danach tut sich nichts mehr

Was kann das sein ?

Kenne mich mich Parametern in Skripten nicht aus :?

MrHandyman
Posts: 9
Joined: Tue Feb 26, 2013 10:00 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Fri Aug 16, 2013 9:39 pm

Hatte auch diverse Probleme mit den Scripten...
ich habe dann nach etlichen Fehlversuchen, das sh Script von Hand abgetippt direkt mit nano,
und danach lief alles.

r.webel
Posts: 2
Joined: Sun Sep 15, 2013 7:03 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Sun Sep 15, 2013 7:13 pm

Hallo,
habs hingekriegt, und zwar mit den Dateien aus den Zip Files. Vorher hatte isch auch Fehlermeldungen wegen Zeile 14 und 22.
Jetzt nur noch hinkriegen, dass das Bild kontinuierlich erneuert wird.

r.webel
Posts: 2
Joined: Sun Sep 15, 2013 7:03 pm

Re: PI Camera Modul als Outdoor Webcam verwenden ;)

Sun Sep 15, 2013 8:02 pm

Hab noch ne Frage :Wie kann man das Script in einer Endlosschleife laufen lassen ?

Return to “Deutsch”

Who is online

Users browsing this forum: No registered users and 1 guest