Die Software:

freie Software: Raspberry Pi Imager / Win32 Disk Manager

Raspberry Pi Imager ist die offizielle Software der Raspberry Pi Foundation mit der das Betriebssystemimage auf die SD-Karte kopiert wird.
Das Image des Betriebssystems wird über den Pi Imager ausgewählt und installiert. Danach wird ein Verify durchgeführt. Weiterhin ist auch eine Formatierung einer SD-Karte möglich (wichtig, wenn ich das Linux-System entfernen möchte!). Es ist aber nicht Möglich eine SD-Karte einzulesen - dafür kann man aber den Win32Diskmanager verwenden. Für ein Backup ist es hilfreich eine Kopie der SD-Karte zu haben.

download Raspberry Pi Imager     download Win32 Disk Manager

Pi-Imager

Disk Manager

freie Software: Raspberry Pi OS Lite / Putty / FileZilla

Als Betriebssystem habe Raspberry Pi OS Lite (32-bit) gewählt. Nachdem das Image geschrieben ist, kopiere ich eine leere Datei mit Namen "SSH" und eine Datei "wpa_supplicant.conf" mit nachfolgendem Inhalt nach boot (ist unter Windows erreichbar).

Damit verbindet sich dann mein Pi-Zero über WLAN mit meinem Netzwerk. Die IP erfahre ich über meinen Router. Ich kann dann z.B. mit Putty (SSH-Verbindung) darauf zugreifen. Weiterhin kann ich auch eine SFTP-Verbindung mit z.B. FileZilla aufbauen.

download Putty     download FileZilla

Pi OS Lite

Putty

 

FileZilla

freie Software: MotionEye

Für die Steuerung der Kamera/Streaming verwende ich MotionEye. Es auch eine fertiges Image mit MotionEye - damit ist aber eine Nachinstallation nicht mehr möglich. In meinem Fall eine Überwachung der Temperatur/Luftfeuchte und ein WatchDog-Modul, das bei einem Problem ein Reset durchführt. Deshalb führe ich die Installation selbst durch. Dafür habe ich mehrere Batch-Dateien erstellt. Man kann die Zeilen (nur die ohne '#') auch einzeln eingeben.

Der Pi wird auf den neusten Stand gebracht und einige Tools installiert:

Installation MotionEye:

MotionEye aktivieren:

MotionEye
freie Software: Python-OpenSSL

Um die Temperatur und Luftfeuchte mit dem Sensor DHT22 auszulesen, muss noch Python-OpenSSL installert werden.

Ausgelese wird mit folgenden Script, gesteuert durch crontab alle 10 Minuten

Python

freie Software: Gnuplot

Ich möchte den Temperatur- Luftfeuchteverlauf der letzten 12 Stunden als Grafik anzeigen. Dazu wird die Logdatei vorbereitet:

Für die Erstellung der Grafik (Ausgabe als .png-Bild) verwende ich folgendes Scipt:

./dia24.pl log 24 > log.dat
...bereitet die Daten vor
gnuplot diagram.gplot
...erstellt das Bild.
Gnuplot

freie Software: LFTP

Das Bild muss nun noch automatisiert erstellt und hochgeladen werden in das Verzeichnis der Webseite. Bei mir nach strato.de. Dazu wird die folgende bash-Datei benutzt:

...aufgerufen wird dieses Script per crontab jede Stunde.

lftp

freie Software: Watchdog

Der Raspberry soll ja unbeaufsichtigt längere Zeit laufen. Ich möchte die brütenden Vögel nicht stören. Der Raspberry kann sich aber selber überwachen. Alle 10 Minuten ändert sich das Logfile. Diese Veränderung wird durch den Hardware-Watchdog des Raspberrys überwacht. Ist die Datei nicht verändert, findet ein Reset statt. Das System startet neu. Im Logfile werden die Neustarts vermerkt.

Einrichtung: ...mit

sudo apt install watchdog -y
sudo modprobe bcm2835_wdt
installieren. ...mit
sudo joe /etc/watchdog.conf
die Konfigurationsdatei aufrufen und die folgenden Zeilen anpassen:

file = /home/pi/log
# Zeit in sec = 16:40 min
change = 1000
max-load-1   = 24

watchdog-device  = /dev/watchdog

WICHTIG ! vor dem Start in crontab -e folgende Zeilen eintragen/ergänzen:

@reboot		/home/pi/start_sys.sh
*/10 * * * * 	/home/pi/TeHu.sh
 20  * * * *    /home/pi/dia.sh
...und nun watchdog starten
# sudo systemctl status watchdog.service
# sudo systemctl disable watchdog.service
# sudo systemctl enable watchdog.service
sudo systemctl start watchdog.service
download der verwendeten Scripte
Weiterleitung (Beispiel)

Jetzt sieht es so aus, über:

192.168.178.55:8081 erreiche ich den Stream der Nistkasten-Kamera (nur im Heimnetz)
192.168.178.56:8082 erreiche ich den Stream der Außen-Kamera (nur im Heimnetz)

Der Stream soll aber auch aus dem Internet ereichbar sein. Deshalb muss ich eine Weiterleitung einrichten.

Einrichtung (ipv4 - Fritzbox - Strato):

  • Die für das Projekt eingerichtete Domain sei "nistenkasten.de"
  • Ich richte eine Subdomain "kamera" ein, gebe ihr die Eigenschaft "Dynamic DNS" und richte ein Passwort ein.
  • In den Einstellungen der Fritzbox gehe ich unter Internet > Freigaben > Portfreigaben und gebe für die IP 192.168.178.55 den Port 8081 frei, sowie für 192.168.178.56 den Port 8082.
  • Unter Internet > Freigaben > DynDNS aktiviere ich DynDNS benutzen und trage die Anmeldedaten des DynDNS-Anbieters ein:

    STRATO.AG
    kamera.nistkasten.de
    nistkasten.de
    pass#####

  • Mit dem Aufruf: "http://kamera.nistkasten.de:8081" rufe ich aus dem Internet den Stream der Nistkasten-Kamera auf - mit "http://kamera.nistkasten.de:8082" den Stream der Außen-Kamera.

Nistkasten     Hardware Software Nest Räuber Links