ラズパイzero を bluetoothボタンで操作
ラズパイzero にはボタンなどがないので
コマンドから実行になるけど
毎回シャットダウンや撮影のたびにコマンド実行は
ターミナル環境がないとできないので
簡易ドライブレコーダーZeroWにBluetoothボタンでオンオフ編
Bluetoothシャットダウンボタンを作る #300円でIoTボタン
を参考に
bluetoothボタンで操作できるよう設定
あといらないものを削除
を参考に
Wolframとmathematica
libreoffice
Scratch
1 2 3 4 5 6 | sudo apt-get remove --purge libreoffice* sudo apt-get purge scratch sudo apt-get purge wolfram-engine sudo apt-get purge sonic-pi sudo apt-get clean sudo apt-get autoremove |
で容量を確保
しかし
Waiting to connect to bluetoothd…
となりそのまま止まってしまう
raspberry pi3 をbluetooth接続するときのエラー
を元に
1 2 3 4 5 | sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install pi-bluetooth sudo apt-get install raspberrypi-sys-mods |
を実行したが変わらず
を参考に
1 | sudo apt-get install bluez pulseaudio-module-bluetooth python-gobject python-gobject-2 |
次にbluetooth の接続
1 2 3 | bluetoothctl power on scan on |
で周辺デバイスを検索
1 | [NEW] Device 2A:07:98:10:34:99 CW Shutter |
となるので
1 | pair 2A:07:98:10:34:99 |
でペアリング
しかし
1 | trust 2A:07:98:10:34:99 |
のあと
1 2 | Failed to pair: org.freedesktop.DBus.Error.NoReply Waiting to connect to bluetoothd... |
となってしまう
1 | sudo apt-get install pi-bluetooth pulseaudio-module-bluetooth pavucontrol bluez |
を実行し再起動
しかし途中で途切れるため
Raspberry Pi3 の Bluetooth を Ubuntu Mate 16.04 LTS で使えるようにする
を参考に
1 2 3 | sudo apt-get install rpi-update -y sudo rpi-update sudo reboot |
でファームウェアのアップデート
これで再度
1 | bluetoothctl |
としたら接続できた
次に
簡易ドライブレコーダーZeroWにBluetoothボタンでオンオフ編
を参考に
1 2 | sudo apt install ruby sudo gem install bluebutton |
で bluebutton のインストール
イベント検知設定ファイルを作成
1 | sudo nano ~/.config /bluebutton |
でファイル作成し
1 2 3 4 | keyup= echo UP keydown= echo DOWN longup= echo LONG UP longdown= echo LONG DOWN |
を記述して保存
しかし、このプログラムは
CW shutter では機能しない
Raspberry Pi + Bluetooth リモコンシャッター + Google Home で「こっちに来て!」メッセージ
を参考に
1 | sudo apt-get install evtest |
でインストール
evtest を使うことでデバイスが発行するイベントを拾う
しかしなぜか evtest での検出はできなかったため
ダイソーの
AB Shutter3 ボタン
を購入することに
1 2 3 | sudo bluetoothctl power on scan on |
として
AB Shutter3 ボタンの電源をONにすると
1 | [NEW] Device FF:FF:00:26:F2:FF AB Shutter3 |
が検出される
これでMACアドレスがわかったので
1 | scan off |
でスキャン停止
1 2 3 | connect FF:FF:00:26:F2:FF pair with FF:FF:00:26:F2:FF trust FF:FF:00:26:F2:FF |
で接続して次回からも自動認識するように信頼させる
しかしうまくいかないので
1 2 | sudo apt install bluez bluetooth libbluetooth-dev build-essential sudo apt install bluez-cups |
を実行
しかし結果は変わらない
raspberry pi と AB Shutter3(bluetoothボタン) の連携
によれば最初についている電池はお試しなので
ペアリングはできるがボタンを押したときのイベントが拾えない
という状況があるらしい
このため新しく電池を購入し再度実験
しかし結果は変わらず
1 2 3 4 | Try to find device AB Shutter3... Device AB Shutter3 find at /dev/input/event2 Unable to connect to X server Reading events from /dev/input/event2 ... |
のまま
他の手段を探し
100均Bluetoothボタンをラズパイに活用
を参考に
1 2 3 4 5 6 | disconnect FF:FF:9A:4A:49:94 remove FF:FF:9A:4A:49:94 power on power off pair FF:FF:9A:4A:49:94 connect FF:FF:9A:4A:49:94 |
と繰り返していたら繋がるようになった
bluetoothctlコマンドについては
bluetoothctl
を参考に
ただ
ラズパイで300円のリモートシャッターをIoTボタン化する方法
にあるように複数台購入しても1台しか動かないケースもあり
ペアリングできても動作しない
電池交換しても改善されない
ということもあるらしい
問題点としては長押ししても
longup
longudown
を検出しないので
1つの動作しかできてない
とりあえずシャットダウン機能を実行してみる
1 | sudo nano shutdown .sh |
でファイルを作成
1 2 | #!/bin/bash sudo shutdown -h now |
として保存
1 | sudo chmod +x shutdown .sh |
で実行権限付与
1 | sudo nano ~/.config /bluebutton |
で内容を
1 2 3 4 | keyup= echo UP && ~ /shutdown .sh keydown= echo DOWN longup= echo LONG UP longdown= echo LONG DOWN |
として保存
1 | sudo bluebutton -c ~/.config /bluebutton |
だと
1 | sh: 1: /root/shutdown .sh: not found |
となってしまうが
1 | bluebutton -d= "AB Shutter3" -c /home/pi/ .config /bluebutton |
として
ボタンを押すと無事にシャットダウンができた
なお2つのボタンの認識もできるようだが
残念ながらこちらも実行できなかったため
実質的に1つの動作のみになっている
当面はシャットダウンボタンの活用になりそう