(0)
Artikel
bewerten
(0)

OctoPi Installation

Webinterface für den 3D Drucker

Inhalt dieses Artikels:

    Ein Raspberry Pi mit installiertem OctoPi bietet eine sehr einfache Möglichkeit bestehende 3D Drucker aufzurüsten.

    Das in OctoPi enthaltene OctoPrint bietet eine Weboberfläche für die Steuerung des Druckers, zur Verwaltung der 3D-Objekte bis hin zum Slicen dieser. So kann zum Beispiel, bei Einsatz einer Webcam, der Printstatus jederzeit und überall begutachtet werden, bei Verwendung eines Relais, der Drucker nach dem Druckvorgang automatisch abgeschaltet werden oder eine zusätzliche Temperaturüberwachung implementiert werden.

    OctoPi basiert auf Raspian, entsprechend läuft die Einrichtung sehr ähnlich dem folgenden Artikel: Raspberry Pi 2-3 Inbetriebnahme 

    Installation

    Das Aufspielen des Images erfolgt wieder mittels Win32 Disk Imager:

    Die Netzwerksettings können dann direkt auf der SD-Karte, bevor diese im Raspberry landen, in der Datei octopi-network.txt eingestellt werden.

     

     

    Somit muss der Raspberry nicht extra an einen Bildschirm angeschlossen werden, die Verbindung erfolgt über SSH:

     

    Der Benutzer ist wieder: pi, das Kennwort:raspberry

    Die initialen Settings können wieder mit folgendem Befehl eingestellt werden:

    sudo raspi-config

    1) Expand Filesystem

    2) change Password

    sollte eine Webcam angeschlossen sein:

    6) Enable camera

    Deaktivieren der Kamera-LED

    in der Datei:  sudo nano /boot/config.txt

    disable_camera_led=1

    Fehler beim Download zusätzlicher Pakete: SSLError: bad handshake

    Sollte es an dieser Stelle nicht möglich sein bestimmte Paket zu installieren, könnte das an einer falschen Uhrzeit liegen:

    sudo apt-get install python-setuptools python-pip

    Fehler:

    Exception:
    Traceback (most recent call last):
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/commands/install.py", line 299, in run
    requirement_set.prepare_files(finder)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/req/req_set.py", line 577, in _prepare_file
    session=self.session, hashes=hashes)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 810, in unpack_url
    hashes=hashes
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 649, in unpack_http_url
    hashes)

    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 842, in _download_http_url

    stream=True,
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/download.py", line 378, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 597, in send
    history = [resp for resp in gen] if allow_redirects else []
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 195, in resolve_redirects
    **adapter_kwargs
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/cachecontrol/adapter.py", line 46, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
    File "/home/pi/oprint/local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
    SSLError: ("bad handshake: Error([('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')],)",)

    Power GPIO

    Hier nur einmal ein Screenshot: Die Einrichtung eines Relais um den Strom ein- und auszuschalten werde ich zu einem späteren Zeitpunkt näher beschreiben ...

    Immer die richtige Zeit: NTP

    aktuelle Zeitzone einstellen / kontrollieren

    pi@octopi:~ $ sudo dpkg-reconfigure tzdata
    pi@octopi:~ $ sudo apt-get purge ntp
    pi@octopi:~ $ sudo apt-get update
    pi@octopi:~ $ sudo apt-get install ntpdate
    sudo crontab -e

    Damit der Raspi die Zeit bei jedem Start aktualisiert, habe ich folgende Zeile in die Datei rc.local eingetragen:

    pi@octopi:~ $ sudo nano /etc/rc.local

    ntpdate -s 0.de.pool.ntp.org

    Zugriff aus dem Internet

    Zusätzliche Authentifizierung:

    File /etc/haproxy/haproxy.cfg

    global
    maxconn 4096
    user haproxy
    group haproxy
    log 127.0.0.1 local1 debug

    defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    option redispatch
    option http-server-close
    option forwardfor
    maxconn 2000
    timeout connect 5s
    timeout client 15min
    timeout server 15min

    userlist L1
    group G1
    user admin insecure-password ???????????????? groups G1


    frontend public
    bind *:80
    bind 0.0.0.0:443 ssl crt /etc/ssl/snakeoil.pem
    option forwardfor except 127.0.0.1
    use_backend webcam if { path_beg /webcam/ }
    default_backend octoprint
    errorfile 503 /etc/haproxy/errors/503-no-octoprint.http

    backend octoprint
    reqrep ^([^\ :]*)\ /(.*) \1\ /\2
    reqadd X-Scheme:\ https if { ssl_fc }
    option forwardfor
    server octoprint1 127.0.0.1:5000
    acl AuthOkay http_auth(L1)
    http-request auth realm octoprint if !AuthOkay

    backend webcam
    reqrep ^([^\ :]*)\ /webcam/(.*) \1\ /\2
    server webcam1 127.0.0.1:8080

    Syncthing

    Um Daten auf andere Geräte zu synchronisiseren habe ich am Raspberry Syncthing eingerichtet:

    https://jankarres.de/2014/09/raspberry-pi-bittorrent-sync-alternative-syncthing-installieren/

    pi@octopi:~ $ sudo mkdir /etc/syncthing
    pi@octopi:~ $ cd /etc/syncthing
    pi@octopi:/etc/syncthing $ sudo wget https://github.com/syncthing/syncthing/releases/download/v0.14.23/syncthing-linux-arm-v0.14.23.tar.gz                                                                                                                                       
    pi@octopi:sudo tar xvzf syncthing-linux-arm-v0.14.23.tar.gz
    
    pi@octopi:/etc/syncthing $ sudo rm syncthing-linux-arm-v0.14.23.tar.gz
    pi@octopi:/etc/syncthing $ sudo mv syncthing-linux-arm-v0.14.23/syncthing ../
    pi@octopi:/etc/syncthing $ sudo chmod -x syncthing
    sudo ln -s /etc/syncthing/syncthing /usr/bin/syncthing
    nano ~/.config/syncthing/config.xml

    <gui enabled="true" tls="false" debugging="false">
    <address>192.168.0.115:8384</address> 

    Autostart:

    sudo nano /etc/init.d/syncthing

    siehe:  Syncthing einrichten: unlimitierte private Dropbox - Autostart 

    UploadOrdner:

    chmod 777 -R /home/pi/.octoprint/uploads/

    installierte Plugins

    Hier eine Liste meiner zusätzlich installierten Plugins:

    Autoselect Plugin (0.1.0)

    Automatically selects freshly uploaded files for printing if no print job is currently active.

    CuraEngine (<= 15.04) 

    Adds support for slicing via CuraEngine versions up to and including version 15.04 from within OctoPrint

    DisplayProgress (0.1.2)

    Displays print progress on the printer's display

    PSU Control (0.1.4)

    Control ATX/AUX power supply.

    Slic3r (1.1.0)

    Adds support for slicing via Slic3r from within OctoPrint

    Slicer (1.2.7)

    A full-blown GUI-based slicer. Rotate and scale model; set layer height and other critical parameters.

    Temperature Failsafe (0.1.0)

    OctoPrint plugin to execute a shell command on temperature threshold violations

    TouchUI (0.3.7)

    A touch friendly interface for a small TFT modules and or phones

    Artikel im Bereich OctoPi Installation



    Feedback: