こんばんは。キモオタクです。
先日こんな記事を投稿しましたが、その後めでたくオートロックを完成させることができました。
スマートホームできた!!!! pic.twitter.com/vhP3qTsCz2
— ラウンドロビン (@tsu4_o) 2022年6月9日
1週間ぐらいテストをしてから記事に起こそうと思っていましたが、
稼働開始3日後に普通に締め出されました。
(写真はありません。スマホを持ち歩いていなかったので…)
今回のブログの趣旨は第一世代の問題点を洗い出し、スマートロックを再設計することです。
発生した問題
通電しているにも関わらずNFCリーダがタグを読み込まなくなり、外からの開錠が不可能になりました。ちなみにその時は、自宅に窓から侵入という手段で事態を解決させています。泥棒って大変なんだなと身に染みてわかりました。なぜか内側からのボタン開錠は正常に動作したので、本体が逝っている訳ではないようです。
原因(推定)
一番考えられる原因はNFCリーダーとArduinoを繋ぐ線の接触不良です。ビニル被覆の導線を基盤に直付けしていたのでまあそれはそうなるわなと後から考えると思います。
また、ソフトウェアのクラッシュなども考えましたが再現性がなく、検証ができていないのが現状です。
つしお㊙情報
— ラウンドロビン (@tsu4_o) 2022年6月4日
はんだ付けが下手すぎて、秋月電子出禁になったらしい pic.twitter.com/7WBp6wCBLk
本当に雑すぎる。導線が露出しとるやんけ!
対策
コストをケチって家の中にあるもので作ろうとしたのがそもそもの原因な気もします。ケーブル等はしっかりとした作りのものに換装し、基盤との接合部分はコネクタにします。
さらに、外からの開錠方法が1つしかないのも問題でした。今回はNFCタグによる開錠に加えてWi-Fi経由での開錠も実装していきたいと思います。
パーツ調達
皆さん大好き秋月電子通商さんで行いました。首都圏住みなら実店舗に買いに行けるのですが、僕は最果ての地・北海道に住んでいるので通販で調達しました。主なパーツはこちら↓
2×7ピン(14P)両端コネクタ付リボンケーブル(フラットケーブル): パーツ一般 秋月電子通商-電子部品・ネット通販
ドアとドアの間に挟むのにビニル被覆7本はまずいでしょ、ということで購入。ボックスヘッダも同時に注文しました
表面実装用リードスイッチ SP3−1A16: センサ一般 秋月電子通商-電子部品・ネット通販
ドアの開閉を超音波センサで調べていましたが、無駄が多いのでリードスイッチに変更
片面ガラス・ユニバーサル基板 Cタイプ(72×47.5mm) めっき仕上げ: パーツ一般 秋月電子通商-電子部品・ネット通販
ジャンパ線ではなくスズメッキ線である程度しっかりと実装することで、断線を防ぎます
ESP32−DevKitC−32E ESP32−WROOM−32E開発ボード 4MB: 無線、高周波関連商品 秋月電子通商-電子部品・ネット通販
Arduino megaほどのピン数はいらなかったこと、消費電力の問題などから小型かつ安価なesp32に変更しました
できたもの
前回の記事よりかなりすっきりしました。リーダーとesp32間の通信がフラットケーブル1本に集約されてるのがいい。
前回の配線はひどいものでした。
これですからね。勿論リーダには外装がありましたが、こんなんで断線しないわけないだろ…ドアの間に配線挟むんやぞ…バガがよ
比べて今回は
ちゃんとユニバーサル基盤に実装しました。はんだ付けがへたくそすぎて基盤が焦げてるのかヤニが付着してるのかわかりませんが、かなり見た目が悪くなっていますね。まあ動くのでいいでしょう。
サムターンをひねる部品も新調しました。
前回はsg90で作りましたが、トルクが足りなかったので今回はsg92rです。コイツだととてもスムーズに回ります。1.8kgf/cmと2.5kgf/cmの差は大きかった…
実際に設置してみます。
Arduino megaがデカすぎたのもあるのですが、結構小さくまとまっているのではないでしょうか。
前回のと比較してみます。
デカい。そしてすべてが雑である。
周辺機器の作成もやっていきます。
NFCタグを腕時計に仕込む
これでオートロックは完成ですが、毎回財布からNFCタグを取り出していては物理鍵と手間が変わりません。そこで、腕時計の中にNFCタグを埋め込んでいきます。
何の変哲もない100均の腕時計の
フタの裏にタグを張り付けて
元の場所に戻します。これでApple watchを買わずともスマートロックに対応した時計の完成!材料費150円!
注意点として、NFCは金属板と干渉してしまうので腕時計の裏側はプラスチック製か何かに換装する必要があります。
詰まったところ
プルアップという概念
作り始めはリードスイッチの感度が悪かったのですが、プルアップ回路を物理的に実装したら劇的に改善しました。Arduinoは内部プルアップに対応していた気がしていたのですが、esp32はその機能がない or ガバいのでしょうか。
はんだ付け
小学生以来でしたので、非常に苦戦しました。とびぬけて器用でもないのに適当に設計と実装を進めてしまう悪癖により、回路の見栄えが非常に悪くなってしまっています。次回は設計だけでもゆっくりしっかりやれたらいいな…
物理
中学物理で挫折した人間としては、ボルトとアンペアの違いってなに????みたいなところから勉強しなおさなければいけなかったのが非常に屈辱でした。オームの法則すらうろ覚えな自分に腹が立ってしょうがない。
反省点
設計の重要性
自分にどんな機能が必要で、どんなパーツでどんな配線をするか、事前に時間をかけて決めていれば製作期間は半分で済んだでしょう。はんだ吸い取り線の消費量も。実際に使っている状況をイメージすることと、多動性障害を抑え込んで少し落ち着くことを覚えたいところです。
フェイルセーフ
「ミスは必ず起こるので、起こっても大丈夫なようにする」という基本的なことが全くできていませんでした。別の開錠手段や、ドア外からの再起動などができれば締め出されることはなかったかもしれません。誰が言ったか忘れましたが「ハードウェアは石橋を叩いて壊すぐらいでちょうどいい」という言葉を胸に刻んで今後も電子工作を続けていきたいですね。
部品発注
今回は通販で部品を購入するだけでしたが、あれも買っておけばよかった、これはいらなかった、間違えて別のものを買ってしまった等のミスがひじょ~~~~に多かったです。人生は落ち着きが大事ですね、本当に。
まとめ
こんな感じで動作するようになりました。機能自体は前回とあまり変わっていませんが、信頼性はかなり上がったと思います。
スマートロックできた!!(1週間ぶり2回目) pic.twitter.com/X9GcKs5H9n
— ラウンドロビン (@tsu4_o) 2022年6月18日
Wi-Fiによる開錠は中間テストが終わったらやります。それまでは物理鍵をカバンの奥底に忍ばせて対処ということで…
やっぱり実際に手を動かして何かを作ってみるのは非常に勉強になります。オートロックも原理は簡単なので、皆さまも一度作ってみてはいかがでしょうか。
この記事を読んでオートロックに締め出される人が一人でも減れば幸いです。
では。