ad astra - view the sky with open eyes
StarCatcher Foto Webinterface  
Sternenbasis 39 - my sky world


StarCatcher Foto Webinterface

Um Kameras unter Linux / Raspberry Pi OS zu steuern gibt es das sehr gute Tool GPHOTO2. GPHOTO2 Homepage

Nachteil, es ist im Wesentlichen im Terminal per Kommandos zu steuern. Zwar gibt es auch einige Tools mit grafischer Oberfläche für Linux, diese bieten aber nicht den Komfort und die Funktionen, die ich mir in der Astrofotografie wünsche. Also habe ich meine Ideen dazu sortiert und mich an die Entwicklung des StarCatcher gemacht.


Umgesetzte Funktionen



Ein paar Screenshots


                                                           
StartbildschirmKonfiguration der Pläne und KameraparameterKonfiguration von Programmeinstellungen
 
      
 
Konfigurierter Plan vor der AusführungEin Testbild aus dem EntwicklerlaborDie letzte Aufnahme aus dem Labor
 
      
 

Basis für die Software ....


... ist die Installation eines Linux / Raspberry Pi OS und der folgenden Software. Auf die Installation der Betriebssysteme selbst wird hier nicht explizit eingegangen.

Wichtiger Hinweis: Die Konfiguration wird meistens mit den niedrigsten Sicherheitseinstellungen vorgenommen. Es ist dem Autor der Software wichtiger, dass die Softwre funktioniert. Da ein Einsatz nur in einem nicht öffentlichen Netzwerk erfolgen soll, stellt das in der Regel kein Problem dar.




// *** Installationsanleitung



// *** Installation Webserver unter Linux

sudo apt update && sudo apt upgrade
sudo apt-get install apache2 php php-intl mariadb-server phpmyadmin

// *** Die Feineinstellung von PHP erfolgt in der Datei php.ini bei Bedarf

sudo nano /etc/php/8.1/apache2/php.ini

// *** Installation Webserver auf Raspberry

sudo apt update && sudo apt upgrade
sudo apt install apache2
sudo apt-get install php
sudo apt install mariadb-server php-mysql
sudo apt install phpmyadmin

// *** Installation weiterer Software

GPHOTO2

sudo apt-get install gphoto2

PHP GD Lib für Grafikbearbeitung

sudo apt-get install php-gd

MENCODER

sudo apt-get install mencoder

FFMPEG

sudo apt-get install ffmpeg
sudo apt-get install ffmpeg-doc
sudo apt-get install libavcodec-extra

Hinweis: libx264 which has a stated maximum resolution of 4096 x 2304

FTP - muss man oft nachinstallieren obwohl Standard - Wenn es Software gibt, die das nutzt, ansonsten schadet es nicht

sudo apt-get install ftp

Die FTP Zugangsdaten kann man in der CONFIG hinterlegen.

// *** Für die Arbeit mit den Sensoren (Temperatur und Feuchtigkeit) müssen Adafruit Python Module installiert werden
// *** Der Befehl installiert die python-pip-Anwendung

sudo apt-get install python3-pip

// *** Der Befehl installiert andere Anwendungen, die die pip-App für die Installation der Library benötigt:

sudo python3 -m pip install --upgrade pip setuptools wheel

// *** Danach können die notwendigen Library installieren.
(nur auf dem Raspi möglich, da nur dort die Sensoren wie im Programm angelegt angeschlossen werden können)

sudo pip3 install Adafruit_adt7410
sudo pip3 install Adafruit_DHT

// *** Dateizugriff auf /var/www/html herstellen

Der Ordner /var/www/html ist der, auf den http://localhost/ bzw. http://127.0.0.1/ verweist, und in dem die eigenen Produktionsdateien liegen werden.

Das Problem ist, dass der Benutzer von Apache in der Voreinstellung den Namen www-data trägt, was dazu führt, dass weder www-data noch ich als normaler Benutzer Schreibrechte für /var/www/html besitzen, da dieser Ordner bei der Installation von LAMP mit Rootrechten angelegt wurde und daher zunächst root gehört. Dies kann man aber ändern, indem man sich selbst zum Besitzer des Wurzelordners macht (der Platzhalter BENUTZER ist durch den eigenen Benutzernamen zu ersetzen):

sudo chown BENUTZER:BENUTZER /var/www/html && sudo chmod 775 /var/www/html

Anschließend ändert man noch den Apache-Benutzer:

sudo nano /etc/apache2/envvars

In dieser Datei ändert man den Wert der Variablen APACHE_RUN_USER und APACHE_RUN_GROUP auf den eigenen Benutzernamen.
Server neu starten: (Dieser Befehl ist auch nach allen späteren Änderungen der Apache-Konfiguration notwendig.)

sudo service apache2 restart

Nun können unter /var/www/html die eigenen Produktionsdateien erstellt bzw. dorthin kopiert werden.

Unter /var/www/htmlist das Verzeichnis StarCatcher anzulegen
/var/www/html/StarCatcher

Unter dem Benutzer ist das Verzeichnis StarCatcher anzulegen z.B.
/home/BENUTZER/StarCatcher

Groß-/Kleinschreibung beachten beim Namen "StarCatcher"

Die Software aus der ZIP Datei (Download am ENde der Seite) ist in das Verzeichnis /var/www/html/StarCatcher zu kopieren (Entpacken ZIP 1:1 mit Verzeichnissen).




// *** Bedienung




Wenn die Kamera mit USB angeschlossen wurde, wird sie in der Regel automatisch vom System gemounted. Das behindert die HTML Oberfläche von StarCatcher.

