RasPi
Home > RasPi > 記事 > 2015年12月 > RasPi2にシャットダウンボタンを

RasPi2にシャットダウンボタンを

カテゴリ: 手順メモ, ネコ監視カメラ

ようやく完成にこぎつけたので記事にします。

2ヶ月近く前に上記記事のシェルスクリプトを試しましたが上手く行かず…。

pythonでのシャットダウンボタンの実装に切り替えて挑戦するもなぜかスイッチを押してもピン状態が正しく拾えず、GPIOの条件が反応せずそこで詰まりました。

方々に助言を求めたり色々検索したりした結果(何を調べたのかをもはや覚えてない程度には色々エントリを見ました…)、WiringPiではどうやら上手くピン状態を拾えているということが分かりました。

「じゃあpythonプログラムからWiringPiモジュールを経由してピン状態の値を取得して、それを判定に使えば…」

と考えたのですが、それをどう書いて良いのか分からず。

結局紆余曲折を2ヶ月近く経ることになりました。

途中アップデートやアップグレードを掛けたり、他プログラムを改変したり…。

 

ちなみに、今回使用したのはこちらのスイッチ。

RasPi 2Bからオス-メスジャンパーでブレッドボードに接続してこのスイッチへ、という構造です。

 

で、最終的にはにっちもさっちも行かなくなり、冒頭のシェルスクリプトをもう一度最初から手順を踏んで試してみることにしました。

すると…今までの苦労はなんだったのか。一発でできてしまいました…orz

$ shutdown-daemon2.sh

で冒頭の記事のシェルスクリプトをコピペ。

$ chmod 755 shutdown-daemon2.sh

で権限を与えます。

RasPi2の緑LEDを反応させるテストのためにrootにパスワードを設定したり(これ自体はプログラムの作成には関係ない)。

$ sudo psswd root
#パスワード設定

ただ一点だけ注意が必要なのは自動実行のためのrc.localの記述。

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

/home/pi/shutdown-daemon2.sh &
exit 0

冒頭の記事だとこのように記述して再起動すれば動く、とのことでした。

しかし、自分のRasPi 2Bで試したところ権限が足らずに動きませんでした。

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

sudo /home/pi/shutdown-daemon2.sh &
exit 0

実行権限の問題なので、sudoを付ければ動くようになりました。

自分で頑張ったのはここだけ、というなんともお粗末な感じでしたが、これでシャットダウンボタンを実装することができました。

 


最初に用意したパーツ一覧。スイッチは上記の通り。


今回の完成図。背面が冷却用の穴が開いているので、それを塞がないように横にブレッドボードを設置。不恰好にはなりましたが…。


カメラも入ってます。これを見ての通り、シャットダウンボタンを実装したのは猫監視用の定点カメラツイートbotの個体です。 ※参考> RasPi2で定点カメラ ~twitterbot編~(1)RasPi2で定点カメラ ~twitterbot編~(2)

使用したピンは記事の通りPIN#15(GPIO22)とPIN#17(+3.3V)です。


スイッチだけのシンプルな回路。

 

以上です。

タグ: カメラ, twitter

 



関連する記事一覧