- Легко доступен из поиска
- Имеет уникальный функционал, не имеющий аналогов
- Хорошо выглядит на всех устройствах (почти)
- Неубиваемый ( самовосстанавливается при ошибках )
- Лёгкий
- Защищённый
- Непривередливый ( запустится на чём угодно )
- Универсальный ( поддерживает подавляющее большинство существующих принтеров )
- Легко настраивается
- Масштабируем
TODO: Добавить график, на котором отображены реальные значения
- Сайт выводится в поисковой выдаче Яндекса на первой строке при запросе
Hello Printy 3D
. - Мы избавились от всех проводов и вы можете управлять вашим 3d принтером из любой точки мира. И в дополнение реализован уникальный механизм отправки моделей на печать, не имеющий аналогов. Во всех программах для того чтобы отправить модель на печать, нужно подключить 3d принтер к ПК, запустить печать и держать ПК подключённым к принтеру на протяжении процесса печати. У нас же всё реализовано так, что даже при отключении от принтера raspberry pi, он допечатает загруженную модель до конца самостоятельно. Этого удалось достичь благодаря тому что наше приложение работает напрямую с внутренней памятью 3d принтера, загружая в неё 3d модель. А потом с помощью g команды запускает её печать.
- Предыдущая версия с упрощённым меню отображалась на телефонах отлично. С текущим меню следует поработать над адаптивностью. Весь остальной контент на страницах отображается хорошо.
- Система автоматического развёртывания приложения после отправки новой версии кода на github. Работает как в части сервера, так и в части raspberry pi.
- Система для автоматического перезапуска приложения в случае критических сбоев. Работает как в части сервера, так и в части raspberry pi.
- Система для запуска приложения при старте системы. Работает как в части сервера, так и в части raspberry pi.
- Реализована система Graceful Shutdown, для безопасного завершения процессов. Работает как в части сервера, так и в части raspberry pi.
- Реализована система Self-Healing WebSocket, для автоматического переподключения к серверу в случае потери соединения. Работает как на веб клиентах, так и на raspberry pi.
- Соединение между сервером и веб клиентами, а также между сервером и raspberry pi идёт через WebSocket.
- Подключение raspberry pi к принтеру идёт через Serial порт.
- Реализована система авторизации WebSocket подключений. Благодаря ей только авторизованные подключения с raspberry pi и веб клиентов смогут выполнять какие-либо привилегированные действия. До авторизации все сообщения, кроме запросов авторизации игнорируются. И в случае если произошло некое событие в нашей системе неавторизованное устройство о нём уведомлено не будет.
- Только авторизованная raspberry pi будет получать команды отправленные с веб клиентов и только авторизованная raspberry pi сможет отправлять какие-либо сообщения о своём состоянии на сервер.
- Только авторизованные веб клиенты смогут отправлять команды и получать данные о состоянии принтера.
- Так как веб сервер и код для raspberry pi это два независимых компонента, то их можно можно запускать как на разных устройствах (как это сейчас: серверная часть запущена на heroku и доступна на весь интернет, а принтерный компонент запущен на raspberry pi), так и вместе на raspberry pi. Для второго варианта понадобится только изменить лишь одну строчку в конфигурационном файле. И в таком случае панель управления будет доступна исключительно внутри локальной сети по айпи, который она занимает. Выбор за конечным пользователем, что ему удобно.
- Наша система универсальна и непривередлива.
- Код сервера и код для работы с принтером запускается на любом из семейств ОС: Linux, Windows, Mac.
- На любых устройствах, способных запустить эти ОС. Главное чтобы была поддержка интернета и серийных портов (необходимо только для работы с принтером). То есть вы можете использовать не только raspberry pi, но и любые другие (например более дешёвые) микрокомпьютеры.
- Это же касается и вебсервера, который очень нетребователен к ресурсам.
- Отдельно хочется подчеркнуть, что наша система также может работать со всеми принтерами, которые подключаются через серийный порт ( почти все 3d принтеры имеют эту возможность ). Для смены принтера опять же необходимо поправить лишь пару строчек в конфигурационном файле на raspberry pi.
- Простая конфигурация как сервера, так и raspberry pi.
- Наша система легко масштабируема. Вы можете покдлючить до 4х принтеров одновременно к raspberry pi и после того как поправить несколько строчек в конфигурационном файле системы автозапуска процессов, все они станут доступны в панели управления. Но работать будут синхронно. Так модель отправленная на печать запустится на всех принтерах одновременно, что особенно востребованно для промышленных производств. В будущем планируется добавление асинхронной работы с принтерами (можно будет выбрать с каким конкретно идёт сейчас работа)
- Наша система позволяет отслеживать подключён ли принтер к интернету, успешно ли соединение по последовательному порту.
- Принтер после того как получает какую-либо команду всегда отправляет какой-либо отчёт. И все отправленные отчёты можно наблюдать на сайте. История всех этих отчётов ведётся с момента открытия вкладки браузера и пока не закроется. В будущем планируется добавить возможность сохранения истории отчётов на сервере и их подгрузка при входе в интерфейс.
- В случае, если произошла ошибка в коде на raspberry pi, то на сервер отправляется отчёт об этой ошибке.
- В панели управления реализовано 4 глобальных возможности:
- Терминал. Можно отправлять команды любые G команды ( а это абсолютный контроль над всеми системами принтера ) и видеть все отчёты, которые отправляет принтер в ответ. Также есть возможность очистить терминал и некоторые отладочные функции. Если принтер не подключён или идёт печать, показывается предупреждающее уведомление, что отправка команд будет либо бесполезна, либо опасна.
- Контроль осей. Джойстик представляет из себя графическую оболочку над командами для управления положением печатающей головки и стола. Движение по оси происходит относительно текущей позиции. Можно изменять координату на 0.1, 1, 10, 100 единиц. Можно делать в обоих направлениях по каждой оси. Также можно вернуть всё в базовое положение. Функция нужна для тестирования позиционирования печатающих элементов и проверки работы движущих элементов. Также выводятся предупреждения. Во время печати мы не даём человеку выстрелить себе в ногу и все нажатия во время печати модели приведут лишь к всплывающему уведомлению.
- Температура. На графике показываются реальные температуры и температуры, до которых планируется нагрев, головки и стола за последние 5 минут. Если отсутствует подключение к принтеру, кнопки блокируются.
- Загрузка модели. Можно загрузить нарезанную модель. Такое же предупреждение как и на предыдущих страницах. Файл можно как выбрать на файловой системе так и просто перетащить в браузер. Как только начинается печать, вниз показывается статус бар печати, содержащий имя файла, анимированный прогресс бар, процент выполненности, время начала печати и время окончания. Когда печать подойдёт к концу, прогресс бар станет зелёным и появится возможность закрыть статус бар. Прогресс бар можно будет увидеть даже, если закрыть сайт, а потом снова её открыть. В планах добавить функцию финального подтверждения отправки файла, чтобы выбранная модель не отправлялась на печать сразу.