ゴミ箱に超広帯域無線タグを搭載:10m先で誤差3cmを達成も、通知が届かなかった理由

ゴミ箱に超広帯域無線タグを搭載:10m先で誤差3cmを達成も、通知が届かなかった理由

IoTUWBHome Assistantエンジニアリング実践

データソース:Simon Green 的 BinRange 项目记录

2026年9月28日、開発者のSimon Greenは、長年温めてきたスマートホーム自動化の初の実戦テストを迎えた。彼は自宅にある6個の大型ゴミ箱(ホイール付きゴミ箱)に超広帯域(UWB)無線タグを取り付け、10メートル離れた場所での測距誤差をわずか3センチメートルにまで抑え込んでいた。しかし、ゴミ箱が回収のため道路脇へ出されていた3時間以上の間、システムからの電波は完全に途絶。最終的に戻ってきた1件の「回収完了(傾き検知)」通知はタイムスタンプが58分も遅延しており、自動化スクリプトによって無効データとして破棄されてしまった。

この試行錯誤は、ハードウェア開発における普遍的な現実を浮き彫りにしている。センサーが提供するのはあくまで「数値の精度」であって「現場の真実」ではない。センチメートル級の計測精度と「今何が起きたかを把握すること」の間には、脆弱な物理通信リンクという大きな壁が存在する。

電波強度による推測を捨て、10m先で誤差わずか3cmに

プロジェクトの動機は極めて明快だった。SimonのHome Assistantは、何曜日にどの種類のゴミ箱を出すべきかすでに把握していたが、「実際にゴミ箱が道路脇へ運び出されたかどうか」だけが分からなかった。初期の解決策は、安価なBluetooth Low Energy(BLE)タグを取り付け、屋外に配置したESP32のBluetoothプロキシを経由して、受信信号強度(RSSI)から距離を推定するというものだった。

しかし、電波の強度から物理的な距離を逆算するのは袋小路だった。無線信号の減衰は距離だけで決まるわけではない。レンガ壁の遮蔽、庭に停めた車、フェンスによるマルチパス反射、アンテナの向き、さらにはバッテリーの電圧低下だけでもRSSIは急激に落ちる。「電波が弱い」という現象は、ゴミ箱が20メートル遠くに移動したからなのか、それともタグが駐車中の車のドアに遮られただけなのか区別がつかない。この旧方式は激しいバッテリー消費、激しくドリフトする測定値、そして高負荷で頻繁にクラッシュする屋外プロキシとの戦いをもたらした。

UWBはこの問題を根本から変えるアプローチをとる。曖昧な信号強度に頼るのではなく、2つのデバイス間を無線パルスが往復する伝播時間(Time-of-Flight: ToF)を直接計測する。距離の算出は「時間 × 光速」という純粋な物理計算になり、環境条件に左右される不確かな推測から、確固たる物理的事実へと変貌した。

実測データはその原理的優位性を如実に示した。メジャーを用いて10.1メートルを厳密に測定したキャリブレーションテストにおいて、システムの平均測定値は10.09メートルを記録し、標準偏差はわずか3センチメートルに収まった。強度マッピングから高精度タイムスタンプへの転換によって、空間距離の把握はようやくオカルトじみた電波推測から脱却し、信頼できる物理座標となったのである。

330ドルで手に入れた高精度、それでも車とアンテナには勝てない

ハードウェアのアップグレードには現実的なコストが伴った。6個のゴミ箱を追跡するため、SimonはまずMakerfabsのESP32-WROVER / DW3000開発ボード2枚に123.64ドルを投じてPoC(概念実証)を実施。動作を確認した後、さらに330ドルを投じて正式なKKM K4Wタグ10個と専用プログラミング治具を購入し、総額は453.64ドルに達した。

この本番用タグは、Nordic nRF52833 SoCとDecawave / Qorvo DW3110 RFモジュールを搭載し、基板上にST LIS3DH加速度センサーを備え、CR2477という巨大なコイン電池を採用している。作者自身も「こんなに大きなコイン電池は見たことがない」と記録で振り返っている。ハードウェアのスペックは申し分ないが、UWBも本質的には電波である。通信プロトコルを変えたからといって、庭に停まっている車が透明になるわけではない。物理的な遮蔽物は依然として立ちはだかる。

Makerfabs 実験用ボード 図:プロトタイプに使用されたMakerfabs ESP32-WROVER開発ボード。UWBモジュールとアンテナが見える。出典:Simon Greenのプロジェクト記録

