OctoPrint включение принтера и печать по расписанию.
Замена штатной платы в связке с Raspberry Pi и управлением по OctoPrint вдохнула в мой бюджетный Ender 3 PRO новую жизнь, а мне подарила новые впечатления. Рано или поздно задался вопросом, а как в этой связке настроить печать по расписанию. Ночью, даже при новых тихих драйверах, не сильно приятно слышать возню принтера, а вот если бы рано утром печать начиналась автоматически, это было бы здорово. Поиск ответа особо результатов не дал. Сделал по своему, все работает как и планировалось. Вот решил поделиться.
1. Настроил питание принтера по видео Сергея Ирбиса (ссылка) через релейный модуль для Arduino. Очень важно прописать команды включения и отключения принтера в файле /home/pi/.octoprint/config.yaml. У меня блок, описывающий новые кнопки, выглядит так:
system:
actions:
- action: power_on
command: /home/pi/OctoPrint/sh/poweron.sh
confirm: Turn on printer.
name: Printer ON
- action: power_off
command: /home/pi/OctoPrint/sh/poweroff.sh
confirm: Turn off printer.
name: Printer OFF
Файл config.yaml очень чувствителен к структуре табуляции, так что предоставленный кусок кода только для примера.
2. Управление командами OctoPrint сделал на его API в простом Shell скрипте. API в ответ формирует json файл, и чтоб его распарсить, установил первое что подсказал гугл. Выполнил команду:
sudo apt install jq
3. В папке где лежат скрипты управления питанием принтера (у меня /home/pi/OctoPrint/sh/) создал новый файл autoprint.sh со следующем содержанием:
#!/bin/bash
# Vars
FILE="$(date +%Y-%m-%d_%H).gcode"
SERVER="http://192.168.0.15:5000" # Пишем домен своего сервера OctoPrint в сети;
API="37868768768787687876" # Пишем API для подключения к OctoPrint;
REQUEST=`curl -H "X-Api-Key: $API" -X GET $SERVER/api/files/local/$FILE | jq '.name'`
if [[ "$REQUEST" = "\"$FILE\"" ]]; then
curl -H "X-Api-Key: $API" -X POST $SERVER/api/system/commands/custom/power_on
sleep 30s
curl -H "X-Api-Key: $API" -H "Content-Type: application/json" --request POST --data '{"command": "connect"}' $SERVER/api/connection
sleep 10s
curl -H "X-Api-Key: $API" -H "Content-Type: application/json" --request POST --data '{"command": "select", "print": "true"}' $SERVER/api/files/local/$FILE
else
echo "Файл не найден. $FILE"
exit 1
fi
4. В заключении создал задачу в cron для исполнения скрипта каждый день с 5ти утра до 12ти. Запустил команду от пользователя pi:
crontab -e
При первом запуске предложит выбрать желаемый редактор, и в открывшемся файле в конец вставил строку:
01 05-12 * * * /home/pi/OctoPrint/sh/autoprint.sh
Опишу принцип работы. Каждый день с 5ти утра до 12ти дня раз в час cron запускает скрипт, который берет текущую дату и проверяет в загруженных файлах OctoPrint файл с названием вида YYYY-mm-dd_hh.gcode, где YYYY - год, mm - номер месяца, dd - день месяца, hh - час дня от 05 до 12. Если к примеру я хочу чтоб завтра в 7 часов утра принтер начал автоматически печатать нужную мне модель, я переименую нарезанный в слайсере gcode в файл 2020-02-18_07.gcode и через интерфейс OctoPrint просто его загружу в список (Upload). В назначенную дату и час скрипт обнаружит файл, отправит API команду на исполнение прописанной ранее кнопки включить релейный модуль, далее отправит API команду на подключение OctoPrint к принтеру и затем команду на печать файла.
Вопросы и конструктивную критику пишите в комментарии, по возможности отвечу. Спасибо ;)
Еще больше интересных статей
DIY 3D печать напрямую ПЕТ лентой из пластиковых бутылок.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
продолжаю обгрейтить своего дедушку HERCULES STRONG или то что от него осталось
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
пос...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Люди очнитесь, сушилка для пла...
а шнековые экструдеры с выходн...
Имеете ввиду торец базы? Дейс...
Добрый день. Кто пользуется сл...
Здравствуйте Попытаюсь ма...
добрый день, столкнулся с тако...