Raspberry Pi はその手軽さで人気のあるコンピュータボードですが、電源ボタンが無く不意の電源断による SD カードの破損リスクがあります。特に、SSH などを使用してリモート操作している際、ネットワークの問題でシャットダウンができなくなることがあります。このような状況で強制的に電源を切ると、SD カードが破損し、ラズパイが起動しなくなるリスクが高まります。
シャットダウンボタンの実装
この問題を解決するために、物理的なシャットダウンボタンの実装をします。
手順は以下です。
- 外部シャットダウンの有効化
/boot/config.txt
ファイルを vim や nano などのエディタで開き、最後に以下のコマンドを最後の行に追記します。dtoverlay=gpio-shutdown
- 保存後、再起動することで設定が有効になります。
- シャットダウンボタンの作成
- GPIO3(5番ピン)を GND(9番ピン)に接続するためのボタンを作成します。
- 使用するのは、押している間だけ導通するモーメンタリ動作の押しボタンスイッチです。
- GPIO3 と GND に接続する線をスイッチにはんだ付けし、Raspberry Pi に接続します。
- シャットダウンと再起動
- ボタンを押すとラズパイがシャットダウンし、再度押すと再起動します。
注意点
- I2Cの問題: GPIO3 は I2C 用のピンも兼ねているため、I2C が有効になっているとシャットダウンが機能しないことがあります。これを解決するには、
/boot/config.txt
から以下のコマンドをコメントアウトします。dtparam=i2c_arm=on
- 抵抗の使用: スイッチを介して GND にショートさせる際、10kΩ の抵抗を使用して電流制限をかけると、シャットダウンが機能しないことがあります。
- ボタンの不要性: 実際には、GPIO3 と GND を直接ショートさせるだけでシャットダウンが可能です。これにより、緊急時にはボタンがなくてもシャットダウンができます。
このように、Raspberry Pi にシャットダウンボタンを実装することで、突然の電源断によるSDカードの破損リスクを軽減できます。また、この方法は比較的簡単に実施でき、ラズパイの安全性と利便性を高める効果があります。