У меня на двух предыдущих так и сделано, только включение\отключение основного БП с апельсины. Теперь хочу чтобы и экран не горел
Управление питанием и прочая автоматизация в 3D принтере
Модератор: Kaktus
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Покупка КИТа СПринтера и ссылки на комплектующие
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Покупка КИТа СПринтера и ссылки на комплектующие
Странно это как-то. У меня отсутствие порта не влияет. Плагин выполняет команду на запуск автоматизации в которой выполняется включение питания, коннект октопринта к принтеру и FIRMWARE_RESTART. SKR питается только при включённом БП. Проверю завтра как оно с мегой работает.
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Покупка КИТа СПринтера и ссылки на комплектующие
Какой то скрипт запускается? Можно глянуть?
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Покупка КИТа СПринтера и ссылки на комплектующие
schs, Это автоматизация в умном доме, но думаю можно и скрипт написать. Дернуть пин малины с реле, отправить октопринту команду через curl. Можно попробовать отправить их через psu. С bash скриптами я не особо знаком, но должно быть не очень сложно.
Команда на подключение:
Команда клипера на перезагрузку:
Позже попробую создать скрипт
Команда на подключение:
Код: Выделить всё
curl -s -H "Content-Type: application/json" -H "X-Api-Key: YOUR_API_KEY" -X POST -d '{ "command":"connect" }' http://YOUR.OCTOPRINT.ADDRESS/api/connection
Код: Выделить всё
echo FIRMWARE_RESTART > /tmp/printer
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Покупка КИТа СПринтера и ссылки на комплектующие
Для начала мне пришлось обновить утилиту для работы с пинами.
Работа с пинами.
Таблица пинов:
gpio readall
Перевод пина в режим OUTPUT (для примера взят пин GPIO. 1) gpio mode 1 out
Включение реле: gpio write 1 1 - устанавливает на пане логическую единицу или HIGH, 3.3v
Отключение реле: gpio write 1 0
sleep 5 - задержка в 5 секунд.
Создаем скрипт на включение, не забываем указать API и ip:
делаем файл исполняемым
Чтобы запустить скрипт, просто вызываем его
Подобная автоматизация у меня реализована через умный дом.
Код: Выделить всё
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
Таблица пинов:
gpio readall
Перевод пина в режим OUTPUT (для примера взят пин GPIO. 1) gpio mode 1 out
Включение реле: gpio write 1 1 - устанавливает на пане логическую единицу или HIGH, 3.3v
Отключение реле: gpio write 1 0
sleep 5 - задержка в 5 секунд.
Создаем скрипт на включение, не забываем указать API и ip:
Код: Выделить всё
sudo nano power_on.sh
Код: Выделить всё
#!/bin/sh
gpio mode 1 out
gpio write 1 1
curl -s -H "Content-Type: application/json" -H "X-Api-Key: API КЛЮЧ" -X POST -d '{ "command":"connect" }' http://OCTOPRINT_IP/api/connection
sleep 5
echo FIRMWARE_RESTART > /tmp/printer
Код: Выделить всё
sudo chmod +x power_on.sh
Код: Выделить всё
/home/pi/power_on.sh
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Покупка КИТа СПринтера и ссылки на комплектующие
Спасибо за примеры. Но тут несколько другая проблема. Как включить принтер по приходу задания, если октопринт видит отсутствие порта принтера?
После включения автореконнект сделал через плагин PortLister, он периодически проверяет порты и подключается к принтеру.
Осталось реализовать собственно включение контроллера принтера по приходу задания.
К клипперу это напрямую не относится, скорее общая автоматизация работы с принтером.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Покупка КИТа СПринтера и ссылки на комплектующие
А разве в PSU использование М80 как триггера не работает? И порт же должен появляться посте подачи питания на мегу.
Эта автоматизация так и делает. Включает питание и отправляет команду на коннект, а firmware_restart необходим конкретно в моем случае.
Здесь в каждой теме оффтоп как бы. Что делать, если из одного вопроса вылилась некоторая проблема? Я не против перейти в соседнюю ветку, но нужно тогда перенести весь диалог, потому что подобные вопросы могут возникнуть вновь.
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Покупка КИТа СПринтера и ссылки на комплектующие
На отдельную тему это не тянет. Вариантов управления питанием всего несколько. Если только еще и алгоритмы защиты обсуждать. Но и тут вариантов не так уж и много. Я бы только добавил, что в этом скрипте можно прописать MQTT команду на включение реле на базе Sonoff. Чтобы не тянуть лишние провода.
Сейчас хочу проверить какой алгоритм необходим для меги с марлином, а так же с клипером.
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Управление питанием и прочая автоматизация в 3D принтере
При подачи питания - появляется.
Исходная позиция - апельсина работает, основной БП и контроллер нет. Порта нет.
Отправляем задание на печать, апельсина файл принимает и пишет в лог ошибку:
2019-12-22 23:28:18,436 - octoprint.filemanager.analysis - INFO - Starting analysis of local:mini_talon_nose_plate_ez_v2.gcode
2019-12-22 23:28:18,441 - octoprint.printer.standard - INFO - Cannot load file: printer not connected or currently busy
т.е. до выдачи M80, как и любого другого gcode не доходит, порта нет.
P.S. Хорошо что тему перенесли, не захламлять ту.
P.P.S. Прописал event:
events:
enabled: true
subscriptions:
- command: /usr/local/scripts/upload_new
event: UpdatedFiles
type: system
Теперь по приходу задания питания включает, но не стартует печать, копаю дальше.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Управление питанием и прочая автоматизация в 3D принтере
Сделал.
В конфиге Octoprint:
events:
enabled: true
subscriptions:
- command: /usr/local/scripts/upload_new {file}
event: MetadataAnalysisStarted
type: system
Скрипт(переносы строк убрать):
#!/bin/sh
#echo file: $1
/usr/local/bin/gpio write 25 1
#sleep 10s
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"conn
ect" }' http://127.0.0.1:5000/api/connection
sleep 30s
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"sele
ct", "print": true }' http://127.0.0.1:5000/api/files/local/$1
В конфиге Octoprint:
events:
enabled: true
subscriptions:
- command: /usr/local/scripts/upload_new {file}
event: MetadataAnalysisStarted
type: system
Скрипт(переносы строк убрать):
#!/bin/sh
#echo file: $1
/usr/local/bin/gpio write 25 1
#sleep 10s
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"conn
ect" }' http://127.0.0.1:5000/api/connection
sleep 30s
/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"sele
ct", "print": true }' http://127.0.0.1:5000/api/files/local/$1
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Управление питанием и прочая автоматизация в 3D принтере
Поздравляю!
В таком случае я не буду проводить эксперименты с марлином и мегой)
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Управление питанием и прочая автоматизация в 3D принтере
Целый день ломаю голову, как вы сделали выбор файла? То есть как подставляется имя файла вместо $1?schs писал(а): ↑22 дек 2019, 20:03/usr/bin/curl -s -H "Content-Type: application/json" -H "X-Api-Key: xx" -X POST -d '{ "command":"sele
ct", "print": true }' http://127.0.0.1:5000/api/files/local/$1
-
- Сообщения: 350
- Зарегистрирован: 15 сен 2017, 19:41
- Имя: Сергей
- Откуда: Apatity
- Благодарил (а): 79 раз
- Поблагодарили: 32 раза
Re: Управление питанием и прочая автоматизация в 3D принтере
Дак абзацем выше:
- command: /usr/local/scripts/upload_new {file}
т.е. выполняем команду(скрипт) с передачей параметра - имя файла.
SPrinter 233, SPrinter mini техно, mini Kossel, anycubic photon mono
-
- Сообщения: 522
- Зарегистрирован: 27 фев 2018, 10:22
- Имя: Дмитрий
- Откуда: Нижний Новгород
- Благодарил (а): 123 раза
- Поблагодарили: 15 раз
Re: Управление питанием и прочая автоматизация в 3D принтере
Я просто не совсем понимаю что это за команда)
За передачу параметров отвечает этот аргумент: {file}?
В скрипте должно быть #echo file: $1 и $1 вместо имени файла? event у вас один или два? Но в любом случае имя походу не передается, печать не начинается.
Или должно быть два скрипта? Автоматизация на включение и передача имени?
Запутался окончательно. Нагуглить ничего толкового не получилось.