Удалённое управление 3D принтером. OctoPrint

После переноса 3D принтера в другое помещение мне приходится постоянно бегать с SD картой между принтером и компьютером. Это конечно полезно для здоровья, но немного отвлекает от других дел :) Вот и решил я исключить бег из процесса печати. В наше время тотального Wi-Fi нужно его задействовать и в управлении 3D принтером. Мне нужно не так уж и много — скидывать G-код на SD карту в принтере и удалённо запускать печать в удобное мне время. Бонусом можно добавить функцию управления включением блока питания принтера через реле.

Что для этого требуется?

Поизучав этот вопрос в Интернете я пришёл к выводу, что мне понадобится Raspberry Pi 2 и USB Wi-Fi адаптер для неё.

IMG_7285

Выбираю программное обеспечение

Следующий этап это выбор программного обеспечения — принт-сервера. Есть два основных кандидата OctoPrint и AstroPrint. Мне нужно чтобы было просто и удобно. Почитаем сравнения.

AstroPrint

Везде пишут, что AstroPrint проще и удобнее. В бесплатной версии имеет только базовые функции и самая неудобная это управление 3D принтером только из локальной сети. Для управления из Интернета уже нужно платить.

In addition to the free plan, the premium plan includes a plug-and-play Astrobox kit ($ 149) and the following online services for $ 10 / month

OctoPrint

OctoPrint сложнее в установке, но полностью бесплатен.

Repetier-Server

Пока в бетта версии. Можно пробовать, но будут проблемы. Также есть ограничения в бесплатной версии.

 

Сегодня я исследую OctoPrint, а потом возможно вернусь к остальным принт-серверам.

Несколько слов об OctoPrint

octoprint

OctoPrint начинался как ответвление Cura для добавления управления через веб интерфейс. OctoPrint спонсируется испанской компанией BQ. При этом они обещают оставаться OpenSource программным обеспечением и уделять особое внимание принтерам основанным на RepRap.

 

Установка

1. Качаем свежий дистрибутив под названием OctoPi. Ссылка. Распаковываем образ.

2. Скачиваем Win32 Disk Imager для записи образа OctoPi на SD карту. Ссылка. Устанавливаем.

3. Вставляем microSD карту в картридер компьютера.

4. Запускаем Win32 Disk Imager. Открываем образ OctoPi. Записываем его на microSD карту.

2015-11-26_112013

2015-11-26_112236

 

Подключение по кабелю LAN

Если управлять будем по сетевому кабелю с локального компьютера, то осталось всего несколько шагов:

1. Вставляем карту памяти в Raspberry Pi, подключаем сетевой кабель и питание 5В

2. Находим нашу Raspberry Pi в локальной сети, через веб интерфейс маршрутизатора

2015-11-28_123028

3. Переходим по найденному адресу octopi в браузере и задаём свои Логин и Пароль для доступа к управлению принтером

2015-11-26_140309

4. Готово! Вводим свои Логин и Пароль. Осталось подключиться к 3D принтеру для управления им. Реально просто :)

2015-11-26_142316

 

Подключение к домашней сети Wi-Fi

Только у меня цель управлять 3D принтером через Wi-Fi и желательно с телефона через Интернет. Копаем дальше.

Заходим на microSD карту (в картридере) и открываем файл octopi-network.txt. Теперь здесь нужно прописать наши настройки Wi-Fi.

Захожу в веб интерфейс моего маршрутизатора и смотрю настройки Wi-Fi сети. Пароль я и так знаю ;)

2015-11-28_195026

Раскомментирую и заполняю соответствующий блок в octopi-network.txt

2015-11-28_195600

 

Переставляю microSD карту из картридера в Raspberry Pi и подключаю питание 5В. Смотрю активные Wi-Fi соединения в веб интерфейсе маршрутизатора

2015-11-28_201150

Всё наша Raspberry Pi подключена к домашней сети Wi-Fi! Тоже всё просто :)

