3DプリンタをOctoPrintでリモート監視する方法とは?

3DプリンタをOctoPrintでリモート監視する方法とは?
当記事には広告が含まれますが、消費者庁および国民生活センターの情報を参考に、広告ポリシーに基づいて作成しています。

こちらは3年以上前の記事です。内容が古くなっていますので、ご注意ください。

Prusa i3 MK3Sで印刷を始めて2ヶ月近く経ちますが、ほぼ毎日20時間以上は稼働している状態です。そのため、1000時間以上は印刷しているワケです。(この記事を執筆していた当時)

いつもの匠

Prusa i3 MK3Sを愛用してる いつもの匠 です。

愛用する Prusa i3 MK3Sには、総利用時間1000時間超、修理パーツだけで10万円以上かけました。

日夜ずーっと印刷を続ける中で、とにかく沢山の成功失敗を繰り返しました。その中で、かなり面白くてハマっている OctoPrint というオプションデバイスについて紹介したいと思います。

\\ クリックタップできる //
目次

3Dプリンタをネットワークから管理したい

3Dプリンタを利用していると、次のようなことを感じ始めます。

ユーザーA

印刷が完了したり、エラーになったら通知して欲しい

ユーザーB

わざわざ覗き込まなくても状況を把握したい

ユーザーC

SDカード経由じゃなく、ネットワーク経由でGcodeファイルを渡したい

ユーザーD

印刷している様子を動画撮影してみたい などなど

