要件定義

Specification: 車両用バッテリー監視システム要件定義 SYS_ROOT
status: open
tags: system, overview

車両バッテリーの電圧・電流を監視・ロギングし、 Google Driveを経由して複数ユーザーでデータを共有・管理するシステム。

データ収集の目的:

  • 長期傾向データ: バッテリー電圧・電流の長期的な変化を記録し、バッテリー劣化を検知する。

  • 短期高頻度データ: 走行中の充放電パターンを高頻度で記録し、車両の充電制御戦略を分析する。

システム構成:

  • センサー: 車両に設置し、バッテリーの電圧等を計測・BLE送信するデバイス

  • 中継器: センサーのBLEパケットを受信し、自宅WiFi経由でGoogle Driveにデータを保存するゲートウェイデバイス

  • アプリ: スマートフォン上で動作し、BLEでセンサーのデータを受信・表示・クラウド連携するアプリケーション

動作モード:

  • Parking Mode (駐車中): 車両が駐車中。センサーは低頻度・長距離通信(BLE Coded PHY)で送信し、中継器経由でGoogle Driveへ保存する。長期傾向データの収集に対応。

  • Active Mode (走行中): 車両が走行中。センサーは高頻度・短距離通信(BLE 1M/2M PHY)で送信し、アプリで受信・Google Driveへ保存する。短期高頻度データの収集に対応。

センサー要件

Requirement: 計測パラメータ SEN_MEASURE
status: open
tags: sensor, measurement
priority: Must

センサーは以下の項目を計測しなければならない。

  • 車両バッテリー電圧

  • 車両バッテリー電流(充放電方向の識別必須)

  • デバイス内蔵バッテリー電圧

なお、センサーはRTCなどにより内部時刻を保持する必要はなく、受信側(中継器またはアプリ)で受信時刻をタイムスタンプとして使用する。

Requirement: 電源管理 SEN_POWER
status: open
tags: sensor, power
priority: Should
links incoming: DES_POWER
  • 電源は乾電池または充電池を設計に基づいて選択する。

  • 充電池を使用する場合は、車両が発電中(オルタネーター稼働中)の場合のみ充電を行う。

  • 車両停止時は暗電流を極小化する。

Requirement: BLE送信 (Active Mode) SEN_BLE_ACTIVE
status: open
tags: sensor, communication, ble, active-mode
priority: Should
links incoming: DES_MODE_SWITCH

Active Mode時、センサーはBLE 1M/2M PHYを使用し、リアルタイム計測値を高頻度で送信する。

Requirement: BLE送信 (Parking Mode) SEN_BLE_PARKING
status: open
tags: sensor, communication, ble, parking-mode
priority: Must

Parking Mode時、センサーはBLE Coded PHY (Long Range)を使用し、低頻度(例:12分毎)で送信する。 送信パケットには「現在値」に加え「過去N回分のログ」を含め、 通信パケット欠落時のデータ補完を可能にする。

Requirement: 内部データ保持 SEN_STORAGE
status: open
tags: sensor, storage
priority: Must

計測データは内部メモリのリングバッファに保持し、未送信時のデータを保全する。

中継器要件

Requirement: BLE受信とクラウド保存 (Parking Mode) RPT_CLOUD_SYNC
status: open
tags: repeater, cloud, parking-mode
priority: Must
links incoming: DES_REPEATER

中継器はセンサーからのBLE Coded PHYパケットを常時受信し、自宅WiFi経由でGoogle Driveへデータを保存する。

  • 受信時刻をタイムスタンプとして付与する。過去ログのタイムスタンプは測定間隔から推定する。

  • 共通のGoogleアカウントまたは共有フォルダを使用する。

  • 受信した全データ(測定値)をDrive上のCSVファイルへ追記する。

  • 受信できなかったパケットはエラーとせず、次回受信時のパケット内過去ログで補完する。

アプリ要件

Requirement: データ受信とクラウド保存 (Active Mode) APP_DATA_SYNC
status: open
tags: app, logic, active-mode
priority: Should

Active Mode時、アプリはセンサーからのBLEパケットを受信し、Google Driveへデータを保存する。

  • 受信時刻をタイムスタンプとして付与する。

  • 中継器と同一のGoogle Drive・CSVフォーマットを使用し、データを統合可能にする。

  • 受信できなかったパケットはエラーとせず無視する。

Requirement: ユーザーインターフェース (Active Mode) APP_UI
status: open
tags: app, ui
priority: Should

Active Mode時には以下の画面・機能を提供する。

  • ダッシュボード(リアルタイム表示)

  • 履歴グラフ表示

  • デバイス設定(電流0点補正)

  • 通知(異常値検知時のみ)

非機能要件

Requirement: 車両安全性 NFR_SAFETY
status: open
tags: non-functional, safety
priority: Must
links incoming: DES_POWER, DES_VOLT_SENSE

計測回路の高インピーダンス化およびヒューズ設置により、車両電気系統への悪影響(短絡、暗電流増大)を防止すること。

Requirement: 耐環境性とバッテリー選定 NFR_ENV
status: open
tags: non-functional, hardware
priority: Should
links incoming: DES_POWER

車載環境(温度変化)に耐えうる部品を選定する。特に充電池使用時はNiMH等の安全性の高いものを推奨する。

Requirement: 保守・アップデート NFR_MAINTENANCE
status: open
tags: non-functional, maintenance
priority: Could

ファームウェア更新は物理接続(SWD/USB等)にて行い、OTA機能は実装しない。

Requirement: ADC精度とデバイス電源電圧変動 NFR_ADC_ACCURACY
status: open
tags: non-functional, measurement, accuracy
priority: Could
links incoming: DES_VOLT_SENSE

デバイスが電池駆動の場合、電池電圧の低下に伴いVDDが変動し、ADC計測値に影響を及ぼす可能性がある。必要に応じて以下の対策を検討すること。

  • デバイス内蔵バッテリー電圧を同時に計測し、送信データに含める(SEN_MEASUREの「デバイス内蔵バッテリー電圧」に該当)

  • 既知の電圧源を用いたキャリブレーション機能の実装

Requirement: Parking Mode到達距離 NFR_BLE_RANGE
status: open
tags: non-functional, communication
priority: Should
links incoming: DES_REPEATER

Parking Mode時、駐車場から中継器設置場所(例:自宅窓の外)まで十分な通信距離を確保すること。

Requirement: 電流キャリブレーション NFR_CURRENT_CALIB
status: open
tags: non-functional, measurement, calibration
priority: Could
links incoming: DES_CURRENT_SENSE

電流計測値の精度を確保するため、現在の電流値を「0A(ゼロ点)」として補正し、オフセット値を不揮発性メモリに保存・適用する機能を実装する。 直接到達が困難な場合は、中継器等のアーキテクチャ上の対策を設計段階で検討する。