これまでの、更に今後の仕様変更の可能性を踏まえ、自作スマートロックの仕様に関する事項については、本文から転載、追記することにしました。
尚、初号機にして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入力で復帰する方法がない限り、年単位の交換頻度は無理があると思えたのでハナから除外。