気の向くままに辿るIT/ICT/IoT
IoT・電子工作

自作スマートロック仕様

ホーム前へ次へ
ESP8266って?

自作スマートロック仕様

自作スマートロック仕様

2024/11/05

 これまでの、更に今後の仕様変更の可能性を踏まえ、自作スマートロックの仕様に関する事項については、本文から転載、追記することにしました。

 尚、初号機にして2024/02/13から運用中のスマートロックを以下、version1として区別するものとします。

仕様決定までの経緯

 マイコンには、ESP32を採用、通信については、結構な回数、いろいろやってみた結果、ESPNowもUDPも試すまでもなく、TCP通信で実用に十分と判断。

 鍵の解錠・施錠には、RFIDでFeliCaやMifareなICカードキー(やタグキー、シールキー等)、キーパッドによる暗証番号(パスワード)、ブラウザ上のボタン、内玄関側の物理スイッチを想定。

 RFID認証ボードとしてPN532/ELECHOUSE NFC MODULE V3を想定、HSU/I2C/SPIに対応の中、I2Cでテストしてみると、それぞれは難なく実用的な時間で操作可能も、いざMifare/FeliCaを併用してみると共に反応が激遅(FeliCaに至っては30秒前後)になることが判明。

 タイミング的には併用直後からも通信方法に起因する可能性を排除できることを確認すべく、UDP通信で試しても同じ様子。

 よって今回は、Mifare、FeliCa何れにするか若干悩みつつ、Mifareで運用することにし、FeliCaの使用を断念、通信方式としては、引き続き、TCP通信を採用。

 オートロックについては、時間経過やBluetooth等いくつかのケースで実装可能も、玄関先のポストを確認とか、草花に水やりとか、隣家訪問とか、スマホやNFCカード、金属の物理鍵を持たず、鍵をかけずにちょっと玄関を出ることもあり、キーパッド入力があっても万一停電になったら締め出される可能性を考慮し、不採用。

 サムターンの向き(開閉状態)のチェックは、物理的な金属の鍵での開閉もあり、ESP32ボードのリセットや停電・復帰もあり得、電源復帰したなら、まさに、その時点の状態を知りたい為、DBデータ等ではなく、都度、センサーによる検出で判定。

 というわけでどこかでひっかかったり、故障したりする可能性はさておき、普段はセンサーで事足りる気がする、万一の停電時も停電前の状態を保持しておいても意味はなさ気なのでEEPROM/SPIFFS/littleFS/SDや外部DBへの保存はしない。

 臨時キーについては、考慮していないながら宅内にいればもちろん、外からでもVPN経由など遠隔からスケッチを修正する恰好でなら発行することも可能も、必要とまでは思えないので今後もないものとして臨時キーの発行はしない。

 鍵の遠隔操作については、そもそも日常的にドア内やドア外で操作するというのは時間がかかり、非現実的なため、基本、他の方法を使い、スマホやパソコンからのWebロックを使うことはないとすると締め忘れなどロック状態確認以外での使用機会はまずない、同居人がいる場合などかえって操作が迷惑な可能性などもあり、一般にも不要と思われる。

 が、数日〜長期不在などを想定した場合、なんらかの防犯対策になり得る可能性をも考慮し、Web操作により、ロック機構部のライブ映像を表示させつつ、iPhone、iPadやAndroidデバイスなどスマホ・タブレットからも操作可能としておく。

 => [完成・運用中の後日談]
 遠隔操作は在宅時でも有効なこともあり、既知の来訪者に対してスマホはともかく、パソコンであればブラウザは常時開いており、せいぜい最前面への切り替え程度なので「PC操作中、インターホンが鳴ったら、解錠」してから玄関に向かうというシーンは何度かありました。
