きっかけ
Adventurer3での長時間印刷時に、外出などでAdventurer3の状態を見ることができないときに限って、印刷が途中失敗していることがある。
失敗したのが、最後の最後だったら、しょうがないな~となんとなくあきらめもつくのだが、もし、初めのほうだったら、失敗後、ずっと意味もなくフィラメントを出し続けていることになる。この場合はなんか悔しい。
そこで、ファイアーウォール越しに、Adventurer3の状態を監視し、必要であれば出力をストップすることができる機能が用意できないか検討してみた。
現在の状態
現状でも、いくつかやり方はあるようだ。
- クラウド経由で制御する。
一応、Adventurer3にはクラウドに接続する機能はあるらしいのだが、日本の販売代理店のサイトを見る限り、まだ準備中のようだ。 - ルーター越しに制御する。
グローバルIPもしくはDDNSを使い、自分ちのWAN側IPが分かれば、ポートマッピングで、何とか内側のAdventurer3に接続できるかもしれない。ただ、ポートマッピングをする前に、Adventurer3のIP固定化ファームを使わないと、ルーター側のポートマッピングも面倒かもしれないが。 - OctoPrintが使えないか
OctoPrint-TelegramやPolar Cloudなどのプラグインがあるようだ。
ちなみに、Polar CloudはAdventurer3単体でも接続できるもののようなのだが。
作ろうと思う機能の概要
Adventurer3を制御するため、ローカルエリアにRaspberry Piを置いて、そこ経由でルーター外側の外部サーバーにアクセスし、スマフォで制御するような感じで行こうと思う。
Adventurer3⇔Raspberry Pi⇔外部サーバー⇔スマフォ
図に表すと、下記のような感じ。
スマフォは、外部サーバー以外に、Adventurer3制御用のRaspberry PiにAdventurer3のIPや外部サーバーのURLを教えるためにも使用する予定。
進め方
今までC#でプログラムを作ってきたが、今回、外部サーバーやRaspberry Piを利用するためPythonでプログラムを作ろうと思う。
一応、次のように進めて行く予定。
- Pythonの開発になれるため、C#で作成したAdventurer3制御クラスを移植し、コンソールアプリを作る。
- Raspberry Piのみで、Adventurer3の制御と印刷状態が分かるような画像を表示する機能を設ける。
- 外部サーバーを立ち上げ、ルーター外側からスマフォでAdventurer3を制御できるようにする。
コメント