手首をギュッと握れば、ドアが開く。
今回つくったのは、Apple Watch のジェスチャー(クレンチ)で部屋の鍵を開閉できるスマートロックシステムです。物理的なつまみをサーボで回す方式なので、賃貸でも工事不要で取り付けられます。手のひらサイズの基板の中に、Bluetooth・タッチセンサー・MOSFET 制御の電源カット回路まで詰め込んだ、ちょっと欲張りな一台になりました。
#はじめに
家に帰ってきて、両手に荷物を抱えたままドアの前で立ち往生する。あの数秒のもどかしさが、ずっと気に入らなかったんです。
ポケットからスマホを取り出して、Face ID でロックを解除して、アプリを開いて、ボタンを押して……やっていることを文字に起こすと、本当に多いですよね。「鍵を開ける」というただそれだけの動作に、こんなにステップが必要なのは、なんだかちょっとおかしい気がしていました。
だったら、いつも手首に巻いている Apple Watch から、握り拳をギュッと作るジェスチャーひとつで開いてくれたらどうでしょう。荷物を抱えたままでも、雨の日でも、夜中に酔って帰ってきても、そのまま解除できるのはめちゃくちゃ便利だと思うんです。
そしてもう一つ。「電池駆動の電子工作を、本気で省電力に振ってみたかった」というのも大きな動機でした。データシートを眺めて「μA」という単位に憧れたことのある方なら、たぶんこの気持ちは分かってもらえるはずです。シンプルでかっこいい、そして電池が何ヶ月も持つ。そんなモノを、自分の手で作ってみたかったんですよね。
#つくったもの
手首をギュッと握れば、ドアが開く。
今回つくったのは、Apple Watch のジェスチャー(クレンチ)で部屋の鍵を開閉できるスマートロックシステムです。物理的なつまみをサーボで回す方式なので、賃貸でも工事不要で取り付けられます。手のひらサイズの基板の中に、Bluetooth・タッチセンサー・MOSFET 制御の電源カット回路まで詰め込んだ、ちょっと欲張りな一台になりました。
##動いている様子
##できること
メインの解錠は Apple Watch のジェスチャーです。 拳を握る(クレンチ)と Watch のショートカットが走って、わずか 1 秒ほどでカチッとドアが開きます。手にコーヒーを持ったままでも、傘をさしたままでも、ぜんぶ片手で完結します。
それだけだとちょっと不安なときのために、逃げ道もちゃんと用意してあります:
- ▸Web アプリから施錠/解錠 — Apple Watch を忘れた日や、家族との共有にも使えます
- ▸Google Home から音声操作 —「OK Google、ロックして」で寝る前の戸締まりが完了
- ▸室内のタッチセンサー — 外出時はロック背面に指でタッチするだけ。スマホもウォッチも要りません
そして個人的に一番気に入っているのがバッテリーまわりです。LiPo 1 セルで 3ヶ月以上連続稼働してくれて、減ってきたら USB Type-C で充電するだけ。電池交換のために分解する手間はもうありません。「鍵」というインフラに、ちょうどよく現代的なユーザー体験を後付けできた感じがして、けっこう気持ちよく使えています。
#技術スタック
仕組みはとてもシンプルです。Apple Watch から始まった「拳を握った」という意思が、ネットワークと電波をリレーされて、最終的にサーボの回転にまでたどり着きます。

