現在、私は5S2Pリチウムバッテリーパック用のBMS(バッテリーマネジメントシステム)とモバイルアプリを開発しています。最初の大きな課題のひとつは、BMSのアーキテクチャを選ぶことでした。ESP32のみで構成するか、STM32 + ESP32のデュアルMCU構成にするかです。この選択はシステムの安全性、信頼性、開発コストに大きく影響します。
バッテリーパックの概要
バッテリーは5S2P構成で、総電圧は18–21Vです。容量はそれほど大きくありませんが、電圧、電流、温度を正確に監視することが安全な運用に不可欠です。BMSにはリアルタイム保護、正確な充放電制御が求められます。
オプション1:STM32 + ESP32 BMS構成
クラシックな方法として、STM32をメインコントローラにして、ESP32はワイヤレス通信とアプリ接続に専念させます。
STM32は以下を担当します:
- 各セルの電圧と温度の測定
- バッテリーパックの電流監視
- 保護ロジックの実行(過電圧、低電圧、過電流、過温度)
- CC/CVモードによる充放電制御
- セルバランシング
ESP32は以下を担当します:
- WiFi/Bluetooth通信
- バッテリーデータをモバイルBMSアプリに送信
- アプリからの遠隔コマンドの受信・STM32への伝達
- OTA(無線ファームウェア更新)のサポート
この構成は、タスク分離が明確で信頼性が高く、リアルタイム保護も確実です。
オプション2:ESP32のみ
もう一つの選択肢は、ESP32のみでバッテリー管理とワイヤレス通信を担当させる方法です。ハードウェアコストを下げ、設計を簡素化できます。
ESP32はWiFi、Bluetooth、ADC、PWM、I²C、SPIなどのペリフェラルを備えています。理論上は電圧・電流・温度の測定、基本的な保護ロジックの実装、ワイヤレス通信も可能です。小規模バ