DIY: Wie man aus einem alten Android Smartphone eine Webcam für die eigene Internetseite macht
Eine Webcam, sei es für den Hamsterkäfig, im Garten oder zur Überwachung der Tür, bringt natürlich neue Anschaffungskosten mit sich. Für eine neue China-Cam, die dann auch in HD aufnehmen soll, sind in der Regel mindestens 50 Euro hinzulegen. Oft ist die Qualität der Geräte in dieser Preisklasse nicht überzeugend, sodass es keinen Spaß macht ein solches Gerät anzuschaffen. Ich habe mir überlegt, dass man aber doch zu diesem Zweck ein altes Android Handy recyclen könnte, das in vielen Haushalten noch in einer Schublade liegt.
Inhaltsverzeichnis hier öffnen?
- Die Überlegungen zum Einsatz des Smartphones als WebCam
- Erstellen des FTP Zugangs am Beispiel von Domain Factory
- Die richtige „WebCam-mit-FTP“-App finden
- Android CloudCam FTP Installation
- PHP: Wie zeigt man das letzte Bild bei einem sich ändernden Dateinamen?
- Einstellen des Cron Jobs für die Webcam-Aktualisierung
- Unsere Hamster WebCam auf dem Käfig funktioniert
Unsere Tochter hatte einst ein LG G2, das nicht nur längst aus der Mode ist, sondern dazu noch einen Riss über das Glas hat. Es funktioniert noch problemlos, aber haben wollte es keiner. Nichtmal geschenkt. Also haben wir es in weiser Voraussicht aufgehoben, denn es funktioniert ja noch tadellos.
Die Vorteile eines Smartphones liegen auf der Hand. Die Kameraauflösung dieses alten G2 ist ein Vielfaches besser als die meisten heute handelsüblichen Webcams. Dazu kommt noch, dass das Gerät in der Anschaffung nichts kostet und somit ideal für dieses Experiment ist.
Die Überlegungen zum Einsatz des Smartphones als WebCam
Die Einsatzmöglichkeiten sind mannigfaltig:
Man kann eine Webcam für die Überwachung nutzen – hier ein paar Ideen:
- Für die Baustelle
- In der Gastronomie (Herd)
- In der Gebäudesicherung (Zufahrten und Innenräume)
- Küsten und Landschaften oder Meerblick / Strände (Urlaubscam)
- Parks, Gärten oder Stadtansichten
- Spaß im Büro (Füllstand der Kaffeemaschine)
- Wetter / Wissenschaft
- Tiere und Gehege (Brutwebcam)
Wir brauchen: Android Smartphone, Webseite auf eigenem Server/Hoster, etwas technisches Verständnis, einen Cron und ein paar Zeilen PHP
[red_box]Achtung: In unserem Fall weiß der kleine Hamster nichts vom Persönlichkeitsrecht, doch Menschen schon und hier gibt das Gesetz klare Anweisungen: „Die Übertragung der Webcam-Aufnahmen ins Internet stellt eine Verbreitung bzw öffentliche Zurschaustellung von Bildnissen dar, die nach § 22 des Kunsturhebergesetzes (KUG) der Einwilligung des Betroffenen bedarf.“ Denn öffentliche Plätze oder Bereiche in denen Menschen sich aufhalten, benötigen das Einverständnis des Einzelnen und es muss auf die Kamera hingewiesen werden. Also genau überlegen, wo man die WebCam installiert![/red_box]
In meinem Fall wollte ich eine WebCam am/im Hamsterkäfig installieren und alle paar Minuten ein Bild ins Netz bzw. hier ins Blog laden. Das sollte nicht allzu schwer sein.
Damit ich im Blog auf das Bild zugreifen kann, das die App später auf den WebServer lädt, müssen wir noch einen FTP Zugang beim Hoster anlegen. Ich bin bei Domain Factory und habe das Glück, dass ich noch 100 User anlegen kann. Bei 1&1 und wie die anderen alle heißen mögen geht das je nach Paket aber alles auch. Ich möchte nur zum Ausdruck bringen, dass ich diesen Ablaub nur bei meinem Hoster getestet habe, sollte aber zu keinem Problem führen.
Da ich im Internet ein eher misstrauischer Mensch bin, soll die Webcam ’nur‘ auf den Ordner zugreifen dürfen, wo auch die Bilder abgelegt werden. Im Falle, dass die App durch einen Sicherheitsbruch auf dem Handy gehackt oder es zu einem Datenverlust käme, möchte ich nicht, dass jemand anderes auf den Ordner meines Blogs Zugriff hat!
Erstellen des FTP Zugangs am Beispiel von Domain Factory
Also legten wir zuerst im eigenen WordPress einen weiteren Unterordner an (z.B. /kunde2345/mein-wordpress/webcam) und erstellte über das Dashboard bei Domain Factory einen neuen FTP User, der nur Zugriff auf diesen Ordner hat. Jeder der seine Webseite auf einem eigenen Server betreibt, wird sicher wissen, wie man WinSCP oder ein andere FTP Software nutzt. Wenn nicht, bitte melden ;-)
Nachdem der FTP User nur in diesen Ordner kann, notieren wir uns gleich User und Passwort ehe wir weitermachen. Denn jetzt brauchen wir eine App, die die Bilder regelmäßig knipst und via FTP in diesen Ordner laden kann.
Die richtige „WebCam-mit-FTP“-App finden
Also WebCam Apps für das Smartphone gibt es ja wie Sand am Meer, doch wie ich sehe, wollen viele eine ganz andere Art der Webcam nutzen – eine Webcam, die einen Videostream ins lokale Netz sendet, den man dann z.B. für ein Babyphone nutzen kann. Das wollen wir nicht – ich möchte, dass unser Heimnetz und auch der Webserver keinen Stress und Kosten verursachen. Mein Wunsch ist, alle 30 Sekunden ein Bild ins Blog. Also ändere ich mein Suchverhalten und suche nach „Webcam FTP“, was mir einige gute und schlechte Apps präsentiert – ich bin kein Rassist, aber bei Apps aus China oder Russland bin ich immer sehr vorsichtig, also rate ich jedem zusätzlich auch die Kommentare und Bewertungen gut durchzulesen, damit man sich nicht die „Krätze“ ins Telefon holt.
Die App muss nur den FTP Upload unterstützen, damit das Smartphone sich mit dem FTP Zugang verbinden und die Bilder dort auf dem Server ablegen kann. Nach dem Durchtesten von einigen Apps bin ich bei dieser gelandet, die für mich gut verwendbar war und eine recht ordentliche Bewertungsgrundlage hatte: CloudCam (free/pro)*.
Android CloudCam FTP Installation
Die Installation der App ist nicht schwer, wenn man sich ein wenig Zeit dafür nimmt. Nicht erschrecken lassen, die App kann viel mehr, als wir für unser Szenario brauchen. Ich habe ein paar Bilder, die das Einrichten der Webcam mit CloudCam zeigt:
Das war das Schlimmste :-) Wenn alles bis hier funktioniert, brauchen wir später nur noch etwas PHP und stellen den Cron ein.
Das auf dem letzten Bildschirm beworbene Webinterface, das man in meinem Fall unter http://192.168.178.68:8087 aufrufen könnte reicht nicht aus, um die Webcam einzurichten. Daher braucht man das auch gar nicht erst öffnen, es fehlen dort die entsprechenden Snapshot Konfigurationspunkte.
Test: Jetzt mit dem LieblingsFTP Programm mal auf den Server schauen, ob hier Bilder im Ordner entstehen … ja geht? Gut, dann versuchen Sie jetzt das letzte Bild in einem Blogbeitrag einzubauen. Sie schreiben per Hand <<img src=“Pfad zum Bild/Dateiname.jpg“ /> und testen, ob in Ihrem Blog dieses Bild erscheint. Geht? Toll :) Dann machen wir weiter, denn jetzt müssen wir eine Lösung finden, dass Sie immer das letzte Bild im Blog zeigen können, ohne den Dateinamen anzupassen. Jedes Bild der Webcam hat im Namen der Bilddatei einen Zeitstempel und in diesem Zustand ist das noch nicht für uns und Ihre Besucher brauchbar.
PHP: Wie zeigt man das letzte Bild bei einem sich ändernden Dateinamen?
Wenn Sie bis hier gekommen sind, schon einmal einen herzlichen Glückwunsch – wir schaffen den Rest auch noch. Die Situation wird nun bei Ihnen so aussehen, dass Sie einen Ordner auf Ihrem FTP Server haben, bei dem immer mehr Bilder hochgeladen werden. Der ‚einfachste‘ Weg (und der kostete mich viele Stunden) ist, dass wir immer das letzte bzw. jüngste JPG in z.B. webcambild.jpg kopieren (oder die Zieldatei ersetzen) und dieses Bild fest im Blogpost oder auf der Webseite einbinden. Doch das reicht aber leider nicht – sonst ist irgendwann die Festplatte voll. Wir müssen also bei dem Lauf des Programms, das wir gleich basteln auch nach dieser Kopieraktion alle anderen Bilder löschen.
Binden Sie jetzt schonmal auf Ihrer Webseite in einer Testseite das Bild ein <<img src=“Pfad zum Bild/webcamimage.jpg“ /> und öffnen Sie die Seite in der Vorschau, wir brauchen diese gleich – keine Sorge, es wird auch noch kein Bild angezeigt werden, dafür sorgen wir gleich durch das PHP Script ;)
Oben sehen Sie den Ordner, der bei Ihnen sicher ähnlich aussieht – es fehlen nur noch ein paar Dateien. Die run.php wird regelmäßig über einen CRON Job gestartet. Diese übernimmt die gerade besprochenen Aufgaben. Generieren Sie jetzt eine leere php Datei und nennen diese z.B. run.php. Öffnen Sie diese mit einem Editor (mit einem Rechtklick/Edit) und fügen Sie diesen Code ein:
Php Script für das Sortieren, Kopieren/Umbenennen und löschen der überflüssigen Bilder
<?php
// Suche alle Dateien auf die die Schablone "Device*.jpeg" zutrift (Array)
$webcamfiles = glob('Device*.jpeg');
// kehre das Array um und sortiere die Dateinamen
rsort ($webcamfiles);
// nimm die Dtaei aus dem ersten Feld des Arrays
$fileselected = $webcamfiles[0];
// gib den Namen aus, dass wir sehen, was kopiert wurde (zur Diagnose)
echo $webcamfiles[0];
// benenne die Datei in webcamimage.jpg um oder überschreibe diese mit neuem Bild
rename($webcamfiles[0], 'webcamimage.jpg');
// lösche im Ordner alle Dateien bis auf webcamimage.jpg und run.php
foreach(glob("*") as $f) {
if( $f == "webcamimage.jpg" or $f == "run.php") continue;
unlink($f);
}
?>
Speichern Sie die Datei und rufen Sie diese mal über den Browser auf. Also https://www.(Ihr Blog).de/webcamordner/run.php. Jetzt aktualisieren Sie mal das FTP Fenster – sind die Bilder noch da? Wechseln Sie in das Browserfenster mit der Vorschau des eingebauten Bildes und laden Sie die Seite neu. Jetzt sollte das letzte Bild gezeigt werden.
Einstellen des Cron Jobs für die Webcam-Aktualisierung
Damit immer das letzte Foto gezeigt wird, muss natürlich immer die run.php einmal aufgerufen werden. Das kann man natürlich „per Hand“ mit dem Browser machen, aber das wäre dann ja keine echte Webcam. Wir wollen, dass der Server das selbst erledigt und so wird das gemacht:
1. Beim Hoster in das Dashboard einloggen und nach den CronJobs suchen. In meinem Fall ist das links im Menu unter einem eigenen Menupunkt:
Unsere Hamster WebCam auf dem Käfig funktioniert
Hier ist das aktuelle Bild aus dem Hamsterkäfig (alle 5 Minuten neu):
Anm: Wir lassen die Cam nur zwischen 6:00 und 18:00 Uhr laufen. Mehr zu unserem Hamster ‚Bonsai‘ findest Du in seiner eigenen Kategorie Hamster-Blog und dem zugehörigen Instagram Account.
Viel Spaß und ich hoffe, hier gibt es hin und wieder was zu sehen.
Ich hoffe der Beitrag hat Dir gefallen! Ich würde mich natürlich darüber freuen, wenn du den Beitrag verlinken und/oder teilen würdest!
Kennst Du noch eine Idee oder eine Verbesserung dazu? … dann schreib doch ein Kommentar :-)
Weitere Anmerkungen nach der Veröffentlichung:
1. Die CloudCam App bietet in den Optionen einen „Autostart“ an, damit nach dem Neustart des Smartphones die Webcam sofort wieder gestartet wird. Dazu ist es sinnvoll den Bootvorgang nicht mit einem PIN oder Swipe zu schützen, sonst kann sich die App nicht sofort selbst von selbst starten, sondern erst dann, wenn man das Telefon entsperrt hat.
* Ich habe erst die Free-Version der App getestet und kam gut damit zurecht. Nach dem positiven Testeinsatz habe ich mich zur Pro Version entschieden, da diese auch Zeitprofile erlaubte. Ich erwarb für mein Karma die Vollversion :) Ich finde, wenn man eine Software nutzt, die es Wert ist, ist es auch Wert etwas dafür zu bezahlen – zwei Euro ist für den Spaß auch nicht teuer, oder?