E32-SolarCharger

ESP-WROOM-32搭載 鉛バッテリーソーラー充電コントローラー基板

主な特徴

ソーラー充電制御回路搭載

PWMを使用した充電回路を搭載しており、ソーラーパネルの入力から12V鉛バッテリーに適切な電圧を生成できます。 INA219電圧、電流測定IC により高精度なバッテリーの電圧、電流の測定が可能です。 過充電保護などの充電制御が可能です。

負荷制御回路搭載

負荷も接続できるため、独立した太陽光蓄電システムとして運用可能です。 負荷の接続、切断をプログラムから切り替え可能で、過放電保護機能などの制御が可能です。 INA219電圧、電流測定IC によりバッテリーから負荷へ流れる放電電流も測定できます。どの程度の電力を消費しているかを調査できます。

WiFiマイコンモジュール ESP-WROOM-32搭載

コントローラにはESP-WROOM-32マイコンモジュールを採用しました。 ご自身で動作をプログラミングできるため、複雑な制御、測定やロギングが可能です。 WiFiを内蔵しているので、サーバーにデータを送信したり、インターネットから時刻を取得して 日没中はスタンバイにする、といった動作が可能です。 また、ESP-WROOM-32は世界的に人気の高いArduinoIDEで開発することができます。 既に様々なライブラリが用意されているので、簡単にHTTPアクセスなどを実装できます。

低消費電力DeepSleep対応

ESP-WROOM-32をDeepSleep(低消費電力モード)にすることで、夜間など充電が不要な際の消費電力を抑えることができます。 (12V時基板の消費電流1mA未満) ラッチICを搭載しているため、DeepSleep中でも負荷の接続を保持できるよう設計しています。 また、LCDやLEDの表示も保持できるため、DeepSleep中も機能を損ないません。

LCD、LED、スイッチ搭載

LCDモジュールAQM0802A-RN-GBW 、ユーザー入力スイッチを4個、LED4個を搭載しています。LCDに測定値を表示したり、スイッチで直接本基板を操作することができます。

microSDカードスロット付き

microSDカードスロットがついているので、大容量のデータを保存できます。 長期間の測定データをログとして残しておくことができます。

DCジャック搭載

本基板の電源として、鉛バッテリーからだけでなく、DCジャック経由で動作させることもできます。 基板の消費電力を除きたい場合など、実験や特性評価にご利用になれます。

購入

完成品

部品一式を基板に実装した完成品になります。ソーラーパネル、鉛バッテリー、 プログラム書き込み用USBシリアル変換モジュールは付属しません。
(購入) 公式通販
(購入) スイッチサイエンス

利用例

ソーラーパネル、バッテリー、負荷へ接続して動作中の様子です。

応用アプリケーション例

  • 時間に応じて充電、スリープを切り替える鉛バッテリーのスマート充電器
  • ネットワーク経由でのソーラー発電モニターするシステム
  • 災害時にスマートフォンやパソコンを充電できる太陽光蓄電システム
  • バッテリーの電圧が下がったら負荷を切り離し、ネットワークでアラートを挙げるシステム
  • 本基板を使ったソーラー充電システムの例 を紹介しています。

これらの応用例を実現するプログラム、機器は付属しません。 ご自身で準備していただく必要があります。

ブロックダイアグラム

定格

項目定格
基板寸法80mm x 80mm
ソーラーパネル最大入力電圧25V
ソーラーパネル最大入力電流(プログラムでコントロール可)8A
負荷最大出力電流20A
対応鉛バッテリー12Vタイプ

使い方

開発環境、プログラム書き込み方法についてはこちらをご覧ください。

電源

本基板用の電源は供給元をJP1のジャンパで選択できます。

JP1電源補足
BAT鉛バッテリー基板制御部の電源が鉛バッテリーより供給されます。
DCJDCジャックCON1端子のDCジャック(センタープラス 2.1mm)より供給されます。7V-20V, 1A以上の電源をお使いください。 基板の電力をバッテリーから消費しませんので、実験、テスト用途などに便利です。
接続

ソーラーパネル、鉛バッテリー、負荷は以下の端子に接続してください。 接続例はこちらの写真をご参照下さい。

基板上の+/-の記載の通りに接続してください。逆に接続すると部品を痛める恐れがあります。 鉛バッテリーとの間には必ず適切な電流値のヒューズを取り付けてください。

端子接続補足
T1ソーラーパネル逆流防止ダイオードがあり、最大開放電圧が25V以下のソーラーパネルをご利用ください。 本基板は降圧制御のため、鉛バッテリー充電には14V以上の電圧が必要です。 必要なソーラパネルの電力は負荷やバッテリー容量によって変わりますが、 5W-200Wを推奨しております。 推奨ソーラーパネルはこちらです。
T2, T3負荷利便性向上のため、2つの負荷接続端子を用意しています。充電のみの場合は未接続のままで構いません。 T2, T3の機能に違いはなく、ON/OFF制御は独立しておりません。 鉛バッテリーの電圧が12Vなので、シガーソケットに変換すると市販の製品がご利用になれて便利です。
T4鉛バッテリー12Vの鉛バッテリーを接続してください。取り扱いのしやすいシールタイプを推奨しております。 推奨品はこちらのLONG製です。
鉛バッテリー電圧、電流測定

