クラウドを使わない見守り装置を、AIに設計させて1日で作った

停電しても、ネットが落ちても、山の中でも動く。そういう装置を作りたかった。

ハードが作りたいというのがあった。

世の中のスマートホーム製品は、たいていインターネットとクラウドを経由する。だから災害時に真っ先に死ぬ。見守りや防犯みたいに「困ったときにこそ動いてほしいもの」が、困ったときに動かない。これはおかしいんじゃないか、と思っていた。

結論から言うと、1日でできた。ルーターもWi-Fiのパスワードもクラウドも、一切使っていない。マイコン2枚が、直接会話している。

そして今日いちばん面白かったのは、設計を、別のAIに外注したことだった。

別のAIに、設計だけを頼んだ

僕が普段使っているのは Claude Code の Opus 4.8。そこにもう一つ、Fable 5 という別のモデルがある。深い設計や分析が得意だと言われている。

僕は「Fableでやろう」と言っただけだ。そこから起きたことは、こうだった。

│ 「fableでやろう」

Opus 4.8(いつも話している)

│  仕様書を書いて依頼

Fable 5(別のAI・別プロセスで起動)

│  設計書2本を書いて返す

Opus 4.8 が受け取って、実装・配線・デバッグ

モデルを切り替えたのではない。 Opus 4.8 が、自分とは別のAIを呼び出して、仕事を投げた。これは「サブエージェント」という仕組みで、得意分野の違うAIに、得意な仕事をさせられる。

ここで一番大事だったのは、Fableは僕たちの会話を一切知らないということだった。ゼロから立ち上がるので、何も文脈がない。だからOpusは、依頼文の中に全部書き出した。

手元にある部品の全リスト(買い足さない前提)

絶対条件(サーバーを使うな。ルーターも使うな)

禁止事項(「命を守る」と名乗るな。医療機器を名乗るな)

設計の判定基準(6つ目のモードを他人が書けるか)

引き継ぎの質が、そのまま成果物の質になった。 これは人に仕事を頼むときと、まったく同じだ。

そして返ってきた設計が、良かった。

「コアはインタープリタ、モードはデータ」

Fableが書いた設計の1行目が、これだった。

普通に作ると、こうなる。

見守りモードのコード

防犯モードのコード    ← それぞれ別々に書く

労働安全モードのコード

Fableはそうしなかった。コアは8つの「語彙」しか知らない、という作りにした。

しきい値を超えた / 急に変化した / バタついた回数

何も起きていない / 電波が途絶えた / 夜間だけ ……

そして、個別のモードはこの語彙で書かれた「設定表」にすぎない。コアは福祉も防犯も労働安全も知らない。新しいモードは、コードを1行も書かずに追加できる。

実際Fableは、僕が頼んだ3つのモードに加えて、自分で考えた2つのモード(温度の逸脱監視、独居者の「生活反応がないこと」の検知)を同じ設定表で書いてみせた。汎用性を、自分で証明した。

これがどういうことか、後から効いてくる。

実際に動いたもの

1. ルーターなしで、マイコン同士が直接話す

ESP32というマイコンには、Wi-Fiとは別に ESP-NOW という通信方式がある。ルーターを経由せず、機械同士が直接電波を飛ばす。Wi-Fiのパスワードすら設定していない。

2枚をUSBで給電しただけで、会話が始まった。片方をPCから抜いて、ただの充電器に挿しても、平然と喋り続けていた。インターネットが要らないというのは、こういうことだった。

2. 「沈黙」を検知する

これがこの設計の核心だと思う。

普通、センサーは「何かが起きたこと」を検知する。でもFableの設計は、「何も来なくなったこと」自体をイベントとして扱う

相手が0.5秒ごとに「生きてるよ」と言い続ける

3秒間、何も聞こえなくなった

「分からなくなった」と判定する

USBを抜くと、3秒後にもう1枚のLEDが高速点滅を始めた。挿し直すと、勝手に元に戻った。再起動もペアリングもボタン操作もいらない。

ここで大事なのは、これが「異常が起きた」ではないということ。相手が倒れたのか、電池が切れたのか、遠くへ行きすぎたのか、受信側からは区別がつかない。だからこの通知の意味は「分からなくなった」であって、それ以上でも以下でもない。設計書はそこをはっきり書いていた。この誠実さが、僕は好きだ。

