User octoprint (oder eigenen Benutzer) erstellen und dann mit octoprint am Server anmelden
1 |
adduser octoprint |
Wechsel in das Heimverzeichnis des Benutzers octoprint
1 |
cd ~ |
Benutzer octoprint in die sudoers Datei aufnehmen
1 2 |
su nano /etc/sudoers |
Zeile einfügen und mit Strg+O speichern —> STRG+X SCHLIESSEN
1 |
octoprint ALL=(ALL) ALL |
Download und Installation der benötigten Pakete
1 2 |
sudo apt-get install python-pip python-dev git sudo apt-get install python-setuptools |
Download des Octoprint-Installationsverzeichnises (es wird im Homedirectory des Benutzers octoprint angelegt (/home/octoprint/OctoPrint)
1 |
git clone https://github.com/foosel/OctoPrint.git |
Wechsel in das neue (heruntergeladene) Verzeichnis OctoPrint (beachte GROSS-/kleinschreibung)
1 |
cd OctoPrint |
Start der Installation von Octoprint (es handelt sich um ein python-Script, welches mit Root-Rechten ausgeführt wird (sudo))
1 |
sudo python setup.py install |
Erstellen eines Verzeichnisses (.octoprint) im Homedirectory des Benutzers octoprint
1 |
mkdir ~/.octoprint |
Damit der Benutzer octoprint auch die serielle Schnittstelle uneingeschränkt benutzen darf, muss ihm dies gestattet werden.
Hinzufügen des Benutzers pi zur Gruppe tty und dialout (Nutzung der seriellen Schnittstellen (auch virtuelle via USB-Port))
1 2 |
sudo usermod -a -G tty octoprint sudo usermod -a -G dialout octoprint |
Erststart
Zum Starten geben wir Folgendes ein:
1 |
octoprint serve |
Das Antwort sollten einige Textzeilen erscheinen, in der in der letzten Zeile u.A. zu lesen ist:
… Listening on 0.0.0.0:5000
Dies bedeutet, dass der Octoprint-Server erfolgreich gestartet ist und auf dem Port 5000 (Standard-Port) zur Verfügung steht.
Webinterface des Octoprints öffnen (IP.des.Servers:5000
1 |
192.168.0.111:5000 |
STRG+X stoppt den OctoPrintServer wieder
Cura Engine installieren
wechseln ins Home Verzeichniss
1 |
cd ~ |
1 2 |
sudo apt-get -y install gcc-4.7 g++-4.9 git clone -b legacy https://github.com/Ultimaker/CuraEngine.git |
ins Curaverzeichniss wechseln …
1 |
cd CuraEngine |
1 |
wget http://bit.ly/curaengine_makefile_patch -O CuraEngine.patch |
1 |
patch < CuraEngine.patch |
1 |
make CXX=g++-4.9 |
Danach findet man die CuraEngine unter
1 |
/home/octoprint/CuraEngine/build/CuraEngine |
Der OctoPrint Deamon wird gestartet mit
1 |
octoprint daemon start |
Weitere Befehle
1 |
octoprint daemon start|stop|restart |
OctoPrint Autostart bei Serverstart
/etc/rc.local editieren
1 |
sudo nano /ect/rc.local |
Zeile vor exit 0 eintragen
1 |
sudo -u octoprint octoprint daemon start |
STRG+O speichert —> SRTG+X beendet nano
WebCam:
Streamer download und compilieren.
1 2 3 4 5 6 |
cd ~ apt-get install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=. make |
Stream starten mit
1 |
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so" |
Für einige Webcams (einschließlich der PS3 Eye) muß der YUV-Modus mit dem folgenden Startbefehl erzwungen werden:
1 |
./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so" |
Der Stream ist nun unter:
1 |
http://<your IP>:8080/?action=stream |
verfügbar. (Wenn du eine Fehlermeldung über fehlende Dateien oder Verzeichnisse bekommst, kann das Ausgabe-Plugin mit -o „./output_http.so -w ./www“ weiter helfen.)
Kamera in Octoprint einfügen:
Öffne:
1 |
nano /home/octoprint/.octoprint/config.yaml |
(erstelle die Datei einfach, wenn sie noch nicht existiert) und füge die folgenden Zeilen hinzu:
1 2 3 4 |
webcam: stream: http://<your IP>:8080/?action=stream snapshot: http://127.0.0.1:8080/?action=snapshot ffmpeg: /usr/bin/avconv |
Starte den OctoPrint-Server neu, lösche den Cache in Ihrem Browser und lade die OctoPrint-Seite neu. Du solltest nun den Stream von der Webcam auf der Registerkarte „Control“ und eine Registerkarte „Timelapse“ mit Optionen sehen.
WebCam in OctoPrint ein/aus schalten
In
1 |
/home/octoprint/OctoPrint/scripts |
2 Dateien erstellen
1 |
touch /home/octoprint/OctoPrint/scripts/webcam |
1 |
touch /home/octoprint/OctoPrint/scripts/webcamDaemon |
webcam füllen mit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/bash # Start / stop streamer daemon case "$1" in start) /home/octoprint/OctoPrint/scripts/webcamDaemon >/dev/null 2>&1 & echo "$0: started" ;; stop) pkill -x webcamDaemon pkill -x mjpg_streamer echo "$0: stopped" ;; *) echo "Usage: $0 {start|stop}" >&2 ;; esac |
webcamDaemon füllen mit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#!/bin/bash MJPGSTREAMER_HOME=/home/octoprint/mjpg-streamer/mjpg-streamer-experimental MJPGSTREAMER_INPUT_USB="input_uvc.so" MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so" # init configuration camera="auto" camera_usb_options="-r 1280x720 -f 10" camera_raspi_options="-fps 10" if [ -e "/boot/octopi.txt" ]; then source "/boot/octopi.txt" fi # runs MJPG Streamer, using the provided input plugin + configuration function runMjpgStreamer { input=$1 pushd $MJPGSTREAMER_HOME echo Running ./mjpg_streamer -o "output_http.so -p 5100 ./www" -i "$input" LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -p 5100 ./www" -i "$input" popd } # starts up the RasPiCam function startRaspi { logger "Starting Raspberry Pi camera" runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options" } # starts up the USB webcam function startUsb { logger "Starting USB webcam" runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options" } # we need this to prevent the later calls to vcgencmd from blocking # I have no idea why, but that's how it is... vcgencmd version # echo configuration echo camera: $camera echo usb options: $camera_usb_options echo raspi options: $camera_raspi_options # keep mjpg streamer running if some camera is attached while true; do if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then startUsb elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then startRaspi fi sleep 120 done |
Nun die Datei
1 |
/home/octoprint/.octoprint/config.yaml |
öffnen.
Am Ende einfügen
1 2 3 4 5 6 7 8 9 10 |
system: actions: - action: streamon command: /home/octoprint/OctoPrint/scripts/webcam start confirm: false name: Start video stream - action: streamoff command: /home/octoprint/OctoPrint/scripts/webcam stop confirm: false name: Stop video stream |
OctoPrint Updaten:
1 2 3 4 |
cd /home/octoprint/OctoPrint git pull python setup.py clean python setup.py install |