屋外でのウォークテストは、無線リンクの脆い側面を露呈させた。見通しの良い約30メートルの範囲内では距離の測定値は極めて安定しており、単発では最長37.28メートルまで記録された。しかし、視界の間に車が1台入るだけで、通信経路は完全に遮断された。自動車の金属ボディによる電波遮蔽効果は、UWBの物理的アドバンテージを瞬時に無効化してしまう。

アンテナの指向性(偏波)による影響も劇的だった。約10メートル離れた限界テストにおいて、タグの基板を平置き(水平)から直立(垂直)に変えただけで、同一テスト内のパケット受信成功率は37%から100%へと跳ね上がった。無線データレートを下げ、プリアンブルを長く設定することで高速ハンドシェイクの失敗は一部改善されたが、物理法則はあらゆるプロトコルに平等だ。どれほど周波数が高くとも分厚い金属を通り抜けることはできず、偏波の不一致はわずかなリンクバジェットを無情に削り取っていく。

精度はパケットロスを救えない:58分の通信空白が通知を飲み込む

トラッキングロジックでは、基準となる10メートルの境界線を設定していた。10メートル以内なら「Home」、10メートルを超えれば「Out」と判定する。庭先でのテストではこのロジックは完璧に動作していた。しかし、9月28日の庭木ゴミ収集の実戦で事態は一変した。

当日のタイムラインログは、システムの盲点を如実に記録していた。朝7時05分頃、ゴミ箱が動き出し、順調に10メートルの境界線を越えた。ところが境界を越えた直後、タグは突然オフラインになり、その後3時間以上にわたってパケットが1件も届かない空白期間に突入した。

午前10時25分、回収を終えたゴミ箱が再びアンカーの受信圏内に戻ってきた。ネットワークは、加速度センサーが9時27分に記録した「ゴミ回収(反転)」のタイムスタンプ付きイベントを受信した。しかし、電波のブラックホールに1時間近く閉じ込められていたこの情報は、発生から58分が経過していた。自動化スクリプトが設定していた30分の許容期限を大幅に超過していたため、「ゴミ箱が空になりました」というリアルタイム通知は破棄されてしまったのである。

この間、室内に設置されたアンカーのMQTT接続は何の問題もなく動作しており、庭に残っていた他のゴミ箱も定周期で距離を報告し続けていた。なぜあのタグだけが回収場所で電波を届けられなかったのか、原因は今も判明していない。エッジ端末のセンサーがミリメートル単位で正確であろうと、途中の伝送路が途絶えれば、ビジネスロジックは一瞬で破綻する。

ウォークテストの距離データ 図:屋外ウォークテストで記録された距離カーブ。下部は信号強度と測定分散の診断データ。出典:Simon Greenのプロジェクト記録

「切断」を前提にする設計:推定ステートで行方不明に対処する

予測不能な電波の死角に直面した開発者は、基地局(アンカー)を増設して敷地全体を無理にカバーしようとするのをやめ、ソフトウェアの判定ロジックを根本から見直す道を選んだ。旧バージョンでは、一定時間データを受信できないと「Out」状態が「Unknown」へと劣化し、ステートマシンの混乱を引き起こしていた。

新バージョンでは、データ欠落に対する設計思想を転換した。ゴミ箱が外へ運び出された確実なイベントを一度検知すれば、状態を「外出中と推定(presumed Out)」として固定する。その後に数時間の通信途絶が発生しようと、Home Assistantサーバーが再起動しようと、この外出ステートはデータベース上に維持され続ける。

デバイスのオンライン状態と、業務上のステートを切り離したのである。通信状態の健全性は独立した診断センサーとして分離し、オフラインを日常の事象として受け入れた。ゴミ箱が「Home」に戻るための条件は唯一、10メートル境界の内側で実際に新たな測距データが得られることだけとした。また、アンカー自体がMQTT経由で自律的にデータを送信し、Home Assistantがタグごとに仮想デバイスを自動生成する。中央集権的な外部クラウドを排除したことで、仮にHome Assistantが停止しても、アンカーとタグ間の低レイヤー測距機能はそのまま動き続ける。

「常時接続」という幻想を捨て、通信途絶を現実の前提として中核ロジックに組み込むことで、この家庭用IoTシステムは真の堅牢性を獲得した。ゴミ箱の保管場所から回収地点までの電波伝播の検証、屋外での耐候性、数週間経過後のバッテリー消費の実測、そして猫の首輪にタグを付けて4台のアンカーで位置測定を試みる野望など、残された課題は次のエンジニアリングサイクルへと引き継がれる。

参考リンク:

  • Simon Greenのプロジェクト記録