Управление питанием принтера через Octoprint

Материал из Ender 3 Wiki
Перейти к навигации Перейти к поиску

Цели:

  1. Выключать питание принтера по окончании печати и охлаждении хотенда до 50 градусов
  2. Выключать питание принтера при возникновении ошибок при печати или обрыве связи октопринта с принтером

Что потребуется:

  1. Твердотельное реле, например такое https://is.gd/CzGbqn (SSR-25DA)
  2. Установленный Octoprint на один из одноплатных компьютеров(Например https://is.gd/Vvaclx), доступ к одноплатнику по ssh.
  3. Провода для управления реле, например такие https://is.gd/gGW4Qx
  4. Опционально: Паяльник, припой, флюс, изолента

Начнем:
1. Отключаем блок питания от электроники принтера

Photo 2019-11-26 20-18-39.jpg
















2. Откручиваем блок питания и снимаем его

Photo 2019-11-26 20-35-15.jpg
















3. Снимаем защитный кожух проводки

Photo 2019-11-26 20-41-01.jpg
















4. Отсоединяем два провода от тумблера включения питания принтера

Photo 2019-11-26 20-42-50.jpg
















5. Наращиваем маленький проводочек. Подойдет кабель 16-18 AWG. Выводим свободные концы наружу.

Photo 2019-11-26 20-50-08.jpg











6. Прикручиваем блок питания обратно. Подсоединяем наши проводочки к выходам 1 и 2 реле. Реле закрепляем на раме. Я приклеил на двусторонний скотч

Photo 2019-11-22 17-01-48.jpg
















7. Выход 4(-) реле присоединяем к 39 пину нашего одноплатного компьютера, 3(+) присоединяем к 40 пину нашего одноплатного компьютера. Нумерация начинается с квадратика на обратной стороне платы

Photo 2019-11-26 21-08-17.jpg

















8. Приступаем к настройке. Заходим по ssh на наш одноплатный компьютер под пользователем root

9. Переходим в домашнюю директорию пользователя, под которым работает Ocroprint(Для raspberry pi это пользователь pi. Для пользователей нашего установщика - пользователь octo).

cd /home/octo

10. Если у вас не Raspberry Pi - скачиваем библиотеку для управления пинами на нашем одноплатном компьютере. Если Raspberry Pi - переходим к шагу 13
Для Orange Pi Lite это

git clone https://github.com/zhaolei/WiringOP.git -b h3 && cd WiringOP

11. Устанавливаем библиотеку

chmod +x ./build
sudo ./build

12. Проверяем работоспособность

cd ..
gpio readall

Должна появиться подобная таблица

+-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT3 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT3 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT3 | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT3 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT3 | 0 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT3 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT3 | 0 | 21 || 22 | 0 | ALT3 | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT3 | 0 | 23 || 24 | 0 | ALT3 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT3 | 0 | 27 || 28 | 0 | ALT3 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 | ALT3 | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT3 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT3 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+

13. Создаем папку для скриптов включения и выключения принтеров и скачиваем сами скрипты

mkdir power_scripts
cd power_scripts
wget https://raw.githubusercontent.com/Nebari-xx/octoprint_installer/master/poweron.sh
wget https://raw.githubusercontent.com/Nebari-xx/octoprint_installer/master/poweroff.sh
chmod +x poweron.sh
chmod +x poweroff.sh

14. Проверяем работоспособность:
Включение принтера

./poweron.sh

Выключение принтера

./poweroff.sh

15. Заходим в веб-интерфейс Octoprint, ставим плагин PSU Control. После установки Octoprint попросит перезапустить себя. Перезапускаем

Screenshot 20191126 234723.png














16. Настраиваем PSU Control. Сохраняем настройки. Проверяем включение/выключение принтера по кнопке с значком молнии вверху

Screenshot 20191126 235506.png
Screenshot 20191126 235541.png


























17. Если все прошло успешно - остался последний шаг. Настройка отключения питания при ошибках и обрыве связи с принтером.
Находим конфигурационный файл Octoprint. Он обычно лежит в папке пользователя, в подпапке .octoprint/config.yaml
Добавляем в конец следующий код

events:
  enabled: true
  subscriptions:
  - command: /home/octo/power_scripts/poweroff.sh
    event: Disconnected
    type: system
  - command: /home/octo/power_scripts/poweroff.sh
    event: Error
    type: system

Сохраняем. Перезапускаем Octoprint.
Все готово! Enjoy!

P.S. Если не работает автоматическое выключение питания принтера по окончании печати есть другой способ:
P.S.1: Изменяем настройки плагина PSU Control в соответствии с картинкой:

PSU control.JPG



















P.S.2: Добавляем к завершающему G-коду в слайсере следующие строчки:

M109 R50 ; Wait for extruder cooldown
M81 ; Turn OFF printer

Команда M109 R50 Ждет охлаждения хотенда до 50 градусов, после чего выполняется следующая команда M81 на выключение питания принтера. Этот вариант работает безотказно.