前回までの話でほぼホームアプリ用の設定の話は終わったなと思っていたのですが、シャットダウン・スイッチの話を忘れていました。
昔 WatchDog のプログラムを書いて実装したのですが、ちょっと面倒だったりしていたのと、最近は変に通信が不安定になってリモートからシャットダウン出来なくなることもなく、あまり不便を感じていませんでした。
でもやっぱり何かの時にはボタンひとつでシャットダウン出来たり、電源の抜き差しなしで起動できたほうが便利ですよね?
で、Raspberry pi のシャットダウンの話をググってもほとんどが「プログラム書いて・・・」って話ばかりですが実は今ではそんなことは必要ないんですね。
設定ファイルに1行書き加えるだけ。ついでなのでランプ動作中は点滅する様にしちゃいましょうかね? Zeroの方は停止すると赤ランプも消えるので必要ないですけど。
設定は /boot/config.txt にそれぞれの設定を1行書き加えるだけです。
シャットダウンスイッチの方は、
dtoverlay=gpio-shutdown,gpio_pin=21,debounce=2000
電源の方は
dtparam=pwr_led_trigger=heartbeat # 動作中は電源の赤ランプが点滅
または
dtparam=act_led_trigger=heartbeat # 動作周波アクセスの緑ランプが点滅
LEDランプの方は説明不要ですよね。
シャットダウンスイッチの方は、gpio_pin=21 で使用するGPIOピンを指定しますけど、この番号は gpio readall で一覧表示した時のBCMの項目の番号です。21番ならば物理ピンの最後、40番のピンになります。
で、debounce=2000 はボタンが反応するまでのm秒での指定。2000msですから2秒ですね。
デフォルトは100なのでちょっと触っただけでシャットダウンしてしまいそうなので2秒にしてみました。
配線は21番ピンをプッシュオンのスイッチを経由してグランドに繋げるだけ。
隣のピンがちょうどグランドなので隣同士を繋げば良いということでこのピンにしました。
ついでに言うと起動時には基盤上の「RUN」と書かれたところをちょっとショートさせれば起動します。ZeroだとちょうどGPIOの最後のすぐ横に並んでいるので良いかなと。
こっちは動作中に不用意に触れるとリセットがかかるので注意が必要です。
ボタンを付けておくと便利ですが、不用意に触れても良い様にカバー付きのスイッチか何かの方が良いですね。
で、動作ランプの方ですが、ちょっと煩わしいほどに点滅してくれるので、別途 LED を追加した方が良さそうな気がしますね。
その場合は /boot/config.txt に下記を書き加えるだけ。gpiopin=20 で動作中に点灯させるLEDを接続するピン番号を指定してください。20番だとシャットダウンスイッチの1つ上のピンなのでちょうど良いかなと。
dtoverlay=gpio-poweroff,gpiopin=20,active_low=1
とりあえずこんなものかな?
まだ何か書き忘れていたら続きを書きます。
コメント
コメントを投稿