3. 揺れを検知して、猶予を置いて、人間が取り消せる

傾きセンサー(SW-520D)を繋いだ。金属のボールが転がって接点が開閉する、ただそれだけの部品だ。

これは加速度センサーではない。転倒を正確に検知することは、原理的にできない。 装着の向き次第では、倒れても何も起きない。逆にポケットの中で寝返りひとつで発火する。

だからFableの設計は、こうなっていた。

揺れを検知 → すぐには通報しない

猶予10秒。ブザーが鳴り出す(本人に予告する)

残り時間が減るほど、ビープが速くなる

ボタンを押せば → 取り消し。何も起きない

押さなければ  → もう1枚に通報。鳴り続ける

誤検知はバグではなく、仕様。 だから「誤報を人間が握りつぶせる」ことを、設計の核に据える。取り消せない設計は、この基盤では書けないようになっている。

実際に動かすと、これがすごく腑に落ちる。ブザーが速くなっていく間、「押せば止まる」という安心感がある。技術じゃなくて、思想の部分だ。

4. 電波の強さで、距離が見える

おまけみたいに作ったこれが、いちばん「おおっ」となった。

無線のパケットには、電波の強さが乗っている。それを読むだけで、相手との距離が分かる。部品はゼロ。プログラムだけ。

実測してみた。

くっつける      -1 dBm

手で握りこむ    -47 dBm  ← 手が電波を吸う

46 dBの差。dBは対数なので、電波の強さで言うと約4万倍違う。手で握るだけで、これだけ変わる。

これをLEDの明るさに繋いだ。近づけば明るく、離せば暗くなる。 距離が、目に見えるようになった。

つまずいたところ(ここが本題かもしれない)

きれいに書いたけど、実際は半日、配線で溶けた

ブレッドボードが本当に分からなかった

あの白い、穴だらけの板。あれの「どの穴とどの穴が裏で繋がっているか」が、見えない。

同じ列(縦)の A・B・C・D・E は裏で繋がっている

でも溝を挟んだ F・G・H・I・J とは繋がっていない

端の「+/−」の行は、横に繋がった別物

しかも僕のマイコンは幅が広くて、基板が穴を物理的に覆ってしまう。使える穴が片側1行しかない。「27番ピンの真下の穴に挿して」と言われても、その真下が基板の下敷きになっていて見えない

AIは「GNDから右へ6本目です」と説明してくれる。でも目の前の基板の文字は小さくてかすれていて、数えられない。言葉と現物が噛み合わない時間が延々と続いた。

結局、ブレッドボードを捨てた

解決策は、拍子抜けするほど簡単だった。

マイコンをブレッドボードから引き抜いて、ピンに直接線を挿す。

ブレッドボードあり → 「どの穴がそのピンなのか」を数える

ブレッドボードなし → 文字が書いてあるピンに、直接かぶせる

両端が穴になっている線(メス-メスのジャンパー線)を使えば、マイコンの足に直接挿さる。列を数える作業が、まるごと消えた。

これで一気に進んだ。ブレッドボードは「部品をたくさん繋ぐときの土台」であって、部品が2〜3個なら、無い方が早い。

抵抗が読めない

LEDを繋ぐには抵抗が要る。でもキットの抵抗は、色の帯が薄くて読めないし、印字も雑だった。

危ないのは、間違えると壊れること。

220Ω・470Ω・1kΩ → ◎ LEDに使える

10Ω・100Ω    → ✕✕ 小さすぎ。LEDとマイコンが壊れる

470kΩ      → ✕ 大きすぎ。光らない

そして罠がある。「470」と「470K」は、1000倍違う。 Kが付いているかどうかだけで、まったく別物になる。

僕は結局「1K」と読めたものを使った。少し暗くなるが、安全側なので初心者にはむしろ良いらしい。

一度に3つ足して、全部壊した

これが一番の失敗だった。動いていた状態から、ブザーとボタンとGNDの配線を、一度に3つ足そうとした

結果、それまで動いていた傾きセンサーの配線まで巻き込んで、全部繋がらなくなった。どこが悪いのか、もう分からない。

部品は1個ずつ足す。1個足すごとに動作確認する。 当たり前のことだけど、うまくいっている時ほど欲が出る。

