Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| computer:geckocam [2010/06/08 10:16] – angelegt christian | computer:geckocam [2010/06/18 13:10] (aktuell) – gelöscht christian | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | {{ : | ||
| - | Die Geckocam ist ein Applikation in meinem Netzwerk, welche unsere beiden Leopardgeckos //Lilly// und //Luna// in periodischen Abständen fotografiert und diese Fotos mittels einem Webserver der Öffentlichkeit zugänglich macht. | ||
| - | |||
| - | ======Bestandteile====== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | Geckocam besteht aus verschiedenen Bestandteilen: | ||
| - | |||
| - | * ausrangierte Logitech Quickcam Express Plus | ||
| - | * IBM NetVista 2800 8364-EXX Thin-Client mit installiertem //Debian Lenny// und dem Tool // | ||
| - | * Webserver mit NFS-Unterstützung | ||
| - | * ...und natürlich dem Terrarium. :-) | ||
| - | |||
| - | ======Funktionsweise====== | ||
| - | |||
| - | In periodischen Abständen (//30 Sekunden//) wird ein neues Bild über das Tool **fswebcam** erfasst. Dieses Tool kann das Bild noch bearbeiten (//drehen, spiegeln, Helligkeit/ | ||
| - | |||
| - | Dieses Bild wird dann auf den Webserver übertragen, | ||
| - | |||
| - | =====Web-Oberfläche===== | ||
| - | |||
| - | {{ : | ||
| - | {{ : | ||
| - | |||
| - | Um die Betrachtung zu erleichtern, | ||
| - | |||
| - | Die ganze Ausgabe erfolgt über ein PHP-Skript, welches auch Statistiken über die eigens entwickelte **MisTasc**-Engine pflegt. Gespeichert werden folgende Informationen: | ||
| - | |||
| - | * Datum und Zeit des Zugriffs | ||
| - | * IP-Adresse | ||
| - | * Webbrowser | ||
| - | * Sprache/ | ||
| - | |||
| - | So kann ich sehen, wie stark die Nutzung der Geckocam ist. Natürlich werden auch Statistiken veröffentlicht. | ||
| - | |||
| - | ======Hardware-Teil====== | ||
| - | |||
| - | Die Geckocam besteht aus diversen Hardware-Bausteinen, | ||
| - | |||
| - | =====Thin-Client===== | ||
| - | |||
| - | Für die Geckocam wird ein etwas älterer **IBM NetVista 8364-EXX** mit folgender Hardwarekonfiguration verwendet: | ||
| - | |||
| - | * Intel Pentium MMX Prozessor mit **266 Mhz** | ||
| - | * **192 MB** Arbeitsspeicher (//SDRAM PC-100//) | ||
| - | * **4 GB** Compact Flash-Speicherkarte als stromsparender Festplattenersatz | ||
| - | * 2x RS232- und 2x USB 1.1-Ports | ||
| - | * LPT, Onboard Sound und Lautsprecher | ||
| - | * VGA-Grafikkarte | ||
| - | |||
| - | Der Thin-Client wird neben der Geckocam auch als Pseudo-Bouncer für IRC und Jabber/ICQ verwendet. Die Rechenleistung reicht für diese Aufgaben aus. | ||
| - | |||
| - | |||
| - | =====Webcam-Umbau===== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | In diesem Zusammenhang, | ||
| - | |||
| - | *//Geckos können nicht in vollkommener Dunkelheit sehen, sie benötigen eine schwache Lichtquelle// | ||
| - | *//Die Webcam benötigt Licht, um brauchbare Ergebnisse zu erzielen// | ||
| - | |||
| - | Das dachte ich, wäre möglich zu kombinieren. | ||
| - | |||
| - | In der Logitech-Webcam ist eine SMD-LED verbaut, welche unter Windows dann leuchtet, wenn die Webcam benutzt wird. Unter Linux leuchtet diese LED permanent. Diese LED könnte man durch eine hellere SMD-LED ersetzen. | ||
| - | |||
| - | Zum anderen bestünde die Möglichkeit am USB-Port eine weitere LED an den Plus-/ | ||
| - | |||
| - | Wegen mangelnder Widerstände kann ich das derzeit nicht durchführen, | ||
| - | |||
| - | ======Software-Teil====== | ||
| - | |||
| - | Die Geckocam besteht aus diversen Open-Source Softwarepaketen, | ||
| - | |||
| - | =====Debian Lenny===== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | Als Betriebssystem kommt das freie Linux-Derivat **Debian GNU/Linux** zum Einsatz. Zuvor habe ich für dieses Projekt mit **CRUX Linux** mein Glück versucht. Allerdings scheiterte ich hier an der Anbindung der Webcam und hatte auch mit den Umlauten meine Probleme (siehe http:// | ||
| - | |||
| - | Debian verfügt über eine hervorragende Treiber-Unterstützung, | ||
| - | |||
| - | Installiert wurde ein einfaches Debian-System, | ||
| - | |||
| - | Nach der Grundinstallationen wurden noch einige weitere Anwendungen installiert: | ||
| - | |||
| - | * **openssh-server** - //für administrative Fernzugriffe// | ||
| - | * **nfs-common** - //NFS Client-Anbindung// | ||
| - | |||
| - | =====Webcam-Unterstützung===== | ||
| - | |||
| - | Im Debian-Repo gibt es für Webcams **mit GSPCA(2)**-Chipsatz einen passenden Treiber. Für die **Logitech QuickCam Express Plus** wird genau dieser Treiber benötigt: | ||
| - | |||
| - | < | ||
| - | |||
| - | Über den **Video4Linux**-Stack kann die Webcam nun angesprochen werden, eventuell ist es notwendig, folgenden Eintrag in die **/ | ||
| - | |||
| - | < | ||
| - | |||
| - | =====fswebcam===== | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | Auf der Webseite des fswebcam-Projekts gibt es neben dem Quellcode auch ein vorkompiliertes Debian-Paket. Dieses kann einfach herunterladen und installiert werden: | ||
| - | |||
| - | < | ||
| - | dpkg -i fswebcam_20070108-1_i386.deb</ | ||
| - | |||
| - | Für das Tool selbst kann eine Konfigurationsdatei angelegt werden - das hat den Vorteil, dass man nicht alle Parameter anhängen muss. Somit bleibt das Ganze relativ übersichtlich. | ||
| - | |||
| - | Meine Konfigurationsdatei sieht wie folgt aus: | ||
| - | |||
| - | < | ||
| - | # Camera: Logitech QuickCam Express Plus | ||
| - | # | ||
| - | # (c) 2010 by Christian Stankowic < | ||
| - | # http:// | ||
| - | # | ||
| - | |||
| - | # | ||
| - | | ||
| - | | ||
| - | |||
| - | #Bild auf 640x480 vergroessern | ||
| - | scale 640x480 | ||
| - | |||
| - | #Alle 30 Sekunden ein neues Bild | ||
| - | loop 30 | ||
| - | |||
| - | #20 Frames auslassen, damit die Kamera richtig fokussieren kann | ||
| - | skip 20 | ||
| - | |||
| - | # | ||
| - | #set brightness=60% | ||
| - | #set contrast=50% | ||
| - | |||
| - | #Bild spiegeln und drehen (Decken-Montage) | ||
| - | flip h,v | ||
| - | |||
| - | # | ||
| - | quiet | ||
| - | | ||
| - | |||
| - | # | ||
| - | | ||
| - | | ||
| - | | ||
| - | |||
| - | | ||
| - | font / | ||
| - | | ||
| - | title " | ||
| - | | ||
| - | | ||
| - | |||
| - | #Bild als JPG 90% speichern | ||
| - | jpeg 90 | ||
| - | save webcam.jpg | ||
| - | |||
| - | # | ||
| - | #exec "scp / | ||
| - | |||
| - | Um nun fswebcam als Daemon zu benutzen reicht ein: | ||
| - | |||
| - | < | ||
| - | |||
| - | =====NFS-Anbindung===== | ||
| - | |||
| - | Um die erfassten Bilder vom Thin-Client auf den Webserver zur Publizierung zu übertragen gibt es hier zwei Möglichkeiten: | ||
| - | |||
| - | Um dies zu erledigen gibt es zwei Möglichkeiten: | ||
| - | |||
| - | |||
| - | |||
| - | =====Lösungsansatz 1: SSH/ | ||
| - | |||
| - | Man könnte nach dem Erstellen des Fotos die Datei mittels SSH/SCP auf den Webserver übertragen. Dafür müsste ein Zertifikat erstellt und auf den Webserver übertragen werden: | ||
| - | |||
| - | < | ||
| - | $ ssh-copy-id -i ~/ | ||
| - | |||
| - | Das hat allerdings einen schwerwiegenden Nachteil: die interne Flash-Speicherkarte des Thin-Clients wird belastet, da die Bilder erst auf dieser zwischengespeichert werden, bevor sie auf den Webserver übertragen werden. | ||
| - | |||
| - | **Und genau hier liegt das Problem**. Speicherkarten haben gegenüber herkömmlichen Festplatten den bedeuteten Nachteil, dass die Anzahl der Lese-/ | ||
| - | |||
| - | Wenn man mal überlegt, dass bei dieser Methode schon jede Minute 4 Zugriffe erfolgen, nämlich für das (// | ||
| - | |||
| - | Rechnet man das mal für eine Woche durch, kommt man auf rund **40.320** Zugriffe - ob das die Karte lange durchmacht? :-) | ||
| - | |||
| - | Weitere Informationen zu (// | ||
| - | |||
| - | |||
| - | |||
| - | =====Lösungsansatz 2: NFS===== | ||
| - | |||
| - | Viel durchdachter und sinnvoller ist es, den Home-Ordner des Webcam-Benutzers mittels NFS auszulagern. Sämtliche Speicher- und Lesezugriffe erfolgen dann nicht auf der Speicherkarte sondern auf dem NFS-Server. Hierzu wird auf dem Webserver einfach ein Ordner für den Benutzer angelegt und ein entsprechendes Recht in der NFS-Konfigurationsdatei **/ | ||
| - | |||
| - | < | ||
| - | |||
| - | Anschließend werden die Rechte des NFS-Servers neu geladen: | ||
| - | |||
| - | < | ||
| - | |||
| - | Auf dem Thin-Client wird in der **/ | ||
| - | |||
| - | < | ||
| - | |||
| - | **Hinweis: | ||
| - | |||
| - | |||
| - | Sämtliche Lese-/ | ||
| - | |||
| - | ======Internet-Verweise====== | ||
| - | * Webseite des **fswebcam**-Projekts: | ||
| - | * Artikel über NFS-Freigaben: | ||