1
4

More than 5 years have passed since last update.

おうちハック: Bluetooth LED を 防犯ライト! 定期起動 スマホとの近接判定 Dashで物理スイッチ (俺scriptのservice化)

Last updated at Posted at 2017-01-08

Overview

以下のおうちハックをするにあたって、俺scriptのservice化をしたので、その説明。

を組み合わせて、Bluetooth LED を 防犯ライトにし、定期的な起動や、スマホが近づいたら防犯ライトを自動的にオフにしたり(自分がいるのに点灯とかするのはうざい。。。)、Amazon Dashボタンで、手動でOn/Offできるようにします。(Dashボタンを使うのは、物理ボタンがないと、スマホからアプリでライトをon/offするとか面倒だからです。やはり目の前にあるものは近くの物理的なもので操作したい。。。)

上を実現するために、 Bluetooth LEDのOn/Offのscript に、toggle modeを用意し、Dashボタンが押されたとき に、toggleをできるようにし、 スマホ近接判定とスケジュール起動 しました。

構成物 を 定期的に起動させる

部品はこれまで、上のように作ってきたので、これを組み合わせるわけですが、このままだと、sshでhupでsudo実行する、rebootしたら、再度行うとか、面倒です。

というわけで、Raspberry Pi3 (私は Ubuntu Mate 16.04LTS を動かしています) でserviceとして定期的に動作させたくなってきます。

Ubuntuでは、systemdを使って、サービスを制御しています。

$ sudo systemctl status xxxx

みたいにして、statusを管理したり、enable/disable, start/stop/restartなどをできるようにしてみたいと思います。

スマホなどBTデバイスの近接判定とスケジューラー

https://github.com/hidenorly/bt_proximity_monitor
に、インストーラーを用意したので、

$ sudo install.sh

でできるようにしてあります (実際に何をやっているかは次のnodeのサービス化のところで説明します)

/opt/btproximity/rules.cfg
[16:30-23:30 Mon Tue Wed Thu Fri Sat Sun]
#onStart
/root/bin/bleBulbDriver.rb allOn
#onEnd
/root/bin/bleBulbDriver.rb allOff
#onConnected
/root/bin/bleBulbDriver.rb allOff
#onDisconnected
/root/bin/bleBulbDriver.rb allOn

Amazon Dash Button Launcher

.serviceファイルの用意

/etc/systemd/system に、以下のようなdashbtnlauncher.service を用意します。

/etc/systemd/system/dashbtnlauncher.service
[Unit]
Description = Ble Button Controller with Dash Button

[Service]
ExecStart = /usr/local/bin/node /opt/DashBtnLauncher/DashBtnLauncher.js -b XX:XX:XX:XX:XX:XX -e /root/bin/bleBulbDriver.rb alltoggle
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target

次に、systemdに認識させるために、

$ sudo systemctl enable dashbtnlauncher.service

をします。

$ sudo systemctl list-unit-files --type=service

とかでdashbtnlauncherが表示されればOkです。

実行は、

$ sudo systemctl start dashbtnlauncher.service

です。以後、システムを再起動しても、自動的に起動しているはずです。

動作しているかどうかは

$ sudo systemctl status dashbtnlauncher.service

のようにして、確かめられます。

このようにして、bleBulbDriver.rbにtoggle modeを用意するだけで、最初に書いたように、定期的にランプは付きますが、スマホが近接する状態では光らず、また、dash buttonを押すことで手動でon/offもできるようになりましたとさ。

以上、おうちはっくでした。

1
4
0

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
1
4