Raspberry NoIR NDVI Webcam – Teil 2: Zusammenbau und Installation

Wie im letzten Beitrag geschrieben, will ich eine Webcam bauen, die zu bestimmten Zeiten NDVI Bilder aufnimmt. Hier im Teil 2 soll es um den Zusammenbau und die Installation gehen.

Was braucht man?

Raspberry Pi Zero W oder wenn man wie ich noch mehr mit dem Ding vor hat den WH

PiNoir Kamera mit blauem Filter

Gehäuse oder das offizielle, wenn man nicht noch mehr vor hat außer diese Kamera zu bauen.

Adapterkabel

Micro SD Karte

Micro USB Netzteil mit Kabel

Zusammenbau

Beim Zusammenbau gibt es ein paar Hacken und Ösen. Hier Schritt für Schritt das Vorgehen:

PiNoIR mit blauer Folie und weiße Kunststoffvorichtung mit der die Brennweite eingestellt werden kann.
  1. Einrichten des Raspberry Pi Zero (siehe https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up)
  2. Die Kamera in das Gehäuse einbringen und blaue Folie vor die Linse kleben. Das ist nicht ganz einfach und ich habe hierzu auch keinerlei Anleitung gefunden wie man das tun soll.
    Ich habe es so gemacht: Aus einem Tesafilmstreifen habe ich mit einem Skalpell ein kleines Loch herausgeschnitten, dass ungefähr so groß ist wie die Kameralinsenöffnung. Dann habe ich von der blauen Folie mit dem Skalpell ein Stück herausgeschnitten, dass minimal größer ist als das Loch. Dann habe ich mit einer Pinzette die Folie auf das Loch im Tesastreifen geklebt und dann den Tesafilm auf die Linse. Hierbei ist es wichtig, dass sich nur die blaue Folie vor der Linse befindet und nicht der Tesafilm. Alles in allem ist das ein ziemliches Gefuddel gewesen. Wenn jemand eine bessere Idee hat bin ich gespannt. Ggf. ist es einfacher das offizielle Zero Gehäuse zu nehmen und die blaue Folie vor das Loch im Gehäuse zu kleben, aber es ist dann nicht sichergestellt, dass eventuell seitlich Infrarotlicht eintritt.
  3. Entfernen des vorinstallierten Kabels aus der Kamera. Diese ist für einen normalen Raspberry passend – nicht aber für den Zero. Dazu ganz wichtig: Die schwarze Klammer an der Kamera erst zurück ziehen. Diese Klammer herausgezogen lassen.
  4. Das passende Kabel einsetzen. Die Kontakte müssen beim Rapberry Pi nach unten schauen (also nicht zur Seite wo der Prozessor sitzt) und bei der Kamera nach oben (also zur Seite mit der Linse). So soll das dann aussehen.
Klammer dür das Kamerakabel an der Kamera lösen
Klammer für das Kamerakabel am Raspberry lösen

Mit Gehäuse sieht dass dann so aus:

PiNoIR in Gehäuse und mit blauen Folie

Installation

Nun zur Software: Das Rasberry OS ist ja wie oben angegeben installiert. Nun muss man ein Skript schreiben, dass regelmäßig Bilder aufnimmt, den NDVI berechnet und dann an ein PHP Skript sendet, mit dem das Bild abgesichert wird.

  1. Ich habe auf GitHub ein Skript gefunden, dass mit der offiziellen Library picamera und opencv den NDVI berechnet. Ich habe dann noch Zeitsteuerung, Wifi-Check und Versenden des Bildes über requests in Python ergänzt. Das Ergebnis hier findet ihr auf GitHub. In Zeile 12 muss noch bei URL_TO_SEND_IMAGE = "" die URL zur PHP Datei auf einem Server gesetzt werden, über die das aufgenommene Bild gespeichert werden kann. Das Python Skript muss nun auf dem Raspberry abgelegt werden.
    Das ursprüngliche Skript oben funktioniert nicht richtig. Ich habe daher ein eigenes Skript geschrieben: https://github.com/ulrischa/raspberry_ndvi_cam
    Das Skript nimmt alle 10 Minuten zwischen 8 uns 24 Uhr ein Bild auf. Hierzu eignet sich die Möglichkeit über camera.capture_continuous in Kombination mit sleep.
    Das Bild wird normalisiert und eine JET Colormap angewendet. Dann wird es gespeichert und auf den Server geladen.
  2. Nun muss man auf einem Webserver eine PHP Datei ablegen, die das Bild speichert. Hierzu ein Beispiel, dass im Prinzip von W3Schools entnommen ist. Das ganze muss noch abgesichert werden, damit nicht jeder über die URL der Datei Bilder speichern kann.
  3. Nun muss noch dass Skript von 1 bei jedem Bootvorgang automatisch gestartet werden. Das geht in der Shell über crontab -e dann nano. Nun @reboot sudo python /PFAD/ZU/PYTHONSKRIPT.py & eingeben und mit Strg + X verlassen.

Die JET-Colormap ist eine Farbkodierungsmethode, die häufig in wissenschaftlichen Visualisierungen verwendet wird. Sie wird verwendet, um numerische Daten in Farben zu kodieren, wobei die Farben von niedrigen zu hohen Werten von Blau über Grün zu Rot wechseln. Typischerweise wird die Farbkodierung für kontinuierliche Daten wie Temperatur, Druck oder Geschwindigkeit verwendet, um eine schnelle visuelle Analyse von Daten zu ermöglichen.

Die Kamera sollte nun so positioniert werden, dass sie auf Pflanzen blickt. Es ist außerdem natürlich wichtig die Kamera draußen zu platzieren, da nur das Sonnenlicht nahes Infrarot enthält. Bei der Platzierung ist daher ein regengeschützter Standort im Freien mit Stromanbindung zu finden. Da ich an dem Raspberry Zero auch noch einen Enviro anschließe, zeige ich den Aufbau in einem zukünftigen Blogbeitrag zum Enviro.

Das Ergebnis meiner NDVI Webcam sieht man hier: https://www.ulrischa.de/webcam/

Als Ergebnis muss ich aber festhalten, dass die Bilddaten noch nicht so ganz aussehen, wie ich mir das vorstelle. Das liegt daran, dass hier keinerlei Kalibrierung etc. verwendet wird. Was aber schon ganz interessant ist: Auf dem Weg erscheinen rote Punkte: Das sind die Flechten, die bei Sonne Photosynthese betreiben und daher in Rot erscheinen. Der Weg selbst besteht aus Steinen, daher ist er Blau oder Grün.



Als erster einen Kommentar schreiben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert