Help us understand the problem. What is going on with this article?

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした