オートロックの呼出を検知して自動解除する仕組みを作る
何でもかんでもスマホで操作するスマートホームな時代。
我が家の賃貸マンションにも自宅ドアにSesame5を設置して、
鍵がなくても指紋やSuicaで開けられるようになった!
しかも初代のSesameと比べてとんでもない速さで開けられる!
これぞスマートロック!
完璧!
と思った矢先。一つ盲点が。
そう。マンション1階のオートロックを解除するには鍵が必要なんですね。
結局オートロック解除で鍵を出すなら、
そのまま自宅のドアも鍵でよくね?
この矛盾、多くの方が感じているはず。
オートロックを自動化する方法をネットで探すといくつか出てくるけど、
実用的な解決策がなかなか見つからない。。
インターホン呼び出したあとに手動でスイッチボット操作したり。
#手間かかりすぎ。だったら鍵で開ける。
色々なシステムを経由してものすごいタイムラグが発生したり。
#時間かかりすぎ。だったら鍵で開ける。
そこで作りました。
実用性重視のオートロック自動解除システム。
まずは動いている様子をご覧ください。
エントランスの様子
室内の様子
呼び出した瞬間、間髪入れずに自動解除しているのがわかります。
実用重視で反応スピードにこだわりました。
もちろん宅配便の配達員には反応しません。
実用重視ですから。
これは想像以上に快適です。
結局鍵使った方が速いじゃん。ってものは作りたくなかったので、
試行錯誤して現時点のベストが完成しました。
noteでも執筆しています!
「【実用重視】オートロックの呼出を検知して自動解錠する仕組みを作る。スマートロック化」をぜひご覧ください!
動作の概要
まずはどのような操作で自動解錠するのか、動作概要を説明します。
- 外出中のスマホから本体装置に事前に”OPENモード”の司令を送っておく。
アプリやiPhoneのショートカットを利用する。
※これは位置情報から自動化しても良いが、誤操作防止のため当面は手動 - マンション1階のオートロックで自宅を呼び出す。
- 室内のインターホンでは補助スピーカーの通電を利用して呼出を検知する。
- “OPENモード” であれば物理モータを動かして解除ボタンを押す。
“CLOSEモード” であれば何も反応しない。 - 誤検知防止のため “CLOSEモード” に戻しておしまい。
一般的なインターホンには呼出音を補助スピーカーから出すための端子が用意されています。
呼出がかかるとスピーカーから音を出すために端子が通電状態になります。この通電を利用することで、最速かつ確実に呼出を検知することが可能です。
システム全体の概要
利用している装置たちを紹介します。
極限までシンプルにしました。
次にインターホンです。
ケーブル類の取り回しは改善の余地ありそう。
主な登場人物
- M5StickC Plus
電子工作でよく使われるマイコン。このシステムのメイン。
要はRaspberry PiやArduinoなどの仲間みたいなものだけど、基板むき出しではなく一つの装置にまとめてくれている。
これ一つでWi-Fiに繋がり、モータを使ったり画面表示したり様々な制御が可能。取り扱いも非常にわかりやすい。
- サーボモータ
M5StickC Plus本体に接続。解除ボタンを物理的に押すためのモータ。
- Blynk Cloud
M5StickC Plus本体とリアルタイムに情報をやり取りすることができるインターネットサービス。スマホからの”OPENモード”の司令を伝達してくれる。
無料。iOS/Androidアプリも用意されていて、このシステムをシンプルに実現できたのもこのサービスのおかげ。
この仕組みのポイント
とにかく反応スピードを追求しました。
しかし無条件に自動解除してはいけないため、呼び出されたタイミングで何かしらのステータスを参照する必要があります。
最初は外部に立てたサーバにOPEN,CLOSEのステータス情報を書いたファイルを置き、毎回ファイルを読みに行っていましたが、都度通信が発生するためどうしてもタイムラグが生じます。
そこで、事前に装置に対してステータス情報を渡す方法を検討しました。
装置からインターネットに出ていく通信は簡単ですが、逆が難しい・・・。
そんな時に最近のスマートホーム製品にも採用されているMQTT通信に着目しました。MQTT通信ならリアルタイムに双方向で情報を渡せるみたい。
しかもMQTT通信を行うインターネットサービスも結構ある。
ということで、MQTT通信で装置に対して事前にステータス情報を渡すことで、呼出がかかったタイミングでは通信を発生させず、最短で解除できるようにしました。
MQTT通信とは?
MQTT(Message Queue Telemetry Transport)は、1999年にIBM社とEurotech社のメンバーにより考案されたプロトコルです。2014年にはOASISによって正式な標準規格とされました。
主な特長は、HTTPと比べ軽量なプロトコルであり、消費電力が少なく、非同期な双方向通信を可能にしていることです。
MQTTのヘッダサイズは最小2バイトと小さいため、バッテリーの消費を抑えたい製品や、帯域幅が限られているネットワーク環境に利用されています。
非同期に双方向やグループでの通信ができるため、パフォーマンスやスケーラビリティーにも優れています。
ネットワークに接続されたモノ同士で通信するM2M(Machine-to-Machine)や、モノがインターネットと繋がって通信するIoT(Internet of Things)に適しています。
https://mqtt.org
使った部品と費用
この仕組みを実現するためにかかった費用です。
※複数個まとめて販売されているものは1個あたりで計算
- M5StickC Plus本体 約3,800円
画面なしの廉価版(約1,500円)でも使えます - サーボモータ2個 約1,000円
- 電子工作用のケーブル類 約600円
- 通電検知用のスピーカーケーブル(アイホン純正) 約1,500円
- USB-Cケーブルと充電器 約300円
合計 約7,200円(廉価版なら約4,900円)
意外と安く済みました。
ケーブル類は単価が安く単品購入ができないため実際はもう少し掛かっています。
秋葉原などの電子部品を取り扱う実店舗で購入すればもっと安く手に入るはず。
用意したもの(環境)
- 電子部品(”使った部品と費用”に記載のもの)
- MacBook Air (macOS 14.2.1)
- iPhone14 Pro(iOS 17.2.1)
- アイホン VH-RMA-W(自宅のインターホン)
ここから先は具体的な手順と実現までに悪戦苦闘した道のりを書きました。
真似すれば同じような仕組みは構築可能ですが、注意点を記載します。
この仕組みを真似する際の注意点
- 上述の通りインターホンは「アイホン VH-RMA-W」です。
利用しているインターホンによっては真似できないかもしれません。
あくまでも筆者の自宅での実現方法を載せていますのでご理解ください。
- インターホン内部にある補助スピーカーに接続するための端子を利用します。
インターホンを開けて端子を取り付けること自体は、電気工事士の資格がいらない「軽微な工事」との見解が経済産業省から示されていますが、あくまでも自己責任です。
- M5StickC PlusにはArduinoという言語でプログラムを書き込みます。
ソースコードはなるべくそのまま使えるように載せていますが、エラー発生時などはネットで検索するなどある程度自力で解決する力が必要です。
そっくり真似すれば絶対動くわけではないので、その点ご了承ください。
シンプルに作っていますのでネットで探す力があれば十分解決できます。
作り方
それでは番号ごとに順を追って内容を記載していきます。
ざっくりと流れは以下の通りです。
- 部品を揃える
- PCにArduinoIDEをインストールする
- Blynkに登録してカスタマイズする
- インターホンにスピーカーケーブル接続・設定する
- M5StickC Plusにサーボモータとスピーカーケーブルを接続する
- M5StickC Plusにコード書き込む
- 動かしてみる
続きはnoteでどうぞ!
「【実用重視】オートロックの呼出を検知して自動解錠する仕組みを作る。スマートロック化」をぜひご覧ください!