##使ったもの
| レイヤー | 使ったもの | 役割 |
|---|---|---|
| 入力 | Apple Watch + ジェスチャー(クレンチ) | ハンズフリーで意思を伝える |
| 中継 | iOS ショートカット | HTTPS POST を発射 |
| ゲートウェイ | Raspberry Pi | LAN 内サーバー兼 BLE 送信機 |
| エッジ MCU | Seeed Studio XIAO BLE (nRF52840) | 小型・低消費・Bluetooth 5.0 |
| アクチュエータ | サーボモーター MG90S | 物理的にロックのつまみを回す |
| 電源 | LiPo バッテリー(1セル 3.7V) | USB Type-C 充電対応 |
| 入力(室内) | タッチセンサー(TTP223 系) | RISING 割り込みでスリープ復帰 |
| 制御 | N-ch MOSFET(AO3400A) / P-ch MOSFET(AO3401A) | サーボ電源の物理スイッチ |
| 基板設計 | KiCad で 4層基板を起こしました | プロトタイプ→量産ライクな実装に |
| 筐体設計 | Fusion 360 でモデリング | 基板・電池・サーボを1つのケースに統合 |
| 筐体造形 | Bambu Lab H2C(自宅 3D プリンター) | PLA で外装パーツを一気にプリント |
ポイントは、送信側に重さを寄せて、エッジ(XIAO BLE)を徹底的に軽くしているところです。常時 BLE Scan は電力的にどうしても重いので、XIAO 側は BLE Advertising の受信に振って待ち受け、必要なときだけサーボに通電するようにしています。この役割分担が、後で書く「省電力」の肝になっています。
そしてもう一つ、見落とされがちですが筐体まわりが完全に自宅完結しているのもこのプロジェクトの好きなところです。基板の寸法を Fusion 360 に取り込んで、サーボのトルク反力や、ロックつまみとの位置関係を見ながらケースをモデリング。それをそのまま Bambu Lab H2C で出力すれば、数時間後には実物が手元に出来上がっています。「設計 → 試作 → 改修」のサイクルを一日に何回も回せるのは、自宅 3D プリンターを持つ大きな恩恵だなと改めて感じました。
#苦労したところ
##「待機電流をゼロに近づける」という戦い
「省電力です」と書くのは簡単なんですが、実際にミリアンペアを削っていく作業は、なかなか手強かったです。サーボモーターって、何もしていなくても微弱な電流が流れ続ける部品なんですよね。これを 24 時間 365 日許してしまうと、いくら大きな電池を積んでも 1〜2 週間で力尽きてしまいます。
そこで採った戦略が、**「使わないときは電源そのものを物理的に切り離す」**というものでした。
##MOSFET でローサイドスイッチを組む(消費電力カットの要)
N チャネル MOSFET(AO3400A)を入れて、サーボの GND ラインを XIAO の D3 ピンから ON/OFF できるようにしています。
- ▸Gate: XIAO の D3 (
MOSFET_PIN) - ▸Drain: サーボの GND
- ▸Source: バッテリーの GND
- ▸PWM 信号線: XIAO の D2 (
SERVO_PIN)
待機時は D3=LOW にして MOSFET をオフにします。これでサーボへの GND が物理的に切れるので、待機電力はほぼ完全にゼロです。鍵を回したいときだけ D3=HIGH にして導通させて、D2 から PWM 信号を送ってモーターを回します。
ハマったポイントは 2 つありました:
- プルダウン抵抗を忘れずに。Gate と GND の間に 10kΩ を入れておかないと、MCU の起動時に Gate がフローティングしてサーボが暴れます。最初これを省略してしまって、再起動するたびにロックが「ガチャッ」と勝手に動く心霊現象に悩まされました……。
- MOSFET はロジックレベル対応を選ぶ。XIAO の出力は 3.3V なので、Gate 閾値電圧(V_GS(th))が低いものでないとそもそも開きません。IRLML2502 系などが定番です。
##タッチセンサー × 割り込み × ディープスリープ
外側のジェスチャー解錠とは別に、室内側はタッチセンサー(TTP223 系)で開閉できるようにしました。指でロックの背面を「ぽん」と触ると、SIG ピンが LOW から HIGH に立ち上がります。XIAO はディープスリープに入ったまま、この立ち上がりエッジを GPIO 割り込み(RISING)でハードウェア的に検知して、CPU が叩き起こされる仕組みです。
- ▸VCC: 3V3(TTP223 は待機時も数 μA レベルで省電力です)
- ▸SIG: XIAO の D1(
TOUCH_PIN)
「割り込みでスリープから復帰する」という、組み込みでは王道の手法を初めて自分の手で組んだとき、何かが腑に落ちた感じがありました。
##KiCad での基板設計



これらの回路をすべて手のひらサイズに収めるために、KiCad で基板を起こしました。回路図エディタでネットリストを作って、PCB エディタに移ってフットプリントを配置して、配線を引いて……。最初は何度もエラーで足止めを食らったんですが、何度もやり直しているうちに「この部品はこっちに寄せたほうが配線が短くなるな」みたいな感覚が少しずつ育ってきました。
結果として、ディープスリープモード時の消費電流 1 mA以下 を達成できました。これで内蔵 LiPo バッテリー 1 セルで 3ヶ月以上の駆動が現実のものになりました。最初の動機にあった「μA に憧れる気持ち」には少しだけ近づけた気がしています。
#おわりに
プロジェクトを通して、省電力設計の解像度がぐっと上がりました。それまでは「ディープスリープを使えば省エネでしょ」くらいの曖昧な理解だったものが、「リーク電流をどこで殺すか」「待機中に通電している部品はどれか」「割り込みでどこから何を起こすか」という、もっと具体的な視点で回路を見られるようになってきました。データシートの μA 表記が、ようやく自分の中で意味のある数字として読めるようになってきた感覚があります。
そして、何度やっても自分で設計した基板が手元に届く瞬間はワクワクします。JLCPCB から届く小さな緑色の長方形に、KiCad の画面上で何時間もかけて引いた配線がそのまま実装されているのを見るたびに、「設計が物理に変わった」という不思議な感動があるんですよね。今回の基板は実装してから一発で動いてくれた(!)ので、その嬉しさは格別でした。
次にやりたいことのリストも、もう増え始めています:
- ▸バッテリー残量を BLE 経由でスマホに通知 (残量警告ができるとさらに安心)
- ▸Matter 対応にしてスマートホーム規格にちゃんと乗せる
- ▸NFC / FeliCa 解錠の追加
「電池駆動を前提にすると、むしろ設計の自由度は広がる」というのが、今回の一番の発見でした。電力という制約は、機能を諦めさせるのではなく、設計に骨格を与えてくれる気がします。次に作るモノでも、この感覚は大事にしていきたいです。
ここまで読んでくださってありがとうございました!