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

Материал из Ender 3 Wiki
Перейти к навигации Перейти к поиску
Новая страница: «<b>Цели:</b> # Выключать питание принтера по окончании печати и охлаждении хотенда до 50 град…»
 
Нет описания правки
 
(не показано 11 промежуточных версий 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. Отключаем блок питания от электроники принтера
[[Файл:Photo 2019-11-26 20-18-39.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
2. Откручиваем блок питания и снимаем его
[[Файл:Photo 2019-11-26 20-35-15.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
3. Снимаем защитный кожух проводки
[[Файл:Photo 2019-11-26 20-41-01.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
4. Отсоединяем два провода от тумблера включения питания принтера
[[Файл:Photo 2019-11-26 20-42-50.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br><Br><br><br><br><br><br>
5. Наращиваем маленький проводочек. Подойдет кабель 16-18 AWG. Выводим свободные концы наружу.
[[Файл:Photo 2019-11-26 20-50-08.jpg|200px|thumb|left]]
<br><br><br><Br><br><br><br><br><br><br>
6. Прикручиваем блок питания обратно. Подсоединяем наши проводочки к выходам 1 и 2 реле. Реле закрепляем на раме. Я приклеил на двусторонний скотч
[[Файл: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>
7. Выход 4(-) реле присоединяем к 39 пину нашего одноплатного компьютера, 3(+) присоединяем к 40 пину нашего одноплатного компьютера. Нумерация начинается с квадратика на обратной стороне платы
[[Файл: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> на выключение питания принтера. Этот вариант работает безотказно.

Текущая версия от 19: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. Отключаем блок питания от электроники принтера
















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
















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
















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
















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











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
















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

















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 попросит перезапустить себя. Перезапускаем














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


























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 в соответствии с картинкой:



















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

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

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