Управление питанием принтера через Octoprint: различия между версиями

Материал из Ender 3 Wiki
Перейти к навигации Перейти к поиску
 
(не показано 6 промежуточных версий 2 участников)
Строка 3: Строка 3:
 
# Выключать питание принтера при возникновении ошибок при печати или обрыве связи октопринта с принтером
 
# Выключать питание принтера при возникновении ошибок при печати или обрыве связи октопринта с принтером
 
<b>Что потребуется:</b>
 
<b>Что потребуется:</b>
# Твердотельное реле, например такое https://is.gd/CzGbqn (SSR-25DA)
+
# Твердотельное реле, например такое https://is.gd/faLczI (SSR-25DA). Это клон бренда FOTEK, оригиналов я на Али не нашёл
 
# Установленный Octoprint на один из одноплатных компьютеров(Например https://is.gd/Vvaclx), доступ к одноплатнику по ssh.  
 
# Установленный Octoprint на один из одноплатных компьютеров(Например https://is.gd/Vvaclx), доступ к одноплатнику по ssh.  
 
# Провода для управления реле, например такие https://is.gd/gGW4Qx
 
# Провода для управления реле, например такие https://is.gd/gGW4Qx
 
# Опционально: Паяльник, припой, флюс, изолента
 
# Опционально: Паяльник, припой, флюс, изолента
<b>Начнем:</b>
+
<b>Начнем:</b><br>
 
1. Отключаем блок питания от электроники принтера
 
1. Отключаем блок питания от электроники принтера
 
[[Файл:Photo 2019-11-26 20-18-39.jpg|200px|thumb|left]]
 
[[Файл:Photo 2019-11-26 20-18-39.jpg|200px|thumb|left]]
Строка 22: Строка 22:
 
5. Наращиваем маленький проводочек. Подойдет кабель 16-18 AWG. Выводим свободные концы наружу.
 
5. Наращиваем маленький проводочек. Подойдет кабель 16-18 AWG. Выводим свободные концы наружу.
 
[[Файл:Photo 2019-11-26 20-50-08.jpg|200px|thumb|left]]
 
[[Файл:Photo 2019-11-26 20-50-08.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br>
+
<br><br><br><Br><br><br><br><br><br><br>
 
6. Прикручиваем блок питания обратно. Подсоединяем наши проводочки к выходам 1 и 2 реле. Реле закрепляем на раме. Я приклеил на двусторонний скотч
 
6. Прикручиваем блок питания обратно. Подсоединяем наши проводочки к выходам 1 и 2 реле. Реле закрепляем на раме. Я приклеил на двусторонний скотч
[[Файл:Photo 2019-11-22 17-01-48.jpg|400px|thumb|left]]
+
[[Файл:Photo 2019-11-22 17-01-48.jpg|200px|thumb|left]]
 
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
 
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
 
7. Выход 4(-) реле присоединяем к 39 пину нашего одноплатного компьютера, 3(+) присоединяем к 40 пину нашего одноплатного компьютера. Нумерация начинается с квадратика на обратной стороне платы
 
7. Выход 4(-) реле присоединяем к 39 пину нашего одноплатного компьютера, 3(+) присоединяем к 40 пину нашего одноплатного компьютера. Нумерация начинается с квадратика на обратной стороне платы
[[Файл:Photo 2019-11-26 21-08-17.jpg|200px|thumb|left]]
+
[[Файл:Photo 2019-11-26 21-08-17.jpg|400px|thumb|left]]
 +
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br><br>
 +
8. Приступаем к настройке. Заходим по ssh на наш одноплатный компьютер под пользователем root
 +
9. Переходим в домашнюю директорию пользователя, под которым работает Ocroprint(Для raspberry pi это пользователь pi. Для пользователей [https://github.com/Nebari-xx/octoprint_installer нашего установщика] - пользователь octo). <pre>cd /home/octo</pre>
 +
10. Если у вас не Raspberry Pi - скачиваем библиотеку для управления пинами на нашем одноплатном компьютере. Если Raspberry Pi - переходим к шагу 13<br>
 +
Для Orange Pi Lite это
 +
<pre>
 +
git clone https://github.com/zhaolei/WiringOP.git -b h3 && cd WiringOP
 +
</pre>
 +
11. Устанавливаем библиотеку
 +
<pre>
 +
chmod +x ./build
 +
sudo ./build
 +
</pre>
 +
12. Проверяем работоспособность
 +
<pre>
 +
cd ..
 +
gpio readall
 +
</pre>
 +
Должна появиться подобная таблица
 +
<pre>
 +
+-----+-----+----------+------+---+-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+---+------+----------+-----+-----+
 +
</pre>
 +
13. Создаем папку для скриптов включения и выключения принтеров и скачиваем сами скрипты
 +
<pre>
 +
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
 +
</pre>
 +
14. Проверяем работоспособность:<br>
 +
Включение принтера
 +
<pre>
 +
./poweron.sh
 +
</pre>
 +
Выключение принтера
 +
<pre>
 +
./poweroff.sh
 +
</pre>
 +
15. Заходим в веб-интерфейс Octoprint, ставим плагин PSU Control. После установки Octoprint попросит перезапустить себя. Перезапускаем
 +
[[Файл:Screenshot 20191126 234723.png|400px|thumb|left]]
 +
<br><br><br><Br><br><br><br><br><br><Br><br><br><br>
 +
16. Настраиваем PSU Control. Сохраняем настройки. Проверяем включение/выключение принтера по кнопке с значком молнии вверху
 +
[[Файл:Screenshot 20191126 235506.png|400px|thumb|left]]
 +
[[Файл:Screenshot 20191126 235541.png|400px|thumb|left]]
 +
<br><br><br><Br><br><br><br><br><br><Br><br><br>
 +
<br><br><br><Br><br><br><br><br><br><Br><br><br><br>
 +
17. Если все прошло успешно - остался последний шаг. Настройка отключения питания при ошибках и обрыве связи с принтером.<br>
 +
Находим конфигурационный файл Octoprint. Он обычно лежит в папке пользователя, в подпапке .octoprint/config.yaml<br>
 +
Добавляем в конец следующий код
 +
<pre>
 +
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
 +
</pre>
 +
Сохраняем. Перезапускаем Octoprint.<br>
 +
Все готово! Enjoy!
 +
 
 +
<b>P.S.</b> Если не работает автоматическое выключение питания принтера по окончании печати есть другой способ:<br>
 +
P.S.1: Изменяем настройки плагина PSU Control в соответствии с картинкой:
 +
[[Файл:PSU_control.JPG|400px|thumb|left]]
 +
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br><Br><br><br>
 +
P.S.2: Добавляем к завершающему G-коду в слайсере следующие строчки:<pre>
 +
M109 R50 ; Wait for extruder cooldown
 +
M81 ; Turn OFF printer
 +
</pre>
 +
Команда <b>M109 R50</b> Ждет охлаждения хотенда до 50 градусов, после чего выполняется следующая команда <b>M81</b> на выключение питания принтера. Этот вариант работает безотказно.

Текущая версия на 22:43, 3 августа 2020

Цели:

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

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

  1. Твердотельное реле, например такое https://is.gd/faLczI (SSR-25DA). Это клон бренда FOTEK, оригиналов я на Али не нашёл
  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 на выключение питания принтера. Этот вариант работает безотказно.