Если Wi-FI не заработал:
  • Список драйверов для Wi-Fi адаптеров под ОС Debian http://elinux.org/RPi_USB_Wi-Fi_Adapters
  • Просмотр данных по Wi-Fi http://robocraft.ru/blog/electronics/3162.html
  • Инструкция по установке драйвера Wi-Fi адаптера на примере Zyxel NWD2105 (этот адаптер работает без установки драйверов, проверено мной) https://wiki.debian.org/rt2800usb

 

Подключение к глобальной сети Интернет для управления с телефона

Что нам нужно для этого — статичный IP адрес домашнего маршрутизатора в глобальной сети. Его можно подключить у своего провайдера интернета или с помощью онлайн сервисов (http://www.noip.com/ или http://www.dnsdynamic.org). Если маршрутизатор не рвёт соединение с Интернетом его IP остаётся достаточно статичным. Свой IP можно узнать например с помощью онлайн сервиса myip.dnsdynamic.org.

Ещё нужно в маршрутизаторе перенаправить порты, чтобы маршрутизатор понимал к чему мы подключаемся. Если в адресе набрать IP без указания порта откроется веб интерфейс маршрутизатора.То есть для OctoPrint нужно назначить свой порт. Например 5000.

Фиксируем локальный IP адрес Wi-Fi Октопринта, чтобы маршрутизатор его не менял

2015-11-28_233143

Теперь перенаправляем порт 5000 на OctoPrint. Дело в том, что Octoprint слушает 80 порт и если к нему обращаться через порт 5000 он просто не заметит этого. Будем из интернета обращаться к 5000 порту, а маршрутизатор пусть перенаправляет на 80 порт Октопринта.

2015-11-29_184819

Вот и хакерские навыки не понадобились :) А все пишут — Сложно, Linux, SSH. Думаю в новых версиях буде ещё проще.

Вот на своём телефоне запустил через 3G:

2015-11-29_191232

Если подключиться не получается посмотрите настройки антивируса и файрвола. Настройте в них исключения.

Если в маршрутизаторе нет таких настроек, пробуйте настраивать HAProxy.

 

Дополнительно

В инструкции рекомендуется расширить раздел на карте памяти. Я использую карту на 4Гб и не расширяя раздел Октопринт пишет, что свободно 778,9 Мб. Мне и этого не нужно, я планирую хранить файлы и печатать с SD карты 3D принтера. Но процедуру опишу.

Качаем PuTTy — SSH клиент. Запускаем. Вписываем локальный IP адрес OctoPrint.

2015-11-29_195435

Вводим Логин (pi) и Пароль (raspberry). Пароль вводится вслепую. Жмём Enter на клавиатуре.

2015-11-29_195631

В командной строке вводим sudo raspi-config. Каждый раз для подтверждения жмём Enter.

2015-11-29_195740

В первой же строке предлагается Expand Filesystem. Соглашаемся.

2015-11-29_200431

Дальше пишет, что файловая система будет расширена после перезагрузки. Соглашаемся и выбираем стрелками <Finish>. Со всем соглашаемся и OctoPrint перезагружается. PuTTy отключается.

2015-11-29_200756

Проверяю сколько свободного места стало — 1,4Гб. Всё в порядке :)

 

Что я использовал

  1. Raspberry Pi 2
  2. USB-адаптер Wi-Fi Zyxel NWD2105
  3. Маршрутизатор D-Link DIR-620 с прошивкой KEENETIC V1.00(BFW.3)D0
  4. Образ OctoPi версии 1.2.7

 

Выводы

Вот я и подключил архисложный OctoPrint. Я конечно потратил неделю для поиска и понимания простых вариантов настройки для написания этой инструкции и надеюсь кому-то облегчу поиски на неделю, а другие поймут, что и это им по силам. Было сложно? НЕТ!

Мои наблюдения:

  • Raspberry Pi питается от USB, но требует около 1А (но лучше 2А).
  • Raspberry Pi передаёт питание 5В по USB кабелю на Arduino MEGA и соответственно на дисплей 3D принтера.
  • После отключения Raspberry Pi от внешнего питания напряжение на неё подаётся по USB кабелю со стабилизатора Ардуины. А стабилизатор на это не рассчитан. Нужно выключать через меню System веб интерфейса.
  • Файлы с компьютера очень медленно переползают на SD карту принтера. На SD карту Raspberry Pi перекидываются быстро.

 

