鍵を持たずに家を出たい
M5Atom Liteでスマートロックみたいなのを作った。
ソースコードはコチラ
https://gist.github.com/gn-spawn/b1dbef1d5c767a497822100712ebfbe4
ケースは定規で適当に測ってFusion360でモデリングして3Dプリンタで印刷してる。
仕組み
ボタンが押されるとサーボが回転してドアを開閉してくれる。
装置が壊れて家を締め出されると困るので、以下のように90°回転してから戻すような機構にした。
こうすれば外から物理キーで鍵を開けてもサーボに引っかかって開かないということは無い。
M5Atom LiteのマイコンはESP32なのでWiFi接続できる。サーバーも立てられるので、/openへのGETで解錠、/closeへのGETで施錠にしてある。
本当はPOSTでやったりLINE APIと繋いだりした方が良いんだけど、プロトタイプなので一旦これで。
困ったのはAndroidのChromeではmDNSが動かないこと。`m5atom.locl` みたいにアクセスしても解決してくれない。
APIレベルではmDNSが使えるみたいなのとflutterのmDNSライブラリがあるっぽいのでアプリを作るほうが良さそう
物理デバイス楽しい
自分は仕事でWebアプリケーションエンジニアをしているが、画面の中(だいたいブラウザの中)が動くだけで特に感動はない。Hello worldの文字列を出して感動した経験もない。マイコンだとサーボを動かして現実世界に作用できるからプログラムを書いてても楽しいし「作っている」感がある。
これを作るまでは「適当にHTTPリクエスト受け取ったらサーボ動かすだけだろ」とか思っていた。
実際そうなんだけど、プログラム外で考えることがいくつかあった
・サムターンを動かす棒はどうする?
・サーボの固定はどうする?
・ドアへの固定はどうする?
・電源はどこから取る?
・電源を取ったときにドアはちゃんと開く?
などなど、プログラムを書いて動いたら終わり。ではなく、実際に設置して試してみないと分からないことがあって面白い(CADである程度試すことはできるんだろうけど、自分はまだできない)
あとは目の前の課題(鍵を持たずに家を出たい)が自分の技術で解決できるのがめちゃめちゃ楽しい。
2000円くらいで作れるので、鍵かけたか不安になる人や鍵を忘れて出かけてしまうADHD各位にはおすすめです。