Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
50
Help us understand the problem. What is going on with this article?
@nori-dev-akg

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

More than 3 years have 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の実行権限

50
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
50
Help us understand the problem. What is going on with this article?