Bienen-Webcam

Dieses Projekt beschreibt wie eine Webcam zur Beobachtung der Bienen mit einem Raspberry Pi und einem Kamermodul einfach und günstig gebaut werden kann.

Bienen-Webcam

Materialliste

Installation und Programmierung

Der Raspberry Pi benötigt ein Betriebssystem das in der Regel auf einer SD-Speicherkarte installiert wird. Es stehen verschiedene Betriebssystem zur Auswahl, wie beispielsweise Raspbian, Pidora, Ubuntu und einige weitere. Für unsere Bienen-Webcam wollen Raspbian, das von der Raspberry Foundation offiziell unterstütze Betriebssystem verwenden. Raspbian basiert auf der Linux Distribution Debian und ist für die Hardware des Raspberry Pi optimiert. 

Raspbian auf eine SD-Speicherkarte installieren (Windows)

In wenigen Schritten kann mit einem Windows PC das Raspian Betriebssystem auf die SD-Karte geschrieben werden. Das Betriebssystem wird allerdings nicht einfach auf die SD-Karte kopiert sondern mit einem Image Burner (z.B. Win32DiskImager) auf die Speicherkarte geschrieben. 

  1. Win32DiskImager downloaden
  2. Die SD-Karten in den Kartenleser stecken und überprüfen ob sie vom Windows Explorer erkannt wird.
  3. Das Image des Raspbian Betriebssystem herunterladen und mit 7-zip entpacken. Das Image muss die Extension ".img" haben.
  4. Das Programm Win32DiskImager ausführen und im Feld "Image File" wählt man den Pfad und die Image-Datei aus. Im Feld "Device" wählt man den Laufwerksbuchstaben der SD-Speicherkarte aus.
  5. Klicken Sie jetzt auf den Button "Write", um den Schreibvorgang zu starten. Der Vorgang kann längere Zeit in Anspruch nehmen.

Nachdem der Vorgang abgeschlossen ist, kann man die SD-Karte auswerfen und in den SD-Slot des Raspberry Pi stecken. Der Raspberry Pi kann jetzt gestartet werden.

 

 

Kamera aktivieren

Damit wir das Kameramodul nützen können, müssen wir es zuerst in Raspbian aktivieren. Dazu öffnen wir das Konfigurationstool raspi-config.

$ sudo raspi-config

Wähle den Menüpunkt 5 Interfacing Options und im folgenden Screen wird P1 Camera auf "enable" gesetzt.

Kamera aktivieren

 

 

Vorarbeiten für den Livestream

Bevor wir den Treiber für das Kameramodul und das Tool Motion für den Stream installieren, aktualisieren wir zunächst Raspbian.

$ sudo apt-get update

$ sudo apt-get upgrade

V4L-Treiber (Video4Linux) für das Kameramodul installieren

Der V4L-Treiber ist bereits in Raspbian enthalten und kann einfach über folgenden Befehl installiert werden:

$ sudo modprobe bcm2835-v4l2

Wenn der Befehl ohne Fehlermeldung durchgelaufen ist kann jetzt überprüft werden, ob das Kameramodul erkannt wurde:

$ ls /dev/video*

In der Ausgabe muss /dev/video0 aufgelistet sein.

Motion Installation

Das freie Video4Linux-Aufnahmeprogramm Motion enthält einen Webserver der einen Livestream des Kameramoduls ins Netz streamen kann. Damit der Videostream über eine sichere Verbindung (TLS - Transport Layer Security bzw. https) übertragen werden kann ist Motion in einer Version grösser 4.2 notwendig. Die zurzeit aktuellste Version von Motion ist 4.3.2 (pi_buster_motion_4.3.2-1_armhf.deb) und kann hier heruntergeladen werden.

$ sudo apt install ./pi_buster_motion_4.3.2-1_armhf.deb

Mit apt werden alle nötigen Abhängigkeiten mit installiert, das dauert dann evl. etwas länger.

 

Motion Konfiguration

Damit wir Motion richtig konfigurieren können schauen wir uns zunächst die Kamera Details genauer an:

$ v4l2-ctl -V


Format Video Capture:
Width/Height : 640/480
Pixel Format : 'YUYV' (YUYV 4:2:2)
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SMPTE 170M

Bearbeiten wir nun die Konfigurationsdatei von Motion:

$ sudo nano /etc/motion/motion.conf

Um den Livestream unser Kamera zu aktivieren müssen folgende Änderungen gemacht werden:

daemon off -> daemon on

target_dir /tmp/motion -> target_dir/home/pi/Monitor

stream_localhost on ->stream_localhost off

Um die Bildqualität und die Framerate zu verbessern können noch folgende Einstellungen geändert werden:

width 640     Breite des Videos (Pixel)
height 480    Höhe des Videos (Pixel)
framerate 24     Empfangene Bilderrate pro Sekunde
threshold 5000     Empfindlichkeit der Bewegungserkennung (Anzahl Pixel)
ffmpeg_output_movies off     Keine Videos speichern bei erkannter Bewegung
output_pictures off     Keine Bilder speichern bei erkannter Bewegung
stream_port 8081     Port über den der Livestream erreichbar ist
stream_quality 75     Bildqualität in Prozent (Livestream)
stream_motion on     Ohne Bewegung nur 1 Bilder pro Sekunde (Livestream)
stream_maxrate 24     Max. Bilder pro Sekunde (Livestream)

Die Änderungen werden im nano-Editor mit ctrl-o gespeichert.

Nun müssen wir noch den Ordner /home/pi/Monitor anlegen und die entsprechenden Schreib-/Leserechte vergeben:

$ sudo mkdir /home/pi/Monitor

$ sudo chgrp motion /home/pi/Monitor

$ sudo chmod g+rwx /home/pi/Monitor

Jetzt können wir den Service starten:

$ sudo service motion start

Livestream der Bienen-Webcam testen

Den Livestream der Kamera können wir jetzt einfach in einem Browser(Chromium, Firefox, Chrom,..) testen. Ins Browserfenster geben wir die entsprechende IP-Adresse und den Port ein: http://192.168.178.39:8081.

Eine sichere Übertragung mit Hypertext Transfer Protocol Secure (https)

Da ich den Livestream in meine Internetseite (https) einbinden wollte ist es notwendig auch den Videostream mit https zu übertragen. Ich muss also noch Zertifikate für eine verschlüsselte Übertragung erstellen und in Motion noch TLS-Stream aktivieren. Damit auf dem Raspberry Pi "self-signed Certificates" erstellt werden können muss zunächst openssl installiert werden.

$ sudo apt-get install openssl

Jetzt wechseln wir in den Motion Konfigurations-Order und erstellen das Zertifikat:

$ cd /etc/motion

$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout motion.key -outform pem -out motion.pem -subj "/CN=*.com"

In der Motion Konfigurationsdatei müssen jetzt noch folgende Einträge hinzugefügt werden:

$ sudo nano /etc/motion/motion.conf

stream_tls on

webcontrol_tls on

webcontrol_key /etc/motion/motion.key

webcontrol_cert /etc/motion/motion.pem

Motion muss jetzt neu gestartet werden:

$ sudo service motion restart

Im Browserfenster muss jetzt folgende Adresse eingegeben werden: https://IP-Adresse:8081

Den Videostream ausserhalb des Heimnetzes sichtbar machen

Die Bienen-Webcam macht natürlich erst dann sinn, wenn ich den Videostream auch ausserhalb des Heimnetzes anschauen kann. Dazu sind jetzt noch Anpassungen am Router notwendig. Ich muss für das Gerät eine Portfreigabe einrichten. Die Einstellungen zeige ich hier am Beispiel einer FritzBox 6890 LTE.

Fritz-Box - Gerät für Freigaben hinzufügen

Fritz Box - Portfreigabe anlegen

Um die Konfiguration zu testen ist es wichtig, dass ich auf den Videostream von einem Gerät aus zugreife, das nicht mit dem Heimnetzwerk verbunden ist!

Ajouter des commentaires
Die DIY WLAN-Stockwaage ermittelt stündlich das Gewicht des Bienenvolkes und übermittelt den Wert über das WLAN-Netz an den cloud4Bees-Datenserver. Der Datenserver speichert die Daten in einer...
Das Wetter und das Klima haben einen wesentlichen Einfluss auf die Entwicklung und die Gesundheit unserer Bienen. Für jeden Imker ist die Entwicklung des Wetters und die Auswirkungen auf unsere...