52
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-11

はじめに

ということで、私もビッグウェーブに乗ってみました。ダイソー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の実行権限

52
56
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?