Arduino互換ボード Blend MicroでスマートロックをDIYしてみた。
BLE(Bluetooth Low Enegy)の勉強がてら、スマートロックを自作しました。
スマートロックってのは、家の鍵をスマホで開けられるやつのことで、
海外だと5種類くらいあるみたい。日本でもAkerunってとこが作ってるやつです。(まだ一般販売はしてないのかな?)
海外のものは、シリンダーごとごっそり交換するタイプが多くて、自分で付けるには敷居が高そうでした。
Akerunはその点わかってて、ドアのつまみ(サムターン)にかぶせるだけみたい。
今回は、Akerunに倣って、サムターンにかぶせるタイプを作りました。
ちなみに、海外のだと、Augustが一番デザイン的にはかっちょいいですね。
シリンダーごと交換みたいだけど。
個人的な縛りで、
- 乾電池で動作させる。
- ドアへの付け外しが簡単にできる。
- 高価な部品・器具は使わない。
- 高度な工作(旋盤使うとか、3Dプリンタ使うとか。)はしない。
を守って作りました。
黒いのは電池ボックスで、銀色のちっこいのはネオジム磁石です。透明ケースは綿棒のケースwすごくサイズぴったりでした。
ネオジム磁石はダイソーに売ってる。ダイソーすごい
使ったのはBlend MicroってArduino互換ボードでBLEチップが最初から載ってるやつ。
郵送代もそんなに高くなくて、一個$34.90。
橋本商会のこの記事で知ってとりあえず2個買ってみました。
配線がごちゃっとしてますが、僕の配線技術がなかっただけで、回路図にすればすごくシンプルです。
横から。
サーボモータはAmazonで買いました。=> SG90
サムターンをつまむやつは、ユニバーサル基板をパキっと折って、セロハンテープでとめて作りました。
ちょうどサムターンが収まるようにするのにだいぶ苦労しました。
綿棒ケースをサムターンに被せちゃうので、サムターンを直接回せなくなります。
そのため、ボード上にスイッチをつけて、そこから操作できるようにしました。
あと、鍵で物理的に開けられた時のために、サムターンに接する箇所にスイッチを仕込んで、
開けられた/閉められたを判定してサーボを自動的に動かすようにしています。
さて、使った材料はこちら。
- Blend Micro x 1
- カーボン抵抗10kΩ x 2 (100本単位でしか売ってないので素直に100本かいましょう)
- タクトスイッチ x 6
- 電池ボックス 単3×4本 x 1
- ユニバーサル基板 x 2
- 耐熱電子ワイヤー
- 分割ロングピンソケット
- ピンヘッダ
- 綿棒(100本入り) x 1 (ケースだけ使う)
- ネオジム磁石 (ダイソーで。)
- セロハンテープ (一番出番多い。)
- サーボモータ SG90 x 1
- 半田ごて
- 半田
くらい。
仕組みとしては超単純で、
スイッチ2つ(Lock/Unlock)とサーボモータつけただけです。
iOSアプリ。
swiftには手を出してません。objcで書きました。AutoLayoutめんどい。
アプリから、ロック / アンロックができるのはもちろん。
外出から戻った時に、自動でアンロックする機能も作りました。
自動アンロックはBLE再接続時にやっちゃえばいいんだけど、
家の中でも接続が切れちゃうこともあるので、
自分の家の場所を登録しておいて、そこから出たら自動アンロックを有効にして、
自動アンロックされたらその範囲内から出るまでは自動アンロックを無効にするようにしてます。
CoreBluetoothがだいぶ便利なので、実装はそんなに面倒じゃなかったです。
Blend MicroはPeripheral専用機なので、iOSアプリがCentralです。
ちなみに、チップの制約でBlend MicroはiBeaconにもなれません。
ざっと駆け足て説明してみました。
やろうと思えば以外とできるもんですね。Arduinoの登場でこういう電子工作系もだいぶとっつきやすくなったし、
BLEとかでライトに通信ができるんで、夢が広がります。
ちなみにAkerunとか、市販品は、サーバにアクティビティログ残したり、一定期間有効な一時キーを発行して友達に貸すなんてこともできます。
外からの様子も撮りました。
鍵で開けられた時もちゃんと連動してます。