Eine Webcam ohne DSL-Anschluss

Von meinem Modellflugverein wurde ich beauftragt, eine Webcam aufzubauen. Das ist erstmal eine gute Idee, denn die meisten Modeller fliegen nicht gern allein. Bevor man also alle Sachen in das Auto packt, könnte man über die Webcam prüfen, wie die Flugbedingungen am Platz und welche Leute schon da sind. Das Problem: vor Ort gibt es weder Strom, noch Telefon, geschweige denn einen DSL-Anschluss.

Wie bekommt man also das Bild einer Kamera vom freien Feld auf eine Webseite? Der erste Lösungsvorschlag war das Einrichten einer WLAN-Richtfunkstrecke. Sofern Sichtverbindung zu einem befreundeten Haushalt in maximal 2 km Entfernung besteht, könnte man mit zwei Richtantennen eine Internetverbindung zustande bekommen. Dagegen spricht, dass 2,4 GHz Fernsteueranlagen den selben Frequenzbereich wie WLAN benutzen und wir einen, wenn auch sehr unwahrscheinlichen, Absturz wegen einer Funkstörung von Anfang an auschließen wollten. Zweite Möglichkeit: ein UMTS-Handy im Dauereinsatz. Hierfür gibt es z.B. von Mobile Mir eine Webcam-Software für Kamera-Handies und eine interessante Webseite zum Thema Handy-Webcam von Manfred Sassin. Ein Kurzzeittest mit einem UMTS-Handy von Nokia verlief viel versprechend. Die Software ist in der Lage, in konfigurierbarem Zeitabstand Fotos per HTTP an eine Webseite zu senden. Bei weiteren Recherchen im Forum von Mobile Mir kamen allerdings Zweifel auf, ob die Lösung für den ganzjährigen Einsatz geeignet wäre. Die vom Verein gewünschte Erweiterbarkeit um das Versenden von Wetterinformationen wäre mit einem Handy ebenfalls schwierig umsetzbar gewesen.

Konzept

Ein Bekannter (langjähriger Amateurfunker und Mobilfunkprofi) empfahl mir die Verwendung eines UMTS-Routers in Verbindung mit einer LAN-Kamera. So ergab sich die aktuell implementierte Lösung aus folgenden Komponenten:

KameraColor-Outdoor-Netzwerkkamera von ELRO (ELV 68-792-11)
RouterLinksys WRT54G3GV2-VF
UMTS-USB-StickHuawei K3520 (ebay)
SIM-KartePrepaid-Karte von blau.de in Verbindung mit 1GB-Volumentarif

Gleich nach dem Auspacken wurde der Stick inklusive SIM-Karte mit dem Router verbunden. Das Mobile Network Setup des Routers wurde so konfiguriert, wie auf der Webseite von Blau.de beschrieben und schon stand die Verbindung. Eine spezielle Konfiguration des Sticks oder Installation von Software ist nicht notwendig. Gleichzeitig ist damit auch die Aussage in den Linksys-FAQ widerlegt, der Router arbeite nur mit Vodafone als ISP.

Komponentendarstellung

Ebenso einfach ist die LAN-Kamera installiert. Eine IP-Adresse kann entweder fest konfiguriert oder vom Router per DHCP zugewiesen werden. Es empfiehlt sich die Verwendung von DHCP mit einer reservierten IP-Adresse für die Kamera. Dann ist die Kamera immer unter der gleichen IP-Adresse ansprechbar, gleichzeitig können aber weitere Geräte wie Notebooks dynamisch in das Netzwerk eingebunden werden. Die Kamera wird nun so konfiguriert, dass sie aller 300 Sekunden (5 Minuten) ein Standbild per FTP auf den Webserver hochlädt. Dem Dateiname der Bilder kann ein fortlaufender Index hinzugefügt werden, der bis 864 läuft und dann wieder bei 1 beginnt. So ist sichergestellt, dass einerseits das Upload-Verzeichnis des Webservers nicht überläuft, andererseits aber eine Bildhistorie der letzten drei Tage online verfügbar ist. Aktuell wurde jedoch die Option gewählt, den aktuellen Timestamp an den Dateinamen anzufügen. Das Löschen der veralteten Bilder übernimmt dann ein Script, das einmal täglich per Cron-Job auf dem Server gestartet wird.

Montage

