Arduino IDEで動作を自由にプログラミング可能な、IoTソーラーチャージャー基板です。WiFi内蔵マイコンであるESP32(ESP-WROOM-32)を採用しました。鉛/LFPバッテリー充放電回路、microSDスロット搭載。状況にあわせた充電、負荷の接続/切断ができ、ネットワークからのモニタリングも可能です。
主な特徴
ソーラー充電制御回路搭載
PWMを使用した充電回路を搭載しており、ソーラーパネルの入力から12V鉛バッテリーもしくは12V LFPバッテリーに適切な電圧を生成できます。 INA219電圧、電流測定IC により高精度なバッテリーの電圧、電流の測定が可能です。 過充電保護などの充電制御が可能です。
負荷制御回路搭載
負荷も接続できるため、独立した太陽光蓄電システムとして運用可能です。 負荷の接続、切断をプログラムから切り替え可能で、過放電保護機能などの制御が可能です。 INA219電圧、電流測定IC によりバッテリーから負荷へ流れる放電電流も測定できます。どの程度の電力を消費しているかを調査できます。
WiFiマイコンモジュール ESP32搭載
コントローラにはESP32(2024年8月出荷分より最新のESP-WROOM-32E搭載)マイコンモジュールを採用しました。ご自身で動作をプログラミングできるため、複雑な制御、測定やロギングが可能です。 WiFiを内蔵しているので、サーバーにデータを送信したり、インターネットから時刻を取得して 日没中はスタンバイにする、といった動作が可能です。 また、ESP32は世界的に人気の高いArduinoIDEで開発することができます。 既に様々なライブラリが用意されているので、簡単にHTTPアクセスなどを実装できます。
低消費電力DeepSleep対応
ESP32をDeepSleep(低消費電力モード)にすることで、夜間など充電が不要な際の消費電力を抑えることができます。 (12V時基板の消費電流1mA未満) ラッチICを搭載しているため、DeepSleep中でも負荷の接続を保持できるよう設計しています。 また、LCDやLEDの表示も保持できるため、DeepSleep中も機能を損ないません。
LCD、LED、スイッチ搭載
LCDモジュールAQM0802A-RN-GBW 、ユーザー入力スイッチを4個、LED4個を搭載しています。LCDに測定値を表示したり、スイッチで直接本基板を操作することができます。
microSDカードスロット付き
microSDカードスロットがついているので、大容量のデータを保存できます。 長期間の測定データをログとして残しておくことができます。
DCジャック搭載
本基板の電源として、鉛バッテリーからだけでなく、DCジャック経由で動作させることもできます。 基板の消費電力を除きたい場合など、実験や特性評価にご利用になれます。
購入
まとまった数量をご希望の方は、見積もり依頼よりご連絡ください。
完成品
部品一式を基板に実装した完成品になります。ソーラーパネル、鉛バッテリー、 プログラム書き込み用USBシリアル変換モジュールは付属しません。
利用例
応用アプリケーション例
- 時間に応じて充電、スリープを切り替える鉛バッテリーのスマート充電器
- ネットワーク経由でのソーラー発電モニターするシステム
- 災害時にスマートフォンやパソコンを充電できる太陽光蓄電システム
- バッテリーの電圧が下がったら負荷を切り離し、ネットワークでアラートを挙げるシステム
- 本基板を使ったソーラー充電システムの例 を紹介しています。
これらの応用例を実現するプログラム、機器は付属しません。 ご自身で準備していただく必要があります。
ブロックダイアグラム
発熱に関してのご注意
ソーラー入力電流が多い場合、PWMによる電流制限が作動している場合、基板に直射日光が当たっていたり、周囲温度が高い場合に、一部の部品の発熱が大きくなります。以下の注意事項をご確認の上、ご利用ください。
- 電流制限時の発熱を抑えるため、PWM周波数は500Hzを推奨といたします。
- 連続運転時はソーラーパネルからの入力電流5A、負荷電流10A以下となるように運用して下さい。(ソーラー入力電流 = 鉛バッテリー充電電流 + 負荷電流 の関係となりますので、負荷電流が大きい場合は充電電流を減らすなどして下さい。)
- 基板に直射日光が当たらないようにするなど、基板の温度が上がらないように工夫をお願いします。
定格
項目 | 定格 |
---|---|
基板寸法 | 80mm x 80mm |
ソーラーパネル最大入力電圧 | 25V |
ソーラーパネル入力電流(プログラムでコントロール可) | 連続5A 最大8A |
負荷最大出力電流 | 連続10A 最大20A |
対応鉛バッテリー | 12Vタイプ 推奨品はこちらのLONG製 |
対応LFPバッテリー | リン酸鉄リチウムイオン型、電圧12V、BMS内蔵であること 推奨品はLiTime製 |
使い方
開発環境、プログラム書き込み方法については以下をご参照下さい。
- Arduino IDEのインストールと設定 (Windows, Mac, Linux対応)
- ESP32、ESP-WROOM-32搭載製品の設定とプログラム書き込み方法
- Arduino IDEプログラミングの基礎とシリアルモニターの使い方
電源
本基板用の電源は供給元をJP1のジャンパで選択できます。
JP1 | 電源 | 補足 |
---|---|---|
BAT | 鉛バッテリー | 基板制御部の電源が鉛バッテリーより供給されます。 |
DCJ | DCジャック | CON1端子のDCジャック(センタープラス 2.1mm)より供給されます。7V-20V, 1A以上の電源をお使いください。 基板の電力をバッテリーから消費しませんので、実験、テスト用途などに便利です。 |
接続
ソーラーパネル、鉛バッテリー、負荷は以下の端子に接続してください。 接続例はこちらの写真をご参照下さい。
基板上の+/-の記載の通りに接続してください。逆に接続すると部品を痛める恐れがあります。 鉛バッテリーとの間には必ず適切な電流値のヒューズを取り付けてください。
端子 | 接続 | 補足 |
---|---|---|
T1 | ソーラーパネル | 逆流防止ダイオードがあり、最大開放電圧が25V以下のソーラーパネルをご利用ください。 本基板は降圧制御のため、鉛バッテリー充電には14V以上の電圧が必要です。 必要なソーラパネルの電力は負荷やバッテリー容量によって変わりますが、 5W-100Wを推奨しております。 |
T2, T3 | 負荷 | 利便性向上のため、2つの負荷接続端子を用意しています。充電のみの場合は未接続のままで構いません。 T2, T3の機能に違いはなく、ON/OFF制御は独立しておりません。 鉛バッテリーの電圧が12Vなので、シガーソケットに変換すると市販の製品がご利用になれて便利です。 |
T4 | バッテリー | 鉛バッテリーの場合は、12Vのものを接続してください。取り扱いのしやすいシールタイプを推奨しております。 推奨品はこちらのLONG製です。安全のため、ヒューズも必ず使用してください。 LFPバッテリーのリン酸鉄リチウムイオン型、電圧12V、BMS内蔵のものを使用してください。推奨品はLiTime製です。バッテリーセルへの直接接続はできません。 |
バッテリー電圧、電流測定
バッテリーの電圧、電流測定用に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周波数の推奨値は500Hzです。高すぎると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 | 内容 |
---|---|---|---|
interface | Arduino | 1.0.4 | LCDディスプレイ、ユーザースイッチ、LEDのサンプルプログラムです。 |
PWM | Arduino | 1.0.4 | PWMを使って充電電圧、電流を制御するサンプルプログラムです。 |
Load-Sleep | Arduino | 1.0.4 | 負荷の接続と電力消費を抑えるDeepSleepモードのサンプルです。 |
VCRG | Arduino | 1.0.4 | ソーラー充電入力T1の電圧を取得するサンプルプログラムです。 |
SolarCharger | Arduino 1.8 | 1.0.4 | ソーラー充電システムの応用例です。 |
環境がArduino 1.8となっているものは、Arduino IDE 2でコンパイルエラーとなります。Arduino IDE 1.8.xをご利用ください。
回路図、関連資料
- 回路図
- ESP32-WROOM32データシート
- ESP32-WROOM-32Dデータシート
- ESP32-WROOM-32Eデータシート
- ESP32 Arduino Github
- ESP32技術資料
- INA219データシート
- LCDディスプレイデータシート
注意事項
- 鉛バッテリーとの接続には必ずヒューズを使用して下さい。ヒューズを用いないと万一の際に火災などの事故につながるおそれがあり、大変危険です。
- こちらの発熱に対する対策をお願いします。
- 端子をショートから保護するため、裏面を電気を通さないものでカバーする、ネジ穴にスペーサーを付けて基板を浮かせるなどの対策をお願いいたします。また、基板を移動させたり配線を変更する際には、バッテリーとの接続を外しておき、誤ってショートしないような運用をお願いいたします。
- 利用規約・免責事項および保証をご確認の上、ご利用下さい。
開発依頼
本製品への機能追加などのカスタマイズや、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。
関連ページ
E32-BreadPlus(スイッチ付き コンパクトESP32、ESP-WROOM-32 ブレッドボード開発基板)
WiFi、Bluetooth機能を内蔵したマイコンであるESP32、ESP-WROOM-32をブレッドボードに挿して開発するための基板です。Arduino IDEで自由に動作をプログラミングすることができます。リセットとプログラム書き込み用スイッチ実装済のため、自分の作りたい回路に集中できます。使用できないピンを削減したことで、類似品に比べてコンパクトになっています。
E32-SolarCharger (ESP32、ESP-WROOM-32/WiFi搭載 プログラマブルIoT 鉛/LFPバッテリーソーラー充電基板)
Arduino IDEで動作を自由にプログラミング可能な、IoTソーラーチャージャー基板です。WiFi内蔵マイコンであるESP32(ESP-WROOM-32)を採用しました。鉛/LFPバッテリー充放電回路、microSDスロット搭載。状況にあわせた充電、負荷の接続/切断ができ、ネットワークからのモニタリングも可能です。
TSL2572センサーとラズパイで明るさ(照度)を測定する
Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、TSL2572センサーで明るさを測定する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。