Raspberrypi 3B+のオン・オフ
- M.Katono
- 2020年1月18日
- 読了時間: 2分
普段はRaspberrypi zeroを起動しっぱなしにしていて、そこからRaspberrypi 3B+に電気を供給している。gpioからの電流では全く足りないので、gpioからの電流でリレーを作動させてACアダプタからの電流をオン・オフさせている。Raspberrypiの場合は電気が流れれば起動するので簡単だが、使い終わったらOSをシャットダウンしてから電気を切らなければならない。
ラズパイ3B+は普段からSSHやVNCで接続して使っているのでシャットダウンするのは簡単。ラズパイzeroのリレーの方も正常にプログラムを終了できればgpioピンに流していた電気が止まるので問題ないハズだった。
しかし、ラズパイzeroとのSSHがタイムアウトになったり、間違ってターミナルを閉じてしまったりするとリレーをオフにできないことが分かった。閉じてしまったプロセスをkillしてもダメで、もう一度起動してシャットダウンをやり直すという二度手間になっていた。
それではバカバカしいので異常終了した場合は後から電気をオフにできるようにした。
不要なsys.exit()を入れてしまった…。
sys.argvで簡単にコマンドライン引数を取り出せるらしい。
pythonの引数は、引数[0]がプログラム名で引数[1]以降が実際の引数らしい。ということで、len(引数 ) ==1 ならばコマンドライン引数がないから普通に電源オンの処理。引数[1] == "off" ならばgpioピンに流していた電気を止める。引数が違ったら「違う」と言う。
って感じにしてみた。
コメント