目的
Raspberry pi3 を家のステレオとして使っているけど、いちいちログインしないで電源を切りたい!!
(自分以外の家族にも使って欲しくて、、、)
どうやって切る?
GPIOの2つのpinにタクトスイッチをつけて、1秒間長押しして、少し待ったら、、、、
電源ON時、赤のledが常にheartbeat( どどっ、どどっ、どどっ、どどっ、)で光りますが、少し待ったら、常時点灯に変わります。そして、緑のアクセスランプが完全に消灯したら、電源ぶちっ。
設定方法
/boot/config.txt の中に
dtoverlay=gpio-shutdown,debounce=1000
dtparam=pwr_led_trigger=heartbeat
を入れる。
raspberry piの挙動を起動時に設定するしくみとして、/boot/config.txt での設定ができますが、色々な設定についての説明は、/boot/overlays/READMEに色々書いてありますね。
スイッチでshutdown
dtoverlay に gpio-shutdown を指定すると、GPIOピンの状態の変化でshutwown 処理を始めます。デフォルトでは、GPIO 3を 100mmsec(0.1秒間)、0vにすることで、shutdown処理が始まります。今回の設定では、debounce=1000としており、1秒間0vにすることで、shutdown処理が始まります。つまり、私の構成では、1秒間タクトスイッチを押すことで、shutdown処理が始まります。
配線
GPIO3と、gndの2本の間にスイッチをいれてつなぎます。スイッチが切れた状態の時は、GPIO3は、プルアップされていて、3v(?)になっていますが、スイッチをつなぐと、gndにつながるので0vになります。
私は、タクトスイッチとケーブルをとってもいい加減につないでいるので、タクトスイッチが時々外れます。恥ずかしいかぎりです。せめてハンダでスイッチ外れないようにしないとね。
赤ledの挙動変更
赤ledは、通常、常時点灯ですが、shutdown処理が行われたかどうかの判断が良く分かるように、上記のようにheartbeatに設定します。赤ledは、pwr_ledなんですね。
(^_^;)
※写真のシステム、埃っぽくて、すみません。一杯ホコリかぶっていて、これでも少し掃除しました。