2013-11 << 2013-12 >> 2014-01

2013-12-14 (土)

* 財布をよく無くすので,Bluetoothのタグを付けることにした

財布はよく行方不明になるし,見当たらなくても数日くらいは,まあいいかと思って過ごしてしまったりするので,財布が無くなったら通知してくれるアプリを作ることにした.

ただ,財布持たずに出歩くことはよくあるので,Androidスマートフォンと,家のPCと,会社のPCのどこからも捕捉できなくなったら通知する方針にするようにしたい(けど考える限り色々めんどう)

Bluetooth LEタグ

安かったので,LBT-VRU01を買ったのだけど,財布に常時入れておくには厚すぎるので分解する.

IMG_20131214_210116.jpg

右下のがBluetoothのコントローラICでCSR1000が使われていた.その上に128kのEEPROMがつながっている.あとは16MHzのクリスタルとか,電源周りの回路とかが周辺と基板裏側にある.CSR1000には16bitプロセッサが載っているようなので,これだけでBluetoothデバイスは作れる.

左側の大きめのICはNY5P025AS24で,音を鳴らすためだけに使われてるっぽい.少しもったいないな...上の方の電解コンデンサもバイブレーション用のモーター駆動時の電圧降下を避けるためについてるみたいなので,Bluetoothのビーコンとして使いたい場合は外してしまって良さそう.

IMG_20131215_154119.jpg

適当に不要な部品を外して,電池はCR2032を直接ハンダ付け.これなら財布に入る.

Androidアプリ

財布が近くにあるかチェックするAndroidアプリを作る.LBT-VRU01はiPhone用を謳っているけれど,2013-12-11に書いた通り,GATT経由で読みだした情報だけで色々できるので,簡単にアプリは作れた.

https://github.com/binzume/where-is-saifu-android

ただ,AndroidのBluetoothのペアリング周りの仕様がLBT-VRU01と相性が悪い気がする.デバイス側からAndroidにペアリング要求を出して,一度端末側でキャンセルすると,デバイスはスキャンにも応答しないし,Android側のペアリング済みの一覧にも無いという状態になる.Bluetooth LEはペアリングしなくても通信できるのでどうにかなるのだけど.AndroidはアプリからBLEのペアリングに介入できないのがネックかも(もしかしたらできるのかも).

PC

プログラム書こうと思ったら,X220のBluetoothは3.0なのに気づいた...アダプタ買わないと.そして,Bluetooth LEの仕様上,特定の機器との接続中は他のデバイスには応答しないので,何か策を考えないと.

サーバサイド

財布がどこにあるか取得するAPI.SinatraとRedisで適当に作る.

http://api.binzume.net/saifu/location

こんな感じに,最後に財布の反応があった場所とか時間とか電界強度が取得できる.いまのところスマートフォンからしかアップデートしてない...

僕がどこにいるか分かってしまうセキュリティ上のリスクはあるので,そのうちGETにも認証かけるかも...

本当は,クレジットカード止めたり,カード再発行手続きまで自動化してくれるサービスが欲しいのだけど,作る労力に見合わないし,クレジットカード会社のAPIも見当たらないのでやめる.誰か作ってください.

2013-11 << 2013-12 >> 2014-01