鉛バッテリーの電圧、電流測定用にINA219を搭載しております。I2Cで制御し、アドレスは0x40となります。 電流測定用抵抗は10ミリオーム、誤差1%です。INA219で抵抗の両端の電圧を計測し、電流値を求める仕組みです。 詳しくはINA219データシート をご参照下さい。測定できるのは鉛バッテリーへ流入(または流出)する電流の値となり、 ソーラーパネルからの入力電流から負荷への出力電流を引いた値となります。 両方同時には測定できないので、別々に測定したい場合は一時的に充電を止めるなどして対応してください。

充電制御

充電にはPWM(IO32)で制御可能な降圧型のDC-DCコンバーター回路を搭載しております。 IO32がLOW出力時(Duty 0%)はT1入力とバッテリーが遮断された状態となります。 逆にIO32がHIGH出力時(Duty 100%)はT1入力とバッテリーが接続された状態となります。 バッテリー側の電圧、電流をINA219で監視し、目標より高い場合はPWMのDutyを下げ、低い場合はDutyを上げるように 制御してください。PWM周波数の推奨値は1kHz-5kHzです。高すぎるとMOSFETの発熱が大きくなります。 電圧、電流はお使いの鉛バッテリーおよびソーラーパネルの仕様もご確認ください。

負荷制御、LED

負荷、およびLEDはラッチICを介して制御する設計となっております。 IO13=HIGHの間はラッチICが入力を受け付けます。IO13=LOWにするとラッチICは現在の出力を保持し続けます。 そのため、DeepSleep中でも負荷とLEDの状態を保持することが可能です。以下の手順で設定してください。

1)IO13=HIGHを出力し、ラッチICが入力を受け付けるようにします。
2)負荷、LEDの値をIOから出力します。
3)IO13=LOWを出力し、ラッチICが現在の出力を保持するようにします。

負荷のON/OFFは負論理となっておりIO33をHIGH出力時はOFF、LOW出力時はONとなります。 LEDも同様に負論理となり、HIGH出力時消灯、LOW出力時点灯となります。

ソーラーパネル入力電圧の取得

ソーラーパネル入力電圧を10kオームと1.5kオームで分圧した電圧がSVP端子に入力されております。 ESP-WROOM-32のADC機能を使って取得した値に11.5/1.5を掛けることで電圧を取得することができます。 夜間など入力電圧が低い場合はスリープに移行するなどの応用が可能です。

スイッチ

SW2, SW3, SW4, SW5はユーザー入力としてご利用になれます。離した状態でHIGH、押した状態でLOWが入力されます。 基板上にプルアップ抵抗はないのでプログラム上でで内部プルアップの設定にしてください。

DeepSleepと消費電力

各動作状態の消費電力の目安は以下の通りです。なお、瞬間的には以下の値を上回ることもございます。

動作状態消費電流(12V電源からの入力電流 平均値)
WiFi動作中20mA
DeepSleep中LED消灯時1mA以下。LED点灯中は1つにつき1mA程度追加で消費します
LCD

基板上に搭載されているLCDとはI2Cで接続されており、スレーブアドレスは0x3Eです。 詳細な使い方はLCDのマニュアル をご参照下さい。

microSD

microSDはSPIモードで接続されております。CS:IO17, SCK:IO18, MOSI:IO23, MISO:IO19 となっております。 ArduinoIDEでプログラミングする際、一部のmicroSDカードにおいて 初回SD.beginがFailするケースが確認されております。 対策として、2回SD.beginを入れるようにしてください。

P2, P3端子

P2, P3端子は電圧モニター用となっております。こちらから電源などへの接続は行わないでください。

サンプルプログラム

プログラム環境ESP32core内容
interfaceArduino1.0.0LCDディスプレイ、ユーザースイッチ、LEDのサンプルプログラムです。
PWMArduino1.0.0PWMを使って充電電圧、電流を制御するサンプルプログラムです。
Load-SleepArduino1.0.0負荷の接続と電力消費を抑えるDeepSleepモードのサンプルです。
VCRGArduino1.0.0ソーラー充電入力T1の電圧を取得するサンプルプログラムです。
SolarChargerArduino1.0.0ソーラー充電システムの応用例です。

回路図、関連資料

注意事項

  • 本製品または当サイトのサンプルプログラムを使用して発生した損害に対する補償は致しかねます。 当サイトの技術情報を読んでいただいた上で、ご自身の責任でご使用下さい。
  • 鉛バッテリーとの接続には必ずヒューズを使用して下さい。ヒューズを用いないと万一の際に火災などの事故につながるおそれがあり、大変危険です。