いちばん効いた技:マイコンに自己申告させる

配線が分からなくなったとき、決定打になったのがこれだった。

「どのピンが、今GNDに繋がっているか」を、マイコン自身に喋らせる。

やり方はこうだ。全部のピンを「内部で軽く電圧を上げた状態」にしておく。線がGNDに繋がっているピンだけ、電圧が引き下げられる。それを読んで、報告させる。

目で穴を数える    → 分からない。間違える。心が折れる

マイコンに聞く    → 「今、33番が繋がっています」

これで一発だった。僕が狙っていた穴と、実際に繋がっていた穴が、4つズレていたことが判明した。目視では絶対に気づけなかった。

さらに進めて「どのピンとどのピンが線で繋がっているか」を総当たりで調べる道具も作った。配線図を、マイコン自身に復元させる。

これは電子工作全般で効く発想だと思う。見えないものを目で確認しようとせず、装置に喋らせる。

閾値は、勘で決めない

もう一つ、地味だけど大事だったこと。

傾きセンサーの「どれくらい揺れたら反応させるか」を決める必要がある。ここで勘に頼らず、実測した

じっと静止      0〜2  (1秒あたりの信号の暴れ回数)

振る・傾ける   100〜700

100倍以上の差があった。だから「20を超えたら動いたと判定する」と決めた。静止時のノイズの10倍、動作時の5分の1。どちらからも十分に離れている。

この数字は、僕の部屋の、僕の部品で測った値だ。設計書に書いてある値ではなく、目の前の現物から出した値。 これがあるから、後で「なぜ20なのか」と聞かれても答えられる。

方針:まずエンタメ。人の安全に関わるものは、その先

作りながら、はっきりした方針が固まった。

見守り、防犯、労働安全。これらは外したときに、人の安全に直結する領域だ。だから薬機法や警備業法の話になるし、「検知できなかった責任」がついて回る。設計書も、そこを厳しく釘刺していた。

名乗ってよいこと  「気付くきっかけを増やすかもしれない装置」

名乗ってはいけない 「命を守る」「転倒を検知する」「医療機器」「防犯装置」

一方で、エンタメなら、外しても誰も傷つかない

近づくと光る      ← 今日、もう動いている

離れると鳴る      ← これも動いている

二人の距離で振動が変わる ← 部品を足せばすぐ

同じハードウェア、同じコード。違うのは「責任の重さ」だけ。

だから順番はこうする。軽い方で先に世に出して、経験と信用を貯めてから、重い方へ行く。

そしてこれは、Fableの設計思想の証明でもある。カップル用の玩具と、独居老人の見守り装置は、まったく同じコードで動く。違うのは設定表1枚だけ。汎用性というのは、こういうことだった。

これから必要なもの

1. 買っておくといいもの(自分メモ)

テスター(マルチメーター) — 千円台から。これが一番効く。 抵抗値が読めない問題が永久に消える。当てるだけで値が出る。今日いちばん時間を溶かしたのがこれなので、最初に買うべきだった。

USBモバイルバッテリー — スマホ用のもので十分。これでPCから切り離せて、持ち歩ける装置になる。「災害時でも動く」を実演するなら必須。

振動モーターのモジュール — 数百円。「モジュール」と書いてあるものを買うこと。 生のモーターは、ハンダ付けとトランジスタ回路が必要になる(モーターは電流を食いすぎて、マイコンのピンに直結すると壊れる)。モジュールなら基板にその回路が載っていて、線を挿すだけで動く。

メス-メスのジャンパー線 — 多めに。ブレッドボードを使わない配線なら、これが主役になる。

2. 必要な知識

電気は「行って帰る」 — これが全部の土台だった。マイコンのピンから出て、部品を通って、GNDに帰る。GNDに帰れないと、何も動かない。 今日、ブザーもボタンも死んだのは、全部この一点が原因だった。

抵抗は「流れすぎ」を防ぐ栓 — LEDは抵抗なしで繋ぐと焼き切れる。値が大きいほど暗くなり、小さいほど明るく、そして危険。

ピンには限界がある — マイコンのピンが安全に流せるのは12mA程度。振動モーターは70mA食う。だから直結できない。 間にトランジスタ(力の弱いマイコンが、力持ちを操るスイッチ)を挟む。リレーも同じ理屈。

