はじめに
ということで、私もビッグウェーブに乗ってみました。ダイソー3軒目にしてようやく発見。
#横浜はダイソーがゴロゴロしてます
だいぶちゃっちいです。けど用途を満たしてくれればOKです。
どれくらい持つか分かりませんが、お試し電池も付いています。
用途
RaspberryPi3 のシャットダウンボタンです。GPIOを塞ぎたくないので良いかと。
#ハード
- RaspberryPi3
- Bluetoothリモートシャッター(ダイソー 324円)
「 リモートシャッター 」本件ともネーミングが重なりGoodです。
#インストール
vimyumさんの「わずか300円でIoTボタンを作る方法」でOK。
##Bluetooth周りのインストール
$ sudo apt-get install bluetooth
多分、最近のRaspbianでは不要だと思います。
##Bluebuttonのインストール
$ sudo gem install bluebutton
すんなり行きました。
##Bluetooth の接続
$ bluetoothctl
[bluetooth]$ power on
[bluetooth]$ scan on
[NEW] Device XX:XX:XX:XX:XX:XX AB Shutter3
[bluetooth]$ pair XX:XX:XX:XX:XX:XX
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[AB Shutter3 ]$ trust XX:XX:XX:XX:XX:XX
[CHG] Device FF:FF:1D:14:79:80 Trusted: yes
[AB Shutter3 ]$ quit
「XX:XX:XX:XX:XX:XX AB Shutter3」がリモートシャッターのアドレスです。
これとペアリング(pair)して、信頼済み(trust)に入れて完了。
ここまで一度通れば、RaspberryPiを再起動しても勝手にペアリングしてくれます。
##bluebutton の設定
設定と言っても、ボタンが押されたときの処理を記述するだけです。
まずは、本家の設定ファイルで動作確認。
keyup=echo UP
keydown=echo DOWN
longup=echo LONG UP
longdown=echo LONG DOWN
とりあえず bluebutton 実行!
$ sudo bluebutton -d="Shutter3" -c ~/.config/bluebutton
Try to find device Shutter3...
Device Shutter3 find at /dev/input/event0
Unable to connect to X server
Reading events from /dev/input/event0...
DOWN #押した
UP
DOWN #長押しした
LONG DOWN
UP
LONG UP
うまく検知できたみたい。
#シャットダウン
いよいよシャットダウン実装。長押しに入れてみた。
keyup=echo UP
keydown=echo DOWN
longup=echo LONG UP
longdown=sudo /home/pi/shutdown.py
shutdown.py を作成して、longdown に入れただけ。
#!/usr/bin/python
# coding:utf-8
import os
os.system("sudo shutdown -h now")
実行権限 #2017.12.07 追記
chmod +x /home/pi/shutdown.py
その前に、shutdown.py がちゃんと動くかコマンドを確認・・・OKシャットダウンした。
やっと、本番・・・
$ sudo bluebutton -d="Shutter3" -c ~/.config/bluebutton
長押し!・・・シャットダウンした!
あっけなくできてしまった。最後に、起動スクリプトの最後に追加。(絶対パスで)
:
:
sudo bluebutton -d="Shutter3" -c /home/pi/.config/bluebutton &
exit 0
あと、すばらく放置するとペアリングが切れますが、何かボタンを押すと再接続されます。
#課題
ターミナル(TeraTerm)を開いていると、シャットダウンが分かるんだけど。
何も繋いでいないとホントに落ちたかが分かりづらいんです。
一応、リモートシャッターのLEDが1秒点滅を繰り返すので→ペアリングを失ったな→落ちたなという事で。
何かいい案があれば。
#SpecialThanks!!
わずか300円でIoTボタンを作る方法
kinnalru/bluebutton
通知が飛ぶIoTボタンを作ってみた
ラズパイでシャットダウンボタンを付ける(ついでに起動ボタン)
RaspberryPiにshutdownボタンを付けよう
#追記 2017.12.07
パスの修正 ~/.config/bluebutton
shutdown.pyの実行権限