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

iPhoneなど Bluetooth が 近接した時、離れた時に、何かする

More than 1 year has passed since last update.

Overview

防犯ライトなどを Raspberry Pi などで動かしたいことがあると思います。
そのとき、繰り返し動作とかタイマーとかを、全てcronでやってもよいのですが、
よりflexibleに記述したくなることがあると思います。

また、上のような用途だと、自分がいるときには、動いてほしくないとかもあると思います。

このような用途を満たすためのscriptを書いてみました。

構成要素としては、

  • Raspberry Pi 3 + Ubuntu Mate 16.04 LTS
  • Ruby script
    • スケジュール機構 + 制御script機構
    • Bluetooth検出部

です。

https://github.com/hidenorly/bt_proximity_monitor
におきました。

使い方

rules.cfg
[13:30-23:30 Mon Tue Wed Thu Fri Sat Sun]
#onStart
echo "blub On"
bleBulbDriver.rb allOn
#onEnd
bleBulbDriver.rb allOff
#onConnected
bleBulbDriver.rb allOff
#onDisconnected
bleBulbDriver.rb allOn

[2017-01-01 03:00-03:26]
#onStart
bleBulbDriver.rb allOn
#onEnd
bleBulbDriver.rb allOff
#onConnected
bleBulbDriver.rb allOff
#onDisconnected
bleBulbDriver.rb allOn

みたいにruleを書きます。

./bt_proximity_monitor.rb -t 70:EC:E4:XX:XX:XX のように監視デバイスを指定するか、devices.cfgなどにmac addressを記述しておきます。

iPhoneなどに対してRFCOMMを貼るようにしているので、起動したらacceptしてください。(Settings-Bluetoothで、BT自体を有効化したり、BTの接続要求が来たらacceptをしてください)

補足: githubのREADME.mdには書いてありますが、-d rfcommで一度rfcommでpairingした状態で、-d l2pingモードにしてください。最近のスマホはpairingしたことのあるデバイスからしかl2pingの応答を返さないようになっているため。

あとは、#onXXXのあとに書いている行を実行してくれます。

なお、rssiを取得するときには、sudo起動する必要があります (hcitoolなどを使うので)

上のruleの例では、 前回 作った bleBulnDriver.rb を使いましたが、なんでも起動できるので、好きにしましょう。

では、happy hacking!

hidenorly
All tweets are my personal opinions and do not represent those of my employer.
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
ユーザーは見つかりませんでした