Aufbau der Eulen-Webcam 


Die Hardware

 

Die Eulen-Webcam wurde auf Basis eines Raspberry Pi 5 realisiert. 

Die Unterbringung des Raspberry PI 5 und der IR-LED Steuerung erfolgte in einem Elektro-Schaltkasten (IP 54/65) mit einer Größe von 11 x 11 cm. Der Kasten ist ca. 6 cm hoch, was ausreicht, um alle notwendigen Teile für die Steuerung der Eulen-Kamera, inklusive Raspberry unterzubringen. 

Das Kamera Modul (Modul 3 Wide mit 12 MP Non IR) und die beiden IR-LEDs wurden in einem 42 cm langen PVC-Rohr untergebracht (siehe Abb.: 1.). Hier ist bereits die dritte, verbesserte Version der Eulenkamera abgebildet.

Abb. 1:  Raspberry PI Gehäuse mit angeschlossenem Kameramodul und zwei IR-LEDs in einem PVC-Rohr. Das kleine Bild rechts zeigt das PVC-Rohr von hinten mit entfernter Abdeckung. 

Alle Teile auf einen Blick

Abb. 2: Übersicht über alle Teile der Eulen-Webcam. Am Raspberry Pi (im Schaltgehäuse) mit den Komponenten:

- WLAN-Antenne mit Verstärker

- Motion Sensor (Infrarot)

- Netzteil für die Stromversorgung 

- Kamera Kabel  und Kamera-Modul

- Steuerung IR-LEDs

- Mikrofon

Eine Liste mit allen für den 

Aufbau benötigen Teilen findet sich HIER

Installation im Nistkasten 

 

Die Abbildung 3. zeigt den Nistkasten von oben mit eingebautem Kameramodul (PVC-Rohr in der linken Ecke) und angeschlossenem Raspberry Pi im Schaltkasten, der oben auf dem Nistkasten befestigt wird. 

 

 

 

Das Kameramodul verfügt über ein Weitwinkelobjektiv mit einem horizontalen Sichtfeld von 102° und einem vertikalen Sichtfeld von „nur“ 67°.  In der Diagonale werden 120° erreicht.

Das PVC-Rohr ist von außen zugänglich und frei drehbar - somit kann die Kamera in der Höhe und in der Rotationsachse jederzeit nachjustiert werden, ohne dass ein Öffnen des Nistkasten notwendig ist. Unnötige Störung der Eulen kann dadurch vermieden werden.

Abb. 3:  Installation der verschiedenen Komponenten im Nistkasten (von oben)

Ansteuerung der Infrarot LEDs über den Raspberry Pi

 

Zum Einsatz kommen zwei LED-Module (OSD 04520 IR     850 nm 3 W / 3,3 Volt mit Weitwinkellinsen). Diese Module verfügen über einen eigenen Lichtsensor. Da dieser nicht benötigt wird (im Eulenkasten ist es sowieso meistens dunkel), werden die LEDs unter Umgehung der vorhandenen Anschlüsse direkt angeschlossen (Anlöten der Kabel direkt am LED Sockel).

Die beiden LEDs sollen gleichzeitig über die in Python entwickelte Applikation an- und ausschalt bar sein. Dies erfolgt  durch einen Transistor am Raspberry Pi. Die Schaltung dazu sieht wie folgt aus (siehe Abb. 4.)

Abb. 4:  Schaltplan für die Ansteuerung der beiden IR-LEDs

Anschluss eines Temperatur- / Feuchtigkeitssensors DHT22

 

Der Sensor wird am Raspberry an GPIO4, an GND (Ground) und an 3,3 Volt angeschlossen.

Der DHT22 ist ein einfacher, aber kostengünstiger digitaler Temperatur- und Feuchtigkeitssensor. Er verwendet einen kapazitiven Feuchtigkeitssensor und einen Thermistor zur Messung der Umgebungsluft. Er gibt ein digitales Signal auf den Datenpins aus. 

 

Messbereiche des Sensors:

Luftfeuchtigkeit:    0-100%, ±2-5%

Temperatur: -40 - +80°C, ±0,5°C 

Samplingrate 0,5 Hz: einmal alle 2 Sekunden, was völlig ausreichend ist. In diesem Projekt werden die Sensordaten jede Stunde einmal erfasst und optional an eine Datenbank auf dem Webserver geschickt und immer auf einem csv-file auf dem Raspberry lokal abgespeichert.

ENTFERNUNGSMESSUNG MIT EINEM RASPBERRY PI UND DEM SENSOR E18-D80NK


Der Sensor ermöglicht eine Abstandsmessung. Er arbeitet digital, d. h. er sendet die sogenannten Nullen und Einsen, je nachdem, ob das Objekt erkannt wurde oder nicht. Die Empfindlichkeitseinstellung erfolgt über einen Drehknopf im Modulgehäuse und über die Software. Verbunden wird der Sensor mit dem Raspberry wie folgt: 


5 V - Rotes  Kabel

Masse -   blaues Kabel

GPIO 21 - Gelbes oder schwarzes Kabel

Abb. 5:  Schaltplan für den Anschluss des Distanzsensors

Das Raspberry Pi Kameramodul 3 Wide NoIR

 

Das Kamera Modul 3 ist eine Kompaktkamera von Raspberry. Es verfügt über 12-Megapixel-Sensor mit HDR und über einen schnellen Autofokus mit Phasenerkennung. 

Auflösung Horizontal/Vertikal: 4608 × 2592 Pixel

Gängige Videomodi: 1080p50, 720p100, 480p120

 

Über die Software können viele Parameter der Kamera wie z.B. Lichtstärke, Kontrast, Manueller Fokus etc. beliebig eingestellt werden.  Damit wird eine, im Vergleich zu vielen handelsüblichen Webcams, sehr gute Bildqualität erreicht. 

 

Im Nistkasten wird die  Weitwinkelvariante verwendet, um den Kasten möglichst komplett einsehen zu können. Außerdem kommt hier die Variante ohne Infrarot-Sperrfilter zum Einsatz, damit auch Infrarotaufnahmen möglich sind.

Achtung - hier unbedingt das Kamerakabel verwenden, dass an den 22-poligen FPC-Anschluss des Raspberry Pi 5 passt. Hier kommt das 500 mm lange Kabel zum Einsatz (Abb. 6.)

Am Raspberry Pi 5 können erstmals auch problemlos zwei Kameras parallel angeschlossen werden.  Man könnte also eine zweite Kamera im Einflugbereich des Nistkasten installieren, falls man das möchte.

Abb. 6:  Linkes Bild - Kamera Modul 3 mit Camera Cable für den Raspberry Pi 5. Rechtes Bild - Anschluss des Flachbandkabels am Raspberry Pi

CO2-Messung mit dem MH-Z19B

 

Der CO2-Sensor MH-Z19B funktioniert auf Basis der nichtdispersiven Infrarottechnologie (NDIR) zur Messung der 

CO2-Konzentration in der Umgebungsluft. Nichtdispersive Infrarotdetektoren (NDIR) messen die Absorption von Infrarotstrahlung bei einer fest eingestellten Wellenlänge (nichtdispersiv), die bei CO2 bei 4,3 µm liegt

Ein Fotodetektor im Sensormodul misst dabei die Absorption eines kurzen Lichtimpulses: Je weniger Licht ihn erreicht, desto höher liegt der Kohlendioxidgehalt.

 

Der CO2-Sensor wird über USB-UART Wandler mit einem USB-Anschluss des Raspberry Pi verbunden (siehe Abb. 7).  Laut Literatur ist die Messung über die UART-Schnittstelle genauer als über die PWM (Pulsweitenmodulation) Schnittstelle GPIO14 und GPIO15 am Raspberry. Letzteres hat auch nicht funktioniert. Deshalb wurde auf den USB-UART Anschluss gewechselt.

 

Die Anschlüsse am Sensor:

Stromversorgung:

GND

Vin (5Volt)

 

Datenpins:

TX

RX

HD (Kalibrierungspin)

Abb. 7:  Anschluss des CO2-Sensors über einen USB-UART-Wandler an den Raspberry Pi5

Belegung USB-UART Adapter:

schwarz - Masse/Gnd

grün - TXD

weiß - RXD

rot - VCC 5V 

 

 

 

 

 

Zero-Point (Nullpunkt) Kalibrierung des CO2-Sensors:

 

Der Nullpunkt des Sensors liegt bei 400 ppm. Beim Kalibrieren teilt man dem MH-Z19B mit, dass er sich gerade in einer Kohlendioxid-Konzentration von 400 PPM befindet. 

 

Er merkt sich dann den gerade anliegenden 

Spannungswert und wird ihn als untere Grenze für die Berechnung der Messwerte verwenden. In der Eulenkamera Applikation wurde die Kalibrierung umgesetzt wie in Abb. 8 gezeigt.

 

Es gibt drei Methoden um den Sensor zu kalibrieren:

1.  Self-Calibration (ABC-Calibration)

Laut Datenblatt ist die ABC Kalibrierung nur für völlig geschlossene Räume und nicht für Scheunen, Gewächshäuser etc. Die automatische Self-Calibration wurde in diesem Fall deaktiviert.

 

2. Hard-Ware Calibration 

Bei der Hard-Ware Kalibrierung wird der Sensor fü 20 Sekunden über den HD Pin (GPIO 21) auf Masse gezogen und damit auf Null gesetzt. Die HW-Calibration sollte spätestens alle 6 Monate durchgeführt werden!

Und sollte auch gemacht werden, wenn der Raspi abgeschaltet war!

 

3. Software Calibration (RESET)

Ein Reset kann nötig sein, wenn der Sensor unrealistische bzw. völlig falsche Daten liefert – weil er vorher vielleicht nicht für 20 min bei konstant 400 ppm Umgebungsluft kalibriert worden ist. 

 

 

Abb. 8:  Fenster zum Kalibrieren des CO2-Sensors

Die Eulenkamera App


Neben der Möglichkeit Fotos und Videos lokal oder auf dem Webserver zu speichern sieht man die Temperatur- und Feuchtigkeitsverlauf im Nistkasten des aktuellen Tages in Form von Grafiken. 