部品には向きがあるものと、ないものがある — LEDは向きがある(長い足が+)。抵抗は向きがない。傾きセンサーも向きがない。

3. 必要な技術

ハンダ付け — 今日は一度も使わなかった。ここが意外だった。ジャンパー線で挿すだけで、全部動いた。

ハンダが必要になるのは、この2つのときだ。

小さくして完成品にするとき (試作から製品へ)

線が細くて挿さらない部品  (コイン型振動モーターなど)

つまり「動くものを作る」だけなら、ハンダは要らない。「持ち歩ける形にする」段階で初めて必要になる。

プログラム — これは正直、AIに任せられる。僕は一行も書いていない。ただし「何を作りたいか」と「何が起きているか」は、自分で言語化できないといけない。今日AIが役に立ったのは、僕が「鳴らない」「反応しない」と現物の状態を伝えられたからだ。

ここまでで、何ができるか

ハンダなし、Wi-Fiなし、今日の構成のままで、これだけできる。

距離で光る・鳴る・強さが変わる (電波の強さを読むだけ。部品ゼロ)

揺れ・傾きの検知

明るさの検知(光センサー。「夜だけ作動」などのスイッチに使える)

温度の検知

「相手が黙った」の検知

外部機器のON/OFF(リレー経由。サイレンやライトを起動できる)

電池で持ち歩く

これで作れるもの:迷子防止タグ、置き忘れ防止、二人の距離で反応する玩具、部屋に入ると光る演出、深夜の見回り補助、簡易な侵入通知。

ネットが要らないので、電波が届く範囲(見通しで100〜200m、屋内なら1〜2部屋)で完結する。 これは弱点でもあり、強みでもある。

4. その先:Wi-Fiとアプリ

今日はあえてWi-Fiを使わなかった。でも同じESP32に、Wi-Fiは最初から載っている。

Wi-Fiを繋ぐと、こうなる。

【今】    マイコン ⇄ マイコン   (その場で完結)

【Wi-Fi】  マイコン → 家のルーター → インターネット → スマホ

外出先から通知が受け取れる

履歴が残る/グラフになる

複数の家をまとめて見られる

できることが一気に増える。 でも同時に、失うものがはっきりある。

ネットが落ちると死ぬ

停電すると死ぬ(ルーターも電気で動くので)

サーバー代がかかり続ける

個人情報がクラウドに出ていく(「いつ動いたか」は生活情報だ)

だから僕は、Wi-Fiは「後から足すもの」であって、「土台にするもの」ではないと考えている。今日作ったものは、ネットが死んでも動く。その上に、余裕があればWi-Fiを乗せる。逆にはしない。

アプリまで行くなら、スマホから通知を受けたり、履歴を見たり、複数台を管理したりできる。ただしそこはサービス運営の世界で、電子工作とは別の仕事になる。急がなくていい。

免責

この記事は、僕(素人)が1日でやったことの記録です。

回路や配線の内容について、一切の責任を負いません。 電気を扱う以上、間違えれば部品が壊れますし、扱い方によっては発熱や発火の危険もあります。特に、

コンセントの電源(AC100V)を扱うこと

電池を短絡(ショート)させること

抵抗を入れずにLEDを繋ぐこと

これらは危険です。真似する場合は、必ずご自身で調べ、ご自身の責任で行ってください。

そして繰り返しますが、ここで作ったものは、人の安全を保証する装置ではありません。検知できないことが構造的にあります。誰かの安全を、これに預けてはいけません。

僕がやりたいのは、① まずエンタメを作る → ② その先で、役に立つものを作る、という順番です。①のうちに失敗して、学んでおきたい。

おわりに

一日でここまで来られたのは、設計を別のAIに投げ、実装を手元のAIとやり、詰まったところは装置自身に喋らせたからだと思う。

でも一番効いたのは、「勘で決めない」という態度だった。

閾値は実測から決めた。配線はマイコンに自己申告させた。分からないものを「たぶんこうだろう」で進めなかった。そして、できないことは「できない」と書いた。

転倒は検知できない。電池は数日しか保たない。電波は壁を越えると弱くなる。弱点を先に言えることが、たぶん一番の強みになる。

次は、これでエンタメを1つ作ろうと思う。