🔨

Bluetoothデバイスを意図的に圏外にするための工作の軌跡

2021/12/05に公開

hey Advent Calendarの5日目を担当します、
STORES 決済でAndroidエンジニアをしているYamatonと申します。

なんで圏外?

さて、皆さんはアプリ開発の最中、Bluetoothデバイスとの「接続と切断」周りの実装をしたい時、どのようにしていますか?どのように、というのは、Bluetoothデバイスをどうやって接続させたり、切断させたりしていますか、ということです。

普段の生活の中でも、ワイヤレスイヤホンだったり、スピーカーだったり、他にもスマートバンドなど、スマホとBluetoothデバイスを接続する機会は多いと思います。ただ、接続と切断のプロセスは、使用開始時と終了時に行うものなので、これを短時間に繰り返すことはあまりないでしょう。

Bluetoothデバイスの性質にもよりますが、電源ONの後に初期化処理が走って、すぐには接続できなかったり、電源OFFにはボタンの長押しが必要だったりと、意外と手間と時間がかかります。これを開発中に何度も繰り返しているとかなり効率が悪いです。

そこで、電源のON/OFFを伴わない接続と切断の方法として、Bluetoothデバイスを圏外にするのはどうだろうか、という案を思いつきました。

DIY大好き

私は元々、今で言うDIYが大好きで、なんでも手元で作りたくなる性分です。以前は、ただ「作るのが好き」だったのですが、その根源を言語化してくれている本があり、読んだときはかなり腹オチしたのを覚えています。

岩明均のヒストリエという作品で、6巻に出てくる言葉です。引用します。

初め死に体の素材が自らの手の中で方向性を持ち始め最適用の姿に形成されてゆく……
その工程がたまらないのだと

そういうわけで、早速材料を買い揃えて、電波遮断ボックスを作っていきます。

ちなみに、事前に「電波遮断」についてのリサーチを軽く行った上で材料を選択しています。

material

作り方

  • 材料
    • アルミホイル
    • フタの閉まる容器(今回はブリキ缶)
    • セロハンテープ
      以上!
      はい、簡単ですね!もう材料を見ただけで作り方など不要なレベルです。

アルミホイルは、「電波遮断」についてリサーチした際、スマートキーのリレーアタック対策として最も遮断効率の高い素材としてヒットしました。フタの閉まる容器は、同様にリサーチの際に「少しの隙間も許されない」という情報があったからです。セロハンテープは、上記の通りなので、隙間を埋めるためのものです。

Tinplate

手順

ですから、↓これを

set1

↓こうして、

set2

↓こうして、

set3

↓こう!

set4

できましたね。

complete

なん…だと…?

いかがでしょうか。ちゃんとBluetoothデバイスの接続は切断されましたか?

ええ、切断されませんね。デバイスの種類にもよるかもしれませんが、少なくとも私が開発で携わるデバイスは、元気に接続されたままでした。

connecting

なぜでしょうか。

  • 隙間があるとだめ
    • 隙間がないようにセロハンテープでビッタビタ
  • アルミホイルで覆う
    • ブリキ缶に貼り付けてる
  • ブリキ缶がまずい?
    • いやいや、スマートキーのリレーアタック対策ではブリキ缶でもいけてた
  • ブリキ缶+アルミホイルの組み合わせ
    • ……これか?

早速試します。

set5

切断されとる!

どうやら、組み合わせの問題のようですね。ブリキ缶の買い損です。こうなると、問題は2点あります。

  1. どの程度の隙間まで許容されるのか
  2. アルミホイルで毎回包むのが大変なのでフタのできる容器にしたのに意味が無い

「1. 隙間の許容範囲」については、実験で検証しました。このくらいです。

OK NG
ok mg

左がOK、右がNGです。
NGの方、どうなっているかというと、

OKNG

左右3回折り返しているうち、右側だけ『1回折り返しを戻した』だけです。当然、どちらもアルミホイル同士が密着するように折っています。

では、「2. 毎回包むの大変」についてどうするか。
ブリキではない容器にアルミホイルを貼り付けて、極力隙間をなくす。

面白くなってきやがった!

電波に関する学術的知識は無いので予想でしかありませんが、ブリキとアルミホイルの組み合わせはブリキの方に問題があった=ブリキ以外の素材の容器を使えば問題ないのでは、という考えに至りました。

再び材料を買いに走ります。

  • 材料
    • 紙箱
    • 両面テープ
      以上!アルミホイルは続投です。
紙箱 両面テープ
material2 material3

手順

まずはフタから、要所要所に両面テープを貼っています

set7

ピッタリ、百貨店で包装紙で包むが如くピッタリ

set8

角はきっちり折り目をつけて、あるものはなんでも使って隅っこまで折り込みます

set9

次は箱の方、これも綺麗に折り目をつけて

set10

きっちり折り込んでいく

set11

いざ、実験

アプリとBluetoothデバイスを接続状態にして箱へ

フタを閉めると……
接続したままですね

距離を離せば、ワンチャンいけるかと思いきや
ダメ……!

しかし、思い出してほしい。私は、紙箱を2つ用意していたことを
大きい方の紙箱もアルミホイルで包んで、

material2

こうだ!

どうだ!?

祝・切断されました!!!

おわりに

これにて、私の複数日に跨る昼休みの工作ライフはおわりとなりました。

あーでもない、こーでもない、と悩みながら何かを作っている時というのは、とても楽しいですね!

というわけでこのエントリも締めとなります。例の如く、採用のリンクを貼って終わります。今ならこのBluetooth圏外箱の作り方を手取り足取り教えます!Android/iOSエンジニアの皆様、ご興味ありましたら、採用サイトをご覧いただけますと幸いです。

https://hello.hey.jp/engineer

明日のhey Advent Calendar、6日目は STORES 予約 でカスタマーサクセスをしている金城さんです。お楽しみに。

Discussion