3Dプリンタを使いこんでいくと、こんな要望はあるあるです。世の中にはこれらの予防を解決する縦断の1つとして、OctPrint(オクトプリントが開発されました。

OctoPrint を使い始めよう

次のソフトウェアを利用することで、先程の要望に応えることが可能です。

このソフトウェアは、Raspberry Pi 向けのOSです。この OctoPrint を組み込んだ Raspberry Pi 向け OS のこと、あるいはこのOSをインストールしたRaspberry Pi機そのものを OctoPi と呼んだりします。(正式名称ではなく愛称)

なお、Windows や Linux, Mac でも構成できるようですが、これらを長時間の印刷の間にずーっと付き合わせおくのは電気代の無駄です。そんな理由かは分かりませんが、Raspberry Pi での利用がオススメされています。

OctoPrint に必要な物

この OctoPrint を構成するには、Raspberry Pi でキチンと構築する必要があります。

  • Raspberry Pi 4 (3以前だと能力不足になることも)
  • マイクロSDカード(32GBは最低ライン、できれば耐久性の高いものを)
  • ヒートシンク(稼働時間が長く、負荷も高いので)
  • ラズパイカメラ(目視での監視は重要)
  • 5V/3A (15W) のUSB-C電源アダプター

ケースは3Dプリンタで印刷する方が良いので、購入しなくて問題ありません。(後述)

なお、マイクロSDカードと通常のSDカードはサイズが違うので、持ってるつもりで持ってない!みたいな事態が起こらないよう、ご注意くださいませ。

OctoPi のインストール

この OctoPi のインストール自体は、非常に簡単です。以下の「Setting up OctoPi」に手順が記載されています。

英語が苦手な人は、Google Chrome や Microsoft Edge の翻訳機能を活用してください。また、下記の動画を見ながら実施しても良いでしょう。英語ですが、字幕の自動翻訳を駆使すれば問題ないでしょう。

インストールが終わって、一旦 Wi-Fi 経由で下記に接続できるようになったらインストールは終了です。

本記事では、OctoPrintの細かなインストール方法やWebブラウザでのアクセス方法など、公式サイトを見れば分かる情報は省略しています。

OctoPrint機 の設置

OctoPrintをインストールしたRaspberry Piは、3Dプリンタ本体とUSBケーブルで直接接続します。

電源は本体と別に確保しなければならないという点は要注意です。USB-Cケーブルで、別途電源を確保する必要があるため、ケーブルの取り回しやコンセントの確保、必要な電圧の確保など意外と気にすべき点があります。

本体接続と電源は異なるので注意。

この電源がくせもので、キチンとした電力供給が無いとすぐにハング(停止)しますので、注意が必要です。安くてワット数の小さいUSB電源だと、出力中に停止してしまって公開します。

いつもの匠

何度も停止して、印刷が異常終了して痛い目にあったよ

もう1つ重要なポイントとして、監視カメラの問題があります。設置場所はカメラケーブルの長さに依存しますので、長いケーブルを利用すべきです。長いケーブルを準備できれば、正面など監視しやすい場所から撮影できて便利です。

いつもの匠

カメラケーブルの費用をケチってね…結局もう一本買う羽目になったよ…

筆者がZ軸横に備え付けた結果は以下でした。

Prusa MK3S+に設置したラズパイカメラ

もちろん、カメラをヒートベッドに備え付けることも可能です。いくつか該当する3Dデータが公開されていますから探して見ると良いでしょう。しかし、ヒートベッドが動く度に上下動く不安定さから、筆者はヒートベッドへの備え付けは断念しました。

いつもの匠

正直、床にミニ三脚で置いた方が無難だったよ

ここまで準備が整えば、OctoPrintを実際に使用することができます。

OctoPrint で出力する方法

OctoPrint経由で出力できるようになれば、3DプリンタにSDカードを抜き差しする手間が劇的に減ります。その手順を紹介します。以下のOctoPrint操作画面で操作します。

OctoPiの管理コンソールは初期状態では英語です。
OctoPi管理コンソール

日本語化する

使い始める前に日本語化しておきましょう。なお、海外の情報との摺り合わせが簡単ですから、英語が読める人は英語のまま使った方が良いです。

右上のスパナアイコンをクリックすれば、設定画面が開きます。

OctoPrint Settingsダイアログから日本語化する設定を選択することができます。AppearanceからDefault Languageで日本語を選択します。
OctoPrint Settingsダイアログ

「Appearance」を選択して、「Default Language」から「日本語 [ja, Japanese]」を選択して、「Save」ボタンを押下します。この後、ブラウザをリロードするだけで、簡単に操作画面が日本語化できます。

OctoPi 管理コンソールが日本語化できたら完了です。
OctoPi 管理コンソール(日本語)

OctoPrintと3Dプリンタを接続する

初期状態のOctoPrint (Raspberry Pi) は、3Dプリンタと接続されていません。この状態のままでは、OctoPrint経由で3Dプリンタは操作できません。

まずは、OctoPrint操作画面のうち、左上の「設定」パネルで「接続」ボタンをクリックします。

OctoPiが未接続状態だと、「接続」ペインで「接続」ボタンが押下できます。
OctoPi 接続設定(未接続)

ボタンクリック後に無事接続されると、「切断」ボタンに変更されます。この状態になれば、接続成功です。これで OctoPi 管理画面から3Dプリンタを操作できるようになりました。

OctoPiが接続状態だと、「接続」ペインで「切断」ボタンが押下できます。
OctoPi 接続設定(接続完了)

接続できないケースも多々あります。多くの原因はポートレートが違う、ケーブルの接続不良 などです。英語ですが、必ずエラーメッセージに原因は書いてあるため、丁寧に確認しましょう。

OctoPrint経由で出力(印刷)する

予め用意したGcodeファイル(3Dプリンタで印刷できるファイル形式)をアップロードします。

「ファイル一覧」ペインからGcodeをアップロードすることができます。
Gcodeアップロード

アップロードボタンを押下して、ダイアログからGcodeを選択すればアップロードできます。

ファイル一覧からプリンタアイコンを押下すると、印刷できます。
OctoPrint プリンタアイコン

アップロードしたファイルがファイル一覧に現れたら、右のプリンタアイコンをクリックします。

「ステータス」ペインで「造形」ボタンを押下すると印刷を開始することができます。
「ステータス」ペインで「造形」ボタン

ステータスペインで「ステータス」が「造形中」になったら、印刷開始です。もし「造形中」にならない場合は、「造形」ボタンを押下すれば開始します。これで印刷が完了するまでひたすら待つだけです。

印刷が始まると、メインのペインで温度が上がり始めていることが確認できます。

右側のペインで温度状態が確認できますので、キチンと温度が上がっているか確認することができて便利です。もっと細かく印刷温度も調整できますが、最初は利用することはないと思います。


これで印刷開始~印刷完了のステータス管理が、このOctoPiコンソールに接続さえできれば、どこからでもできるようになりました。離れた部屋に配置しても、3Dプリンタの状態を把握して操作できます。

いつもの匠

利便性がめちゃくちゃ上がるよ!

OctoPrintで印刷結果や異常を通知しよう

初期状態のままでは、印刷完了や異常が発生したとしてても、OctPrintの管理コンソールを確認しないと分かりません。頻繁に確認できれば良いですが、けっこう忘れがちです。

いつもの匠

たくさん印刷したいのに、つい忘れてしまうんだよね。次の印刷を始めるまでに、無駄な空き時間を作ってしまって勿体ないなって…

そこでOctPrintには、印刷開始/完了/エラーという状態になったら、ユーザー通知できるプラグインを追加してみましょう。

Slack通知プラグイン「OctoSlack」

3DプリンターのOctoPrintから、印刷状態やプリンター接続状態をSlackに通知できるプラグインです。

Slackだけでなく、Mattermost、Discordなど幅広く通知できる便利なプラグインでもあります。 (2021年から開発停止中)

OctoSlack 主な機能
  • 印刷ステータスのモニタリング
  • Slackコマンドでの印刷キャンセル/一時停止/再開
  • スナップショット画像のS3、Imgur等へのアップロード対応
対応プラットフォーム

Slack、Mattermost、Pushbullet、Pushover、Rocket.Chat、Discord、Matrix、Microsoft Teams
(LINE/電子メールには非対応、WebHook URL対応なら何でも通知可能)

インストール方法

OctoPrintの設定画面(Settings)を開きます。左のメニューから「プラグインマネージャー」を選択して、右ペインで「プラグイン追加…」をクリックします。

プラグインマネージャーの設定画面

「プラグインの追加」ダイアログで、検索フォームに「Octoslack」と入力します。

プラグインマネージャーから、直接インターネット経由でプラグインをインストールすることが可能です。

表示された「Octoslack」の行について、右の「インストール」ボタンをクリックします。少し待てばプラグインのインストールが完了します。

通知設定

設定画面(OctoPrint Settings)に「Octoslack」メニューが現れ、通知内容を設定できるようになります。

OctoSlackの設定は, OctoPi設定画面から実施することが可能です。
OctoSlackの設定

英語で分かりにくいですが、下記の選択肢で通知先のサービスを選択できます。

OctoSlackのConnection typeで接続先サービスを選択することができます。

筆者は Pushbulletユーザーですから、 iPhone/Apple Watchに通知もできるPushbulletを選択しました。Pushbulletの場合、Pushbulletサービスから取得してきたAccess Tokenを入力して、通知先のチャンネルを指定します。

例として、OctoSlackのPushbullet接続設定を行うところを説明します。

次ぐに通知内容の設定では、どの場合に通知するかなどを選択します。標準では全てのパターンで通知されますが、下記のみ通知するよう設定しました。

  • Print started(印刷開始)
  • Print failed(印刷失敗)
  • Print cancelled(印刷キャンセル)
  • Print finished(印刷完了)
  • OctoPrint error(異常発生)

次の設定項目「Snapshots」(スナップショット)は、3Dプリンタ特有です。ここで印刷開始時や完了時の状態をカメラで撮影して、その結果を通知に含める、あるいは指定したクラウドストレージに保存できます。

例えば、筆者の場合は Pushbullet を選択しました。

OctoSlackのSnapshotsによって、印刷完了の状態を撮影して送信することが可能です。

その結果、印刷完了する都度、以下の画像が送られてきます。

印刷完了後の状態を撮影して、Pushbulletで画像を受信できます。

これで無事に印刷完了したことを、OctoPrint操作画面を見ずに確認できます。ちなみに、異常終了した場合は、こんな哀しい写真が送られてきます。

印刷エラーを撮影して、Pushbulletで画像を受信できます。
Octolapse Pushbullet エラー画像受信
いつもの匠

スマホでサクッと完了状態が分かるのは便利すぎる!

使いこなせば手放せなくなる便利なプラグインです。

OctoPrintで撮影する

3Dプリンタで印刷している様子をカメラで監視できる機能は、ホントに便利で必要不可欠です。毎回わざわざ3Dプリンタを覗き込まずに済みますし、スマホで確認できるようにしておけば手放せなくなります。

この3Dプリンタ監視を実現するには、WebカメラかRaspberry Pi 専用カメラとOctoPrint(Raspberry Pi)を私用します。

Prusa MK3S+に設置したラズパイカメラ
Prusa MK3S+に設置したラズパイカメラ

印刷経過を監視する

このカメラの設置位置が大事です。好きな場所に設置できますが、見える位置によってできることが変わります。例えば、次のカメラアームを印刷して、設置してみると良いです。

これらのカメラアームには、それぞれに長所短所があります。

カメラアーム種類長所短所
プリンタ備え付け最も安定して設置できる
撮影角度の自由度が高い
印刷タイミングによって印刷物と距離が異なってしまう
印刷の振動でズレ安い
ヒートベッド備え付け印刷物と常に同じ距離で撮影可能アームが安定して設置しにくい
印刷の振動でズレやすい
印刷物と距離が近すぎる
Z軸モーター備え付け印刷物の高さに合わせて印刷可能
振動でズレにくい
Z軸モーターへのねじ止めで安定する
印刷角度が微妙
印刷物の高さが低いとキレイに撮影できない
最も自然な3Dプリンタ部品に見える
見下ろし位置備え付け高さに関係なく、安定して撮影可能
印刷物との距離が一定
印刷物が小さかったり、ヘッドの位置によって、ヘッドが邪魔で印刷物が見えない
独立スタンド撮影角度の自由度が高い
振動の影響を受けない
スタンドが必要
設置場所を安定させにくい

筆者は、最初に以下のアームを採用しました。

Thingiverse
Prusa I3 MK3 Raspberry Pi Camera Mount by lab27 There are many different mounts available, but I was missing a clean and simple design for a x-axis Raspberry Pi camera mount.Designed for the Prusa I3 MK3, the...

全体像は印刷できないケースもあります。しかし、Z軸の高さに合わせて印刷できるし、印刷毎に振動を気にする必要ないためです。

いつもの匠

後日談だけど、結局はミニ三脚で設置した方が安定するってことに気付いたんだよね…

カメラを設置したら、OctoPrintの設定画面について下記を有効にします。左のメニューから「Webカメラとタイムラプス」を選択して、「Webカメラサポートを有効にする」にチェックを入れて保存します。

WebカメラはOctoPrint Settingsで設定を行います。WebカメラとタイムラプスからWebカメラサポートを有効にするを選択します。
Webカメラ OctoPrint Settings 設定

その後、以下のようにカメラで撮影できるになり、OctoPrintの操作画面にカメラ撮影した結果が表示されるようになります。

OctoPiでのカメラ監視ができる様子
OctoPiでのカメラ監視

これでリモートから印刷状況を、リアルタイムで監視することができるようになりました。

いつもの匠

3Dプリンタの状態とは関係なく、常時撮影できるよ

ただし、カメラで監視している間は電気が暗くなると見えなくなります。ライトをつけたままにするか、暗視カメラを利用する必要がある点は要注意です。

印刷経過をタイムラプス録画する

OctoPrintを使えば、印刷経過をタイムラプスで撮影できます。

いつもの匠

単なる趣味目的だけでなく、どこで失敗したかを振り返るのにも役立つよ

タイムラプス録画は、OctoPrintの設定画面で下記の項目を有効にします。

タイムラプス録画はOctoPrint Settingsで設定を行います。Webカメラとタイムラプスから、タイムラプス機能を有効にするを選択します。
タイムラプス録画 設定

「タイムラプス機能を有効にする」チェックボックスにチェックを入れるだけです。これで印刷するたびに、毎回自動でタイムラプス録画します。

撮影完了したタイムラプス録画は、タイムラプスタブで選択することができます。
タイムラプスタブ

「タイムラプス」タブから録画したデータを選択でき、成功/失敗に関わらずに保存されます。初期設定では640×480の低画質での撮影になります。

いつもの匠

フルHDや4Kで撮影したいなら、別のプラグインが必要だよ

録画後の動画変換(ffmpeg)には高い負荷がかかるります。そのため、Raspberry Pi ZEROやRaspberry Pi 2などでは厳しいです。Raspberry Pi 3または Raspberry Pi4を利用すれば、快適に録画できます。

OctoPrintで3Dプリンタは飛躍的にアップグレードできる

本記事では、3DプリンタにOctoPrintを追加する方法を紹介しました。OctoPrintを3Dプリンタに追加するだけで、やれることが広がって更に楽しくなります。

OctoPrintを使うなら、以下の記事もぜひ参考にしてください。必ず役に立ちます!

目次