Die Stromversorgung wird vor Ort durch eine Solaranlage sichergestellt, die normalerweise zum Laden der Flugakkus dient. Der Router wird mit einem 12V-Bordnetzstecker ausgeliefert, kann also ohne Anpassungen an der 12V-Batterie der Solaranlage betrieben werden. Die Kamera hat eine Betriebsspannung von 5V. Zum Betrieb an 12V ist also eine Spannungsanpassung notwendig. Damit möglichst wenig Leistung verbraten wird, wurde hierzu ein Schaltregler verwendet. Die Leistungsaufnahme des Gesamtsystems liegt bei 4-8W, abhängig vom Verbrauch der IR-Beleuchtung der Kamera. Die Kamera wird auf einem 6-Meter-Metallmast montiert, was einen besseren Überblick und Schutz vor Vandalismus bieten soll. Alles andere bleibt wettergeschützt in einem Schaltkasten.

Webseiten-Integration

Wie beschrieben geschieht der Upload der Bilder ohne zusätzliche Software. Auf der Seite des Webservers muss die Anzeige des jeweils aktuellen Bildes sichergestellt werden. Gleichzeitig sollen ältere Bilder für einen Tagesrückblick oder einen kleinen Film verfügbar sein. Dies wird durch eine Kombination von PHP-Script und JavaScript erreicht. Der PHP-Teil sortiert serverseitig die eingegangen Bilder nach ihrem Datum und übergibt die sortierte Liste als JavaScript innerhalb der generierten HTML-Seite. Im Browser wird per JavaScript neben der Anzeige des neuesten Bildes auch ein Slider erzeugt, bei dessen Verschiebung entsprechend ältere Bilder aus der sortierten Liste nachgeladen werden. Die Webcam-Seite ist zusätzlich so angepasst, dass sie als I-Frame in die Vereinshomepage eingebunden werden kann, ohne in Konflikt mit dem CMS zu geraten.

function timecmp( $a, $b ) {
	if ($a == $b) return 0;
	$result = ($a->mtime > $b->mtime) ? 1 : -1;
	return $result;
}

class MyFile {
	var $name;
	var $path;
	var $file;
	var $size;
	var $mtime;

	function set($filename, $path) {
		$this->name  = $filename;
		$this->path  = $path;
		$this->file  = $this->path."/".$this->name;
		
		$this->size  = filesize( $this->file );
		$this->mtime = filemtime( $this->file );
	}
}

$path = ".";
$d = dir($path);

...

// read all matching jpg images from current directory
$fcount = 0;
while ($entry=$d->read()) {
    if (fnmatch("or*.jpg", $entry)) {
    	$tFile = new MyFile;
    	$tFile->set($entry, $path);
    	// webcam sometimes sends truncated images -> display only images of a minium size
    	// && do not use pictures older than 2 days
    	if (($tFile->size > 18000) && (date('Y-m-d H:i', $tFile->mtime) >= $oldDate)) {
    	    $lFiles[$fcount++] = $tFile;
    	}
    }
}

$d->close();

// display the image that was updated lastly
if ($fcount > 0) {
    usort($lFiles, timecmp);
}

PHP-Script zur Anzeige der Bilder (Ausschnitt)

Aktueller Stand

Das System wurde Anfang Mai 2010 in Betrieb genommen. Nachdem erste Probleme mit kalten Lötstellen und defekten Akkus beseitigt wurden, liefert die Webcam recht zuverlässig Bilder. Jedoch liefert die Kamera ab und zu unvollständige Bilder oder sogar leere Dateien. Desweiteren bricht der UMTS-Router nach einer Laufzeit von 3 bis 8 Tagen die Verbindung ab und stellt sie nicht selbständig wieder her. Diese Probleme sollen nun durch eine Zeitschaltuhr behoben werden, was zudem die Möglichkeit bietet, die Anlage nachts abzuschalten, um Energie zu sparen. Die Zeitschaltuhr sollte idealerweise über eine Einschaltsequenz verfügen, welche die Kamera mit einer Verzögerung von 5 Minuten nach dem Router einschaltet. Bis dahin muss die Anlage regelmäßig von Hand aus- und eingeschaltet werden. Eine Fernwartung über das Internet ist übrigens nicht möglich, da technisch bedingt kein Routing in das Netz von E-Plus möglich ist.

Von den Modellfliegern wurde die Webcam weitgehend positiv aufgenommen. Viele informieren sich häufig über den Stand auf dem Platz und nutzen auch gern die Rückblickfunktion. Jedoch gibt es auch solche, die sich unnötig überwacht fühlen und nach dem Sinn des Ganzen fragen. Es empfiehlt sich also, vor der Installation einer Webcam die Meinungen der Vereinsmitglieder einzuholen und auch darüber abzustimmen.

Aktuelle Bilder der Webcam sind auf der Webseite des SFC-Darmstadt zu finden. Hier noch ein Zeitraffer-Video vom Juni 2010: