あっきぃ日誌

ラズピッピブログのようなオタクブログのようななにか

玄関の施錠チェッカー

冬に一度、深夜誰かにうちの玄関の扉を開けようとされて、当然鍵がかかってるのでゴンッ!と引っかかる音がなって終わったんですけど、めちゃくちゃこえーッ!!となり、それからしばらくは夜布団に入ってから「あれ、鍵かけたっけ……?」と気になるようになってしまいました。そうじゃなくても、外出してから「あれ、鍵かけたっけ……?」となりがちなので、そう言う感じの不安を解消するための装置を作ってみました。

構想

サムターン自体に何かをつけるのは、普段手で持つ時に邪魔になるので避けたかったので、デッドボルト(鍵かけたらニュッと出てくるやつ。今ググって知りました)にテグスを貼り付け、チューブを通してなんか機構に通すところまでをまず考えてみました。これでテグスが2cm前後動くのは確認できました。

実際の実装。セロテープで雑に貼ったので、劣化すればテグスが取れたりなんだりすると思いますが、賃貸なのでこれ以上のアレは慎みます。チューブは熱収縮チューブを切って、これもセロテープで固定しました。

次にヒモの動きを何で検知するか。秋月でいくつかそれっぽいセンサーを買ってきました。本命はまんなかの振動センサーで、これがテグスによって角度が変わることで中のボールが動いて開閉が管理できることを想定していましたが、思ってたよりも動きが微妙だったので断念。右のマイクロスイッチだとデッドボルトによってテグスが引っ張られた力でもオンオフできそうなことがわかったため、これが採用されました。左のリードスイッチは面白そうだったのでついでに買ってみたもの。これも精度的に微妙そうなので採用しませんでしたが、磁石でオン・オフできる単純っぽい仕掛けが面白かったので、いずれどこかに活用してみたいかも。

システム部分は、Raspberry Pi Pico W+乾電池で動かして、スイッチのオンオフで起動したらZabbixあたりに通知して、次にスイッチが変化するまでスリープすることを考えていました。が、Pico Wはディープスリープ周りの実装がPython系で微妙、Arduinoもなんかたいへんそう、CのSDKで頑張れば……という、Picoエンジョイ勢には厳しい感じだったため断念。

手元に転がしていたSeeed XIAO ESP32C3がArduinoでディープスリープを実装できそうということがわかったので、XIAO ESP32C3+リチウム電池の構成になりました。これだとスリープ時に43μAの低消費電力を実現できるので、かなり良さそうです。乾電池が使えなくなりますが、基板裏面のパッドからリチウム電池に接続すれば、充電も可能な環境が構築できるので、良さげですね。

工作

マイクロスイッチは100円ショップで買ってきたケースに固定して、空きスペースに電池と基板も突っ込む感じにしました。ケースはクリップ付きでしたが、簡単に外せたのと、この部分がくぼんでいたおかげでマイクロスイッチを取り付けるのに重宝しました。取付け用の穴をクリップがあった部分に開け、ケース上部にはテグスを通す穴も開けました。あと、ケース裏面にはドアに貼り付けるためのマグネットも取り付け。しかし、すでに片方取れてしまっており……。

基板づくり。XIAO ESP32C3を乗せるピンソケットと、マイクロスイッチのオンとオフ用のピンヘッダーと、扉の開け締めの変化時に光らせる2色LED、コードを書く途中でスリープを阻止するようにジャンパーピンヘッダーという構成です。2色LEDはもらい物だったんですが、活用できて良かったです(まだ大量にある)。

配線は、マイクロスイッチの入力にD2とD3、スリープ防止ピンにD4、LEDにD5とD7を割り当て。D6を使おうとしたら挙動が怪しく、調べたらUARTに使われているので使用非推奨とのこと。うおおい!ディープスリープからの復帰にはD0〜D5が対応なので、スイッチ部分は問題なさそうです。

lab.seeed.co.jp


コード書き

Arduinoで作成。スリープからの復帰がうまくいかなくて半日くらい唸っていましたが、GPIOピン番号とパッド番号が違うことに気づいて解決できました。罠すぎる。ずっとプルアップ周りとか配線とか自分の頭を疑っていました。自分の頭を疑うのが正解だった模様。(追記)図の矢印を間違えてて修正。ここでも自分の頭が弱い問題が。

参考にさせてもらったのは以下の記事など。

ESP-WROOM-02からZabbixサーバーにZabbix senderプロトコルでデータを送信する #Arduino - Qiita

Seeed Studio XIAO ESP32C3の省電力運用について考える #Arduino - Qiita

完成

という感じで仕掛け全体が完成しました。ボックスに一式が収まっていていい感じな反面、見た目からコナンのトリック臭が漂っており、やや物騒みもあります。なお、テグスの長さを調整するために、磁石フックで折り返しを作っています(箱の右下)。箱の上のやつは使わなかったので関係ないです。

解錠するとテグスが緩んでマイクロスイッチがオフになってXIAO ESP32C3が起動、緑に光り、Zabbixにデータが送られます。

施錠するとテグスが張られてマイクロスイッチがオンになってXIAO ESP32C3が起動、赤に光り、Zabbixにデータが送られます。

動画で。最後のほうで施錠したのに緑になっているのは、その前の解錠時にWi-Fi接続に失敗してタイムアウトし、リセットされたタイミングと被ったためです。その後、きちんと施錠モードになったので、そのあたりもちゃんと動いていそうで良いですね。と思ってたら、アンテナを付け忘れていたので、そのせいや(つけたら安定した)。

www.youtube.com

まとめ

玄関施錠チェッカーを手頃な部材でなんとかする工作でした。整骨院でこの話をしたら、スマートドアじゃだめなんですかと聞かれたのですが(それはそうすぎる)、スマートドアの事故とか障害を聞くとこえーなと思いがちなので、そこまでの機能はいらないけど、冒頭の件もあるのでチェックくらいはしたいよねという気持ちで作ってみました。作りきれる気がしていなかったので、完成できてよかった。

玄関にはもう一つXIAO ESP32C3が、キッチンの照明を切る装置(サーボ)兼部屋の照明スイッチ(REST API操作)用としているので、玄関はESP32のシマになってしまいました。Raspberry Pi Picoがシマを奪える日は来るかしらん……!!?!?

そして次は、Zabbixに送られたデータをどう視覚化するかが課題ですね。すでに動いてるラズピッピでLチカさせるのが手っ取り早そうではありますが、どうすっかな〜っ。

追記

一晩でセロハンテープからテグスが取れた