Außerdem wird die Anzahl der registrierten Bewegungen im Nistkasten dargestellt (wenn der Motion Sensor aktiviert wurde). Bei einer erkannten Bewegungen kann eine Info-Mail an eine fest hinterlegte Email-Adresse verschickt werden.

Daneben werden die IR-LEDs und der Motion Sensor über die App gesteuert. 


Fotofalle: Bei erkannter Bewegung wird automatisch eine IR-LED eingeschaltet und ein Foto gemacht.


Die App hat weitere Funktionen, die auf dieser Seite durch Anklicken der Menüeinträge zu sehen sind.

Abb. 8:  Bedienoberfläche der Eulenkamera App realisiert mit Python

Images:  Bildergalerie mit lokal abgespeicherten Bildern. Das aktuell markierte Bild kann aus der Galerie heraus an eine fest hinterlegte E-Mail-adresse geschickt werden. 


Data: 

- Sensor daily: Aktuelle Tageswerte für Temperatur und Luftfeuchtigkeit

- Sensor yearly: Zeigt die Durchschnittswerte für Luftfeuchtigkeit und Temperatur des aktuellen Jahres. Im Motion Diagramm sind außerdem die Summen der erfassten Bewegungen dargestellt.


Settings: 

- Motion: Einstellung des  Bewegungssensors

- Camera: Einstellung der Kamera                 

- Foto:  Fotoparameter

- Video: Videoparameter


Help: Versionsinfo & Hilfetexte & Exit

Die Architektur (Remote Anbindung des Raspberry Pi)

 

Auf dem Raspberry Pi 5 läuft die Python basierte Eulenkamera-Applikation. Über die externe WLAN-Antenne ist der Raspberry am Standort des Nistkastens mit dem Internet verbunden. Auf dem Raspberry ist standardmäßig der RVNC Connect Netzwerkservice installiert, der einen Remotezugriff auf den Raspberry ermöglicht.

In diesem Fall wird ein Tunnel genutzt über den man über das Internet auf den Raspberry Pi zugreifen kann (Remote-Desktop Zugriff). 

 

Dadurch kann man mit dem Handy (Android, iOS) oder mit dem PC (Windows, Mac OS) per Fern- / Remote-Zugriff über das Internet (über die Tunnelverbindung) auf den Desktop des Raspberry zugreifen kann, muss auf diesen Endgeräten die Software Real VNC Viewer installiert werden.

 

Auf dem Raspberry wurde ein MySQL-Connector installiert, der die stündliche Übermittlung (aus dem Python Programm heraus) der Sensordaten (Temperatur, Luftfeuchtigkeit) auf eine MySQL Datenbank auf dem Webserver ermöglicht. Die Datenbank wird über eine Webseite ausgelesen und die Sensordaten werden grafisch dargestellt (Temperatur- und Feuchtigkeitsentwicklung übers Jahr).

 

Mit dem Sysbench Befehl: 

sysbench cpu --cpu-max-prime=5000 --threads=2 --time=2000 run

wurde eine CPU-Auslastung von ca. 50 % simuliert, was etwas über der durch die Eulen-Kamera App erzeugte Auslastung liegt. Man sieht in der Abb. 8 einen linearen Zusammenhang zwischen Außentemperatur und CPU-Temperatur: Bei 51 C° Außentemperatur ist die Temperatur der CPU im Maximum auf    75 C° angestiegen, was noch deutlich unter dem ersten kritischen Temperaturbereich (1. Drosselungsstufe) liegt. 

Extrapoliert man diesen linearen Verlauf, dann ist davon auszugehen, dass die CPU erst zwischen 55° bis 60° Lufttemperatur in der Scheune so heiß wird, dass sie automatisch gedrosselt werden muss. 

Im Juni und im August 2024 lag die CPU-Temperatur einige Male bereits leicht über 70 °C was darauf hindeutet, dass es in der Scheune im Verlauf des Sommers tatsächlich sehr warm werden kann.

Abb. 9:  Auswertung des Hitze-Tests - Anstieg der CPU-Temperatur in Abhängigkeit von der Außentemperatur

Hitze-Test

 

Um zu prüfen, wie gut die Kühlung des Raspberry Pi im Schaltgehäuse ist, wurde ein Hitzetest im Backofen durchgeführt.  Dazu wurde der gesamte Aufbau, d.h. der Schaltkasten mit Raspberry Pi mit Kamera und Temperatursensor in einen Backofen verbracht und dort langsam bis 51 C° erhitzt. Damit wurde die Temperaturentwicklung in der Scheune an einem heißen Sommertag simuliert. 

Mit einem Python-Programm wurde die CPU-Temperatur des Raspberry und die Temperatur (mittels des Temperatursensors) im Backofen kontinuierlich erfasst und zur späteren Auswertung in ein csv-file geschrieben.

Die Abbildung  8. zeigt den Verlauf der CPU-Temperaturentwicklung des Raspberry in Abhängigkeit von der Außentemperatur.

‍ 

Das Eulenkamera 

Projekt