В будущем планирую исследовать другие устройства и принт-серверы для удалённого управления 3D принтером, а также интересно каким количеством принтеров можно управлять с одной Raspberry Pi. Пока же займусь практическим применением OctoPrint.

KAY_6401_125

Всем удачи и стабильной печати!

Появилась свежая версия Raspberry Pi 3. Описание.

Ссылка на обсуждение на форуме.

Рейтинг: 10

Метки: , ,    2015-12-04      Раздел: Настройка, Принт-сервер  
Автор: Просмотров: 5 293   12 комментариев



12 комментариев на «Удалённое управление 3D принтером. OctoPrint»

  1. Очень хорошие исследования. Pi2 уже имеется, завтра попробую собрать себе аналогию и возможно потом закажу камеру из второй статьи.
    Благодарю за проделанный труд и подробное описание.
    ПысЫ покопавшись в куче барахла, нашел еще и Pi B+ вот теперь думаю, хватит ли ее для этого процесса ?) Жалко Pi2 на это дело пускать теперь )

    Рейтинг: 0
  2. Первое с чем столкнулся — по ссылке указанной выше на сам OctoPrint предлагают максимально 2015-07-02_2015-05-05-octopi-wheezy-0.12.0.zip
    Послу установки на малину, она тут же предлагает сделать апдейт до 1.2.8 что немного смутило с учетом размера дистрибутива в 1 гб.

    Рейтинг: 0
      1. я к тому, что предложенная версия для скачки 0.12.0 а обновление сразу на 1.2.8
        какой то большой разброс версий…. надо поискать более свежий iso (сам пока не нашел)

        Рейтинг: 0
        1. Это у них там с цифрами версий абракадабра. То есть ноль впереди, то нет.

          Рейтинг: 0
  3. Забегая вперед, нашел на play маркете утилиту OctoDroid (их там 2, нужна та, на которой белый осьминог на зеленом фоне — поддерживает камеру) которая умеет управлять OctoPrint с смартфона

    Рейтинг: 0
    1. Лучше вперёд не забегать :D Всё будет *OK*

      Рейтинг: 0
      1. Я так понимаю что ты ее уже тестировал ?
        Я сейчас пробую ставить все это чудо сначало на Pi B+ посмотрим как себя покажет, если будет мало, перенесу потом на Pi 2

        Рейтинг: 0
  4. По горячим следам:
    * с Wi-Fi свистком Tp-Link TL-WN821N малина работает с полпинка
    * лучше сразу установить свой пароль на доступ к малине. Делается это все через ту же команду raspi-config и пункт меню «Change User Password»
    В общей сложности, благодаря инструкции, установка на малину B+ заняла меньше часа — все работает.
    Сейчас допечатается текущая модель и запущу бюст Вовки уже через OctoPrint (нарезанный файл буду пробовать скормить сразу из OctoPrint) завтра отпишусь по результату

    Рейтинг: 0
  5. В общем малина B+ вполне справляется с указанной задачей (включая печать с неё же)
    никаких проблем не обнаружено.
    Были только небольшие косячки с изначальной настройкой самого сервера в плане рабочей области, а в остальном вполне рабочее решение

    Рейтинг: 0
  6. Нашел один косяк в данной схеме работы — если идет печать с малины и в момент печати заного открыть Web интерфейс, то печать на 1-2 сек подвисает пока прогружается web морда….
    Думал сначало что B+ не справляется, установил все заного на Pi2 с разгоном до 1000Mhz но эффект остается.
    Получить данный эффект можно если закрыть web морду и подключиться минут через 5. Если открыть web интерфейс сразу после закрытия — открывается моментально и зависания не происходит.
    Прошу проверить данный косяк на других малинах.

    Рейтинг: 0
    1. Замечал подобное, поэтому веб интерфейс стараюсь держать запущенным во время печати. Хотя с него по моему ничего не регулируется и можно только остановить печать.

      Рейтинг: 0

Добавить комментарий




     
Авторизация
*
*
Регистрация
*
*
*
Перейти на страницу
Яндекс.Метрика