MicroArchitectures
H.Ueda
Programmer
ブログ
車を「家」の延長に。OBD-IIとHome Assistantを連携させる仕組み
Hackadayで紹介されていた、車両データをHome Assistantで可視化するプロジェクトを参考に、車載デバイスとスマートホームの統合について自分なりに整理してみました。
中々面白い記事でしたが、日本国内でも可能なのかなぁと思いました。CAN周りに詳しくないのでタトしてるかもですが…。
—-
私たちの生活において、車の中で過ごす時間は意外と長いものです。移動手段という枠を超えて「第二の我が家」のように捉えると、自宅のスマートホームシステム(Home Assistantなど)で車の状態を把握したくなるのは、自然な流れかもしれません。
今回は、OBD-IIポートを活用して、古い車や専用アプリのない車でもスマート化できる仕組みについて解説します。
車両連携の全体像
車をHome Assistantに接続する仕組みは、物理的なインターフェースである「OBD-IIポート」に通信用ドングルを差し込み、そこからWi-Fi経由でデータを飛ばすというものです。
全体的な構成は以下の図のようなイメージになります。
flowchart LR
subgraph Vehicle [車両側]
ECU[ECU / センサー群] -- CAN-BUS -- OBD[OBD-IIポート]
OBD -- 物理接続 -- WiCAN[WiCANドングル]
end
subgraph Network [ホームネットワーク]
WiCAN -- Wi-Fi / MQTT -- Router[ルーター]
Router -- 連携 -- HA[Home Assistant]
end
subgraph Interface [ユーザー操作]
HA -- 可視化 -- Dashboard[スマホ / ダッシュボード]
end
車両から送られてくる生データ(CAN-BUS上のデータ)を、ESP32-S3ベースのデバイスが読み取り、Home Assistantが理解できる形式(主にMQTTなど)に変換して送信しています。これにより、車が自宅のWi-Fiに繋がっている「一つのスマート家電」のように振る舞えるわけです。
使用するハードウェアとソフトウェア
この記事で紹介されていた主要な構成要素は、オーストラリアのMeatPi社が開発した「WiCAN」というデバイスです。
| 項目 | 内容 |
|---|---|
| ハードウェア | WiCAN Pro (ESP32-S3ベース) |
| ファームウェア | WiCAN-FW (オープンソース) |
| 接続規格 | OBD-II / CAN-BUS |
| 通信プロトコル | Wi-Fi, MQTT |
一般的なOBD-IIドングルはBluetooth接続でスマホアプリと連携するものが多いですが、こちらはWi-Fiベースで動作するため、車がガレージや家の近くにある間、自動的にホームサーバーと通信を確立できるのが大きなメリットです。
設定とデータの解釈
車両のデータ(ECU)はメーカーや車種によってデータの表現方法が異なります。いわば「方言」のようなものがあるため、どのデータがどの数値を指しているのかを定義する設定ファイル(YAML形式など)が必要になります。
Home Assistant側でのダッシュボード設定の一例として、以下のようなYAML構成が使われることが多いようです。
# Home Assistantのダッシュボード構成(イメージ)
views:
- title: My Car Status
cards:
- type: gauge
entity: sensor.car_fuel_level
name: 燃料残量
unit: '%'
- type: entities
entities:
- entity: sensor.car_coolant_temp
name: 冷却水温度
- entity: sensor.car_tire_pressure_fl
name: 左前タイヤ空気圧
- entity: binary_sensor.car_engine_status
name: エンジン状態
このように設定しておくことで、わざわざ車まで行ってエンジンをかけなくても、リビングにいながら「そろそろガソリンを入れないと」「タイヤの空気が減っているな」といった情報を確認できるようになります。
実際に連携させるメリット
「スマホで車のデータが見られるだけで、そこまで便利なの?」と思われるかもしれません。しかし、Home Assistantと組み合わせることで、単なる確認以上の価値が出てくるかと思います。
- メンテナンスの自動通知
- 冷却水温度の異常や、バッテリー電圧の低下を検知した際にスマホへ通知を飛ばす。
- 「メンテナンスまであと何日」というカウントダウンを自宅の壁掛けモニターに表示する。
- BEV(電気自動車)の管理
- バッテリー残量(SoC)を把握し、電気代が安い時間帯に充電を促す通知を出す。
- 安心感の向上
- 鍵の閉め忘れや、窓の閉め忘れを(車両側が対応していれば)自宅からチェックできる。
特にタイヤの空気圧やエンジンの不調などは、放置すると高額な修理費用につながるケースもあるため、早期発見の仕組みとして機能するのは実用的と言えるでしょう。
まとめ
車をOBD-II経由でHome Assistantに繋ぐ試みは、一見するとマニアックな趣味のように見えますが、実際には「車両管理の自動化」という非常に合理的な側面を持っています。
ESP32などの安価で強力なマイクロコントローラーと、オープンソースのコミュニティが提供する知見を組み合わせることで、数年前ならメーカー純正の高級オプションでしか実現できなかったことが、自分たちの手で作れるようになっています。
もし手元に古いESP32が余っていたり、ガレージの車をもっとスマートに管理したいと考えているなら、この辺りの構成に挑戦してみるのも面白いかもしれません。
参照記事
- Hackaday
- I Turned Karpathy’s Autoresearch Into a Agent Skill For Claude Code That Optimizes Anything — Here Is the Architecture
- The Postgres Query That Brought Down Black Friday (89K RPS Disaster)
- Claude Code Insane Nerf. AMD Noticed (Here’s How You Fix It).
- Python Is 93× Slower?! The MCP Benchmark That Shocked Developers
- DeepSeek V4 Runs Locally on Your GPU. That Changes Everything the Cloud AI Companies Didn’t Want Changed.