(よって自作中のテレビドアホンにも解錠ボタンは装備しようかと。パソコンやスマホでの応対も可としつつ、モニタ付きドアホン親機も作る予定で親機なら専用ゆえ常時操作パネルは表示されより簡便、手動でも可ながらコールされれば映像も自動表示されることを想定しているため、カメラでも確認でき、より確実な上、予定外の訪問でも問題なく、信頼に値する人なら音声通話で解錠した旨、伝えて入ってきてもらうこともできるので)

 鍵の開閉(サムターンの回転)機構において当初想定し仮組みしてみたギア3枚による間接的なサムターン操作構造は強度的に無理があり、手持ちのSG90/MG90S/28BYJ-48など何れも機能させるに至らず、MG995はタイミング悪く壊れており、MG996Rを追加購入するも到着を待つまでもなく、構造上の問題と見切って見送り。

 また、手持ち材料から軸径6mmのMG996Rより5mmのステッピングモータ28BYJ-48の方が都合が良い中、作業の流れ上、他のモータや改造前には試さなかったものの、気分転換にトルクや回転数アップとなることが知られている28BYJ-48をユニポーラからバイポーラに改造、先んじてこれを試してみるとモーター軸延長上で直接サムターンを操作することはできたため、今回はこれを採用することに。

 尤もより省スペース化できることに越したことはなく、当初想定の3枚ギア構造の再検討、各種モータでの再検証の上、いけるのなら、運用後にでもギア3枚構造に差し替える予定。

 あと意外とセキュリティ的に脆弱、誤動作の可能性、オーバースペックなどの理由からノックのリズム、音声操作、また、指紋認証、静脈認証、顔認証など生体認証による解錠・施錠は除外。

 給電には、次のような理由からスイッチ式コンセント経由を採用。

 電池式なら停電時でもキーロックシステム部分は使えるとは言え、今回の場合、全てESP32間はESPNowを使用の上、カードキーやキーパッドなら認証パネル側も併せて電池式にしないと停電時には使用できず、ライブ映像付きブラウザパネル上のボタンに至っては仮にIPカメラを電池式にしたにしても停電時にはLANひいてはVPNが使えずスマホ操作が行えず、意味はなく、一方でオートロック機能をなしとし、ロックして出かける際は、万一に備え、物理鍵常備前提であり、通電時も電源断時も物理鍵での開閉が可能であること。

 仮にそれらがクリアになったとて予定されたものならまだしも、不測の停電になることは稀、それに比べると仮に数年もてば似たようなものも数ヶ月程度なら電池交換の方が頻繁な可能性が高く、電池にする場合、今回の構想だと玄関ドア内外の2つのESP32ボード共にそうする必要もあり、電池切れの心配含め、むしろ煩雑そうであること。

 よって今のところ、電池にするメリットを思いつかないこと。

 というか、過去検証の為だけにESP32開発ボードにおける電池からの給電をテスト含め、考えてみたことがあったものの、一定時間間隔によるセンサー値のロガー(ログ取り)や植物への水やり、(万一にも電池切れして食いっぱぐれるとかわいそうなので実際コンセント給電にしたくなるだろう)給餌器など時間のほとんどがディープスリープ状態で、かつ、GPIO入力で復帰する方法がない限り、年単位の交換頻度は無理があると思えたのでハナから除外。

version 1製作中の仕様変更

FeliCa認証見送り
 Mifareには、Type A(NFC-A)/Type B(NFC-B)があり、今回は、その内、Type-Aのタグ・カード、併せてFeliCa(NFC-F)の認証...を可能としたいところでしたが...
 それぞれは快適も、併用するとMIFAREで10秒程度、FeliCaに至っては30秒程度と反応が遅すぎるという謎現象があり、FeliCaについては今回見送り。
 というか、FeliCaも単独なら快適に機能するのでMIFAREを見送っても良かったのですが、なんとなく。
 ただし、後日、再検証予定、スケッチは対応済みでFeliCa対応の交通系カードもあるので解決するようならFeliCaも運用に加える予定。
ESP32ボードリセットは不要と判断
 製作・検証中、起動、接続、稼働が不安定に思えたことから、パスワード認証において特定のキーでドア内外の各ESP32ボードをソフトウェアリセットするようにしようかと思っていたのですが、完成後は安定し、不安定な状況が再現することがなかったので必要ないと判断し、今回は除外。
 尚、認証パネル側のリセットについては、使用したRFIDリーダー/ライターモジュールPN532 ELECHOUSE製NFC MODULE V3のライブラリにおいてボード上のボタン押下によるハードウェアリセットやスケッチ内でESP.restart()などによるソフトウェアリセット含め、スケッチアップロード後のリセットなどでは、ほぼ100%モジュールを見失う性質(バグ?)があって断念。
 ESPHomeでは、これを解決する方法があった模様ですが、本家ライブラリでは同様の方法は使えそうもないなと。
 USB抜・挿とかスイッチ付きコンセントなどのOFF/ONとか電源断からの通電だと、まずもって見失うことはないんですけどね。
 尤もRFIDリーダーを見失っても停止させず、キーパッドか物理鍵で開閉という手もあり、コンセント給電なので入室後、電源断・再通電という手もあるにはあるのですが。
 これを解消すべく、認証パネル側の給電に自作スマートプラグを使用することも検討したものの、前述のように不具合が再現しないため、見送り。
サムターンの向きを検出するセンサーの変更
 当初、昔買った37センサーキットに複数あったチルトスイッチか、リミットスイッチを2つ使うことを想定した中、チルトスイッチモジュールについては、接点側は良きに計らうにしても接点断の際は断したことしかわからない、物理的に2箇所リミットスイッチを付けるスマートな方法を思いつかないなど他のセンサーの使用を模索。
 結果、同じく昔、興味本位で買って使いみちにあぐねていた6軸モーションセンサー(3軸加速度・3軸ジャイロセンサー)を採用することに。
複数枚ギア構造からモータ直でサムターンを回す構造に変更
 構造変更の理由は、当初、想定した3枚ギアの間接的な鍵の開閉機構の強度が足りなかったり、ギアの軸固定の不備などで駆動時、水平を保つことができなかったり、トルク伝達に失敗した為。
 そんな不備のある構造で回せるはずもなく、手持ちのサーボSG90、MG90S、28BYJ-48-5V(ユニポーラ)何れもうまく動かずじまい。
 当初想定のギア構造で再製作、差し替える場合も後述のバイポーラ版28BYJ-48を採用する予定も、余力があれば、改造前のユニポーラ28BYJ-48や各種サーボでも、更に気力があれば、現行構造での動作確認もしてみるかも。
サーボからステッピングモータに変更
 構造変更に伴う動作検証時、バイポーラに改造した28BYJ-48が、他を試すまでもなく機能したため、これに決定。
 ステッピングモータを選択するに至ったのは、検証前に不慮の故障を遂げたMG995の代替としてMG996Rを追加購入も、ポチった直後、届く前に28BYJ-48のバイポーラへの改造でトルクを稼ぐことができることを思い出し、試すに至り、モータードライバにバイポーラ対応のA4988/DRV8825を使い、サムターンを回すことに成功したから。
 また、当初こそサーボを想定していたものの、ギアを噛ます構造検討時にギア構成によって最大回転角が180度では微妙なケースもある、240度だか270度、360度などこれ以上回るサーボは高価になりがちな点もあり、28BYJ-48でいけるに越したことはないと考えていたので好都合でもありました。
サムターン代替つまみ増設の見送り
 構造変更に伴い、構造・スペース的に設置場所がなくなってしまったため。
 増設つまみについては、ロック機構を当初思い描いた構造とすべく再製作予定につき、差し替える場合は、ボタンも残しつつ、つまみも増設予定。

version 1運用中の検証・仕様変更

ライブカメラ用LEDライト増設
 内玄関ロック機構部周辺が終日暗めなため、Webロックや確認時ブラウザでアクセスした際のみライトアップするため(フォト/回路/スケッチ)。
丸ノブ用ハンドルレバー撤去
 丸ノブ錠からレバーハンドル錠に交換したため。
PN532対策・検証の一環として
 運用後数ヶ月は安定していたものの、酷暑の影響か、その後、無線が途切れるからか、再接続時になのか、PN532モジュールを見失うことがあり、RFID認証できなくなり、電源の再投入を余儀なくされるようになったことによる検証として
  Wi-Fi中継器の導入 => PN532対策・検証
  中継器導入に伴い、中継器と既存AP 2台を対象にWiFiMultiを実装
 中継器導入後も、無線が途切れても再接続するようWiFiMultiを採用、何か間違えたのか、スケッチを修正しても尚、再発するので無線に起因する可能性を考慮し、有線化検証。
  有線LAN付きマイコンの追加導入 => PN532とWT32-ETH01でスマートロック認証
  有線LAN付きマイコン導入に伴い、既存のキーパッド認証用ESP32は引き続き、無線かつ、FFC/Flexible Flat CableなUSBによる給電、有線マイコンについては、CAT5e以上のLANケーブル1本で通信と共に給電も賄うべくPoEハブ+PoEスプリッタ構成に。

ホーム前へ次へ