Bluetoothシャットダウンボタンを作る #300円でIoTボタン

More than 1 year has passed since last update.


はじめに

ということで、私もビッグウェーブに乗ってみました。ダイソー3軒目にしてようやく発見。

#横浜はダイソーがゴロゴロしてます

remote-shutter.png

だいぶちゃっちいです。けど用途を満たしてくれれば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 の設定

設定と言っても、ボタンが押されたときの処理を記述するだけです。

まずは、本家の設定ファイルで動作確認。


~/.config/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

remote-shutter2.png

うまく検知できたみたい。


シャットダウン

いよいよシャットダウン実装。長押しに入れてみた。


~/.config/bluebutton

keyup=echo UP

keydown=echo DOWN
longup=echo LONG UP
longdown=sudo /home/pi/shutdown.py

shutdown.py を作成して、longdown に入れただけ。


/home/pi/shutdown.py

#!/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

長押し!・・・シャットダウンした!

あっけなくできてしまった。最後に、起動スクリプトの最後に追加。(絶対パスで)


/etc/rc.local

   :

:
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の実行権限