プリントサーバー用のRaspberryPI 3B+にシャットダウンボタン・再起動ボタンを追加した。
私の3DプリンターにはRaspberryPI 3B+(以下PI)を搭載しています。
このPIですが現状、プリンター本体と電源を共用し、プリンター本体の電源断と同時にPIも電源供給が止まるようになっています。しかしながらこの場合PIにセットアップされているMicroSDカードの破損の可能性が低確率ですが存在します。今回、このリスク対処を行いました。
なぜMicroSDが破損するの?
PIはセットアップされたMicroSDカードに記録されているOSに常時アクセスをしているため、電源断のタイミングによってはMicroSDカードにアクセス中に電源が落ちる可能性があります。アクセス中に電源が落ちると最悪カードが破壊されることがあります。
ではどうやって破損を回避するのか。
意図的にMicroSDカードにアクセスしていない状況を作り出したのちに電源を切断すればほぼ問題ありません。具体的にはOSをシャットダウン後に電源を落とすわけです。
OSをシャットダウンするにはGUI画面からシャットダウンを実行するかbashからシャットダウンコマンドを実行することになります。すが毎回キーボードもしくはマウスをつないで(もしくはつないだまま)シャットダウンを実行するのは手間ですので3Dプリンターにシャットダウンボタンを搭載することにしました。
ボタン追加の概要
今回は、PIに標準搭載されているGPIOピンに押しボタンスイッチを配線し、OS上でボタンのON/OFFを監視。2秒以上ボタンが押されたときにシャットダウンコマンドが実行させるようにしました。
工程としては、
1.ボタンの設置
2.ボタンON/OFF検出プログラムの作成
3.起動・再起動時に自動的に2.のプログラムが起動するよう設定
4.ボタンを3Dプリンターに設置する取り付け具のデザイン・設置
以上4工程になります。
追加で、あったほうが運用上便利ということで再起動ボタンも実装しました。