Dieser Mount muss manuell aufgehoben werden. Terminal öffnen und:

gio mount -s gphoto2

// *** Zugriff auf die Oberfläche

Rufe auf dem Webserver oder im Netzwerk Deiner Wahl die Seite http://ADRESSES-DES-WEBSERVERS/StarCatcher auf.





// *** Trouble Shouting




// *** Anzeige Testbild oder Verzeichnisse am Fuss der Seite

Wenn das Testbild nicht richtig erstellt wird, einfach die Datei testbild.jpg im StarCatcher Bilder Ordner löschen. Das gilt auch, wenn am unteren Seitenende keine Verzeichnisse für Videos, Bilder und Logs angezeigt werden. Die Datei testbild.jpg wird manchmal als Ordner angesehen und dann klemmt es. Warum???

// *** Kameraparameter Probleme

Wenn einige Paramter nicht richtig funktionieren (z.B. bei mir Aperture auf der EOS RP), dann liegt es an einer fehlerhaften GPHOTO2 Version. Diese kann man mit dem folgenden Befehl aktualisieren.

Mehr Infos unter:
https://github.com/gphoto/gphoto2/issues/508
https://github.com/gonzalo/gphoto2-updater

wget https://raw.githubusercontent.com/gonzalo/gphoto2-updater/master/gphoto2-updater.sh && wget https://raw.githubusercontent.com/gonzalo/gphoto2-updater/master/.env && chmod +x gphoto2-updater.sh && sudo ./gphoto2-updater.sh

*** Danach unter Linux Mint: gphoto2 --version

Diese Version von gphoto2 benutzt die folgenden Softwareversionen und Optionen:
  gphoto2      2.5.28    gcc, popt(m), exif, no cdk, no aa, no jpeg, no readline
  libgphoto2      2.5.31    standard camlibs (SKIPPING docupen lumix), gcc, no ltdl, EXIF
  libgphoto2_port 0.12.2    iolibs: disk ptpip serial usb1 usbdiskdirect usbscsi, gcc, no ltdl, EXIF, USB, serial without locking

*** Danach auf Raspi: gphoto2 --version
Damit läuft es nicht richtig für die EOS RP

Diese Version von gphoto2 benutzt die folgenden Softwareversionen und Optionen:
  gphoto2      2.5.28    gcc, popt(m), exif, no cdk, no aa, no jpeg, no readline
  libgphoto2      2.5.27    standard camlibs, gcc, ltdl, EXIF
  libgphoto2_port 0.12.0    iolibs: disk ptpip serial usb1 usbdiskdirect usbscsi, gcc, ltdl, EXIF, USB, serial without locking

Weil:

ldconfig -p | grep libgphoto2

    libgphoto2_port.so.12 (libc6,AArch64) => /lib/aarch64-linux-gnu/libgphoto2_port.so.12
    libgphoto2_port.so.12 (libc6,AArch64) => /usr/local/lib/libgphoto2_port.so.12
    libgphoto2_port.so (libc6,AArch64) => /usr/local/lib/libgphoto2_port.so
    libgphoto2.so.6 (libc6,AArch64) => /lib/aarch64-linux-gnu/libgphoto2.so.6
    libgphoto2.so.6 (libc6,AArch64) => /usr/local/lib/libgphoto2.so.6
    libgphoto2.so (libc6,AArch64) => /usr/local/lib/libgphoto2.so

Next Step:

sudo apt-get remove gphoto2 libgphoto2-6 libgphoto2-dev libgphoto2-l10n libgphoto2-port12


Danach:

ldconfig -p | grep libgphoto2

    libgphoto2_port.so.12 (libc6,AArch64) => /usr/local/lib/libgphoto2_port.so.12
    libgphoto2_port.so (libc6,AArch64) => /usr/local/lib/libgphoto2_port.so
    libgphoto2.so.6 (libc6,AArch64) => /usr/local/lib/libgphoto2.so.6
    libgphoto2.so (libc6,AArch64) => /usr/local/lib/libgphoto2.so

und Final: gphoto2 --version

Diese Version von gphoto2 benutzt die folgenden Softwareversionen und Optionen:
  gphoto2      2.5.28    gcc, popt(m), exif, no cdk, no aa, no jpeg, no readline
  libgphoto2      2.5.31    standard camlibs (SKIPPING docupen lumix), gcc, no ltdl, EXIF
  libgphoto2_port 0.12.2    iolibs: disk ptpip serial usb1 usbdiskdirect usbscsi, gcc, no ltdl, EXIF, USB, serial without locking






// *** FAQ




Falls es zukünftig zu klärende Fragen gibt, werde ich diese hier erläutern.






// *** Download




Wer beim Lesen und Bilder schauen bis hier durchgehalten hat, darf sich hier gerne beim Download bedienen:

Download der Software by Sternenbasis 39 als ZIP






// *** Over and Out




Eigentlich ist man ja nie fertig mit derartigen Projekten. Ich finde aber, ich bin schon recht weit. Die Seite wird laufend überarbeitet und es kann auch nicht garantiert werden, dass immer die letzte technische Änderung in die Webseite eingeflossen ist.

Sollte es Fragen, Anregungen oder Wünsche zum Projekt geben, so kann jederzeit Kontakt zu mir aufgenommen werden. Den Code der Skripte und eine Installationsanleitung für den Linux/Raspberry PC stelle ich kostenfrei zur Verfügung, wenn Bedarf besteht. Die Skripte sind vollständig durch mich erstellt und alle Rechte liegen bei mir.

Clear sky Thomas

© Copyright - Thomas Liebhoff