Настройка OctoPrint для работы с несколькими принтерами
Если Raspberry будет общаться с внешним миром через wi-fi то на флешке правим файл octopi-wpa-supplicant.txt
убираем перед текстом знаки # и вписываем имя своей сети и пароль например так:
network={Сначала мы настраиваем OctoPrint только для одного принтера, а после этого - для нескольких принтеров и веб-камер.
ssid='SSID'
psk='WI_FI_PASS'
}
Вставляем в малинку SD карту, подключаем к с ней монитор или телевизор с клавиатурой. и подаем питание.
после загрузки на экране будет виден IP адрес который получила малинка от роутера и приглашение ввести логин
в моем случае 192.168.1.5. Стандартный логин: pi пароль: raspberry
Далее настраиваем подключение к одному из принтеров зайдя с любого компьютера на сервер Octorint через web браузер в моем случае по адресу http://192.168.1.5
Для каждого принтера необходимо запустить отдельный экземпляр OctoPrint с другим портом. Если вы хотите использовать более одной веб-камеры, вам также необходимо запустить отдельные экземпляры MJPG-Streamer для каждой веб-камеры.
Дальнейшую настройку можно производить с клавиатуры и монитора gодключенного к Raspberry PI или подключившись через SSH с другого компьютера например с помощью PuTTY.выбрав протокол SSH, вводим IP адрес Octoprint нажимаем Connect
В открывшемся окне вводим логин и парольСледующим шагом будет подключение нескольких принтеров к Raspberry PI
При подключении принтеров порты именуются как /dev/ttyUSB0, /dev/ttyUSB1 и так далее
Причем порты будут именоваться в порядке их подключения и не факт что после следующей загрузки принтер не поменяем имя порта. для этого мы выполним привязку порта и создадим именованные линки к ним
даем в консоли команду
pi@octopi:~ $ ls -al /dev/tty* | grep USBу меня нашелся для начала один порт
crw-rw---- 1 root dialout 188, 0 Sep 6 18:27 /dev/ttyUSB0
найдем его уникальный идентификатор командами
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB0 --attribute-walk|grep idVendor
ATTRS{idVendor}=='0403'
ATTRS{idVendor}=='0424'
ATTRS{idVendor}=='1d6b'
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB0 --attribute-walk|grep idProduct
ATTRS{idProduct}=='6001'
ATTRS{idProduct}=='2514'
ATTRS{idProduct}=='0002'
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB0 --attribute-walk|grep devpathПолучили необходимые значения для одного порта
Udevadm info starts with the device specified by the devpath and then
ATTRS{devpath}=='1.2'
ATTRS{devpath}=='1'
ATTRS{devpath}=='0'
idVendor=='0403'
idProduct=='6001'
devpath=='1.2'
аналогично для других принтеров и портов
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB1 --attribute-walk|grep idVendorполучаем для второго принтера значения
ATTRS{idVendor}=='1a86'
ATTRS{idVendor}=='0424'
ATTRS{idVendor}=='1d6b'
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB1 --attribute-walk|grep idProduct
ATTRS{idProduct}=='7523'
ATTRS{idProduct}=='2514'
ATTRS{idProduct}=='0002'
pi@octopi:~ $ udevadm info -q all -n /dev/ttyUSB1 --attribute-walk|grep devpath
Udevadm info starts with the device specified by the devpath and then
ATTRS{devpath}=='1.3'
ATTRS{devpath}=='1'
ATTRS{devpath}=='0'
idVendor=='1a86'
idProduct=='7523'
devpath=='1.3'
теперь мы знаем идентификаторы портов принтеров и сделаем link для портов с привязкой к его идентификатору
командой открываем файл /etc/udev/rules.d/95-ads7846.rule для редактирования
sudo nano /etc/udev/rules.d/95-ads7846.rulesи добавляем строки вписав полученные идентификаторы со звездочкой в начале и на конце, и новые имена портов. У меня это порты ttyUSBPrusa и ttyUSBHBotBIG
SUBSYSTEM=='tty', ATTRS{idVendor}=='0403', ATTRS{idProduct}=='6001', ATTRS{devpath}=='1.2', SYMLINK+='ttyUSBPrusa'Важно давать имена портам начинающиеся с ttyUSB иначе Octoprint может их не видеть в web интерфейсе
SUBSYSTEM=='tty', ATTRS{idVendor}=='1a86', ATTRS{idProduct}=='7523', ATTRS{devpath}=='1.3', SYMLINK+='ttyUSBHBotBIG'
сохраняем файл и даем команду
pi@octopi:~ $ ls -al /dev/tty* | grep USBесли все нормально то видим новые порты
lrwxrwxrwx 1 root root 7 Sep 6 22:58 /dev/ttyUSBHBotBIG -> ttyUSB1
lrwxrwxrwx 1 root root 7 Sep 6 22:58 /dev/ttyUSBPrusa -> ttyUSB0
crw-rw---- 1 root dialout 188, 0 Sep 6 22:58 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Sep 6 22:58 /dev/ttyUSB1
lrwxrwxrwx 1 root root 7 Sep 6 22:58 /dev/ttyUSBHBotBIG -> ttyUSB1Теперь порты не потеряются и будут иметь понятный для нас вид
lrwxrwxrwx 1 root root 7 Sep 6 22:58 /dev/ttyUSBPrusa -> ttyUSB0
Настраиваем еще экземпляры Octoprint
Копируем каталог Octoprint
cp -R /home/pi/.octoprint /home/pi/.octoprint2Копируем конфигурацию Octoprint
sudo cp /etc/default/octoprint /etc/default/octoprint2Меняем настройки в файле конфигурации
sudo nano /etc/default/octoprint2Необходимо поправить пару строк
HOST=0.0.0.0Копируем скрипт запуска
PORT=5001
DAEMON_ARGS='--host=$HOST --port=$PORT --basedir /home/pi/.octoprint2/'
sudo cp /etc/init.d/octoprint /etc/init.d/octoprint2И правим его
sudo nano /etc/init.d/octoprint2В верхней части этого файла должны быть вносим изменения!
Измените каждое имя от «octoprint» до «octoprint2» и «OctoPrint» до «OctoPrint2»,
но оставьте строку «DAEMON=/usr/bin/octoprint» нетронутой!!!!!
Примерно так:
#!/bin/shПерезапускаем демона
### BEGIN INIT INFO
# Provides: octoprint2
# Required-Start: $local_fs networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OctoPrint2 daemon
# Description: Starts the OctoPrint2 daemon with the user specified in
# /etc/default/octoprint2.
### END INIT INFO
# Author: Sami Olmari
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC='OctoPrint2 Daemon'
NAME='OctoPrint2'
DAEMON=/usr/bin/octoprint
PIDFILE=/var/run/$NAME.pid
PKGNAME=octoprint2
SCRIPTNAME=/etc/init.d/$PKGNAME
sudo systemctl daemon-reloadЧтобы все автоматически запускалось обновляем rc.d
sudo update-rc.d octoprint2 defaultsЗапускаем новый экземпляр Octoprint
sudo /etc/init.d/octoprint2 startПроверяем был ли успешно добавлен сервис
systemctl status octoprint2.serviceВсе должно работать как надо статус должен быть Active. (Для выхода жмем Ctrl+C)
После данных манипуляций у нас будет два сервиса Octoprint работающих на портах 5000 и 5001 к которым можно обратиться по IP адресу в моем случае
http://192.168.1.5:5000/
http://192.168.1.5:5001/
и в каждом выбрав для работы соответствующий порт
Для более удобного обращения к принтерам я рекомендую настроить HaProxy
В этом случае можно будет обращаться не по портам а по именам каталогов к соотвеnствующему экземпляру Octoprint
Например сделаем два экземпляра для наших принтеров с обращением
http://192.168.1.5/prusa/
http://192.168.1.5/bighbot/
Остановим службу haproxy
sudo /etc/init.d/haproxy stopНа всякий случай сделаем резервную копию конфига haproxy
sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.oldПоправим конфиг
sudo nano /etc/haproxy/haproxy.cfgнам нужно добавить в секцию конфига записи
в
frontend publicдобавляем
use_backend bighbot if { path_beg /bighbot/ }и для каждого принтера свою секцию с описанием настроек
use_backend prusa if { path_beg /prusa/ }
backend bighbotдолжен получиться примерно такой конфиг
reqrep ^([^ :]*) /bighbot/(.*) 1 /2
option forwardfor
server octoprint1 127.0.0.1:5000
acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
reqadd X-Scheme: https if needs_scheme { ssl_fc }
reqadd X-Scheme: http if needs_scheme !{ ssl_fc }
reqadd X-Script-Name: /bighbot
backend prusa
reqrep ^([^ :]*) /prusa/(.*) 1 /2
option forwardfor
server octoprint1 127.0.0.1:5001
acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
reqadd X-Scheme: https if needs_scheme { ssl_fc }
reqadd X-Scheme: http if needs_scheme !{ ssl_fc }
reqadd X-Script-Name: /prusa
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
frontend public
bind :::80 v4v6
bind :::443 v4v6 ssl crt /etc/ssl/snakeoil.pem
option forwardfor except 127.0.0.1
use_backend bighbot if { path_beg /bighbot/ }
use_backend prusa if { path_beg /prusa/ }
use_backend webcam if { path_beg /webcam/ }
default_backend webcam
backend bighbot
reqrep ^([^ :]*) /bighbot/(.*) 1 /2
option forwardfor
server octoprint1 127.0.0.1:5000
acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
reqadd X-Scheme: https if needs_scheme { ssl_fc }
reqadd X-Scheme: http if needs_scheme !{ ssl_fc }
reqadd X-Script-Name: /bighbot
backend prusa
reqrep ^([^ :]*) /prusa/(.*) 1 /2
option forwardfor
server octoprint1 127.0.0.1:5001
acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
reqadd X-Scheme: https if needs_scheme { ssl_fc }
reqadd X-Scheme: http if needs_scheme !{ ssl_fc }
reqadd X-Script-Name: /prusa
backend webcam
reqrep ^([^ :]*) /webcam/(.*) 1 /2
server webcam1 127.0.0.1:8080
errorfile 503 /etc/haproxy/errors/503-no-webcam.http
sudo /etc/init.d/haproxy stopНа этом настройка завершена и у нас доступны несколько именованных экземпляров OctorintВсем желающим могу оперативно ответить на своей странице в ВКhttps://vk.com/kerbetosПри первоначальной настройке использовались материалы из статьи http://thomas-messmer.com/index.php/14-free-knowledge/howtos/79-setting-up-octoprint-for-multiple-printers
Еще больше интересных статей
Ремонт принтера Аникубик фотон М3+ (3D Anycubic Photon M3 Plus)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
через 5 месяцев эксплуатации начало рвать на разных расс...
Tronxy XY-3 SE, директ, klipper - гонка за скоростью. Продолжение.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил продолжить тему, принтер претерпел изменения.
Во...
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Я же сказал что на момент всех...
Благодарю большое, под заваляв...
Все же смущает меня пластина с...
В общем проблема в чём возникл...
Подскажите почему такой 1-ый в...
Поменяла нагревательную часть...
Нужно ли брать защитную пленку...