「太陽光発電」タグアーカイブ

Arduino MKR WiFi 1010 ベランダ太陽光発電 温湿度センシング検討

2021/9/22からベランダに設置している、太陽光発電 気象観測システムが止まることなく無事に北海道の厳しい冬を越すことができたことを前回報告させていただきました。

RaspberryPi サーバ & WordPress ブログ を XSERVER に サーバ移転

 

長い冬が終わり気温が上がってきまして、ずーっと保留にしてきた比較的気温が高い時に発生する温度と湿度の値の跳ね上がり現象が現れ始めました。

 

腰を据えてこの問題と向き合いましたので報告いたします。

 

 

温湿度センサ交換

これまで温湿度センサはDHT11からDHT22にかえて運用してきましたが、いずれも値の跳ね上がり現象が発生しています。

Arduino MKR WiFi 1010 をソーラで楽しむ 3 -温湿度センサ変更-

新温湿度センサ SHT31 

凝りもせず再び温湿度センサを変えてみました。

https://github.com/adafruit/Adafruit_SHT31

 

 

しかし、結果は変わらず日中に値が上昇する結果となりました。。。

ということは日中お弁当箱の中は確実にこの温度になっているということです。

 

お弁当箱 加工

お弁当箱を百葉箱のように通気性がよく直接日光が当たらないように工夫しました。
側面に穴を複数開けて、フタにプラ板で天井を設けました。

あっさり解決しました。。w

屋根が効いたようです。早く気づけよという話ですね。。。

温湿度センサのDHT11とDH22  疑ってごめんなさい 😥 

 

引き続き運用続けます。

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象システム 無事越冬

2021/9/22からベランダに設置している、太陽光発電 気象システムが止まることなく無事に越冬できました。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

 

 

 

気象システム

システムのおさらいです。
Arduino MKR WiFi 1010 に温湿度センサと気圧センサを接続し、LiPoバッテリを8Wソーラパネルで充電しながら運用しています。
10分おきに起床してLiPoバッテリ電圧とソーラ発電電圧と気象データ(温度、湿度、気圧)をUDP送信してスリープします。

 

  • Arduino MKR WiFi 1010

     
  • 温湿度センサー DHT22

     
  • 大気圧センサーモジュール BMP280

     
  • LiPoバッテリ 1200mAh

     
  • 8Wソーラパネル (6V用)

パワーマネージメント

Arduino MKR WiFi 1010には入力定格22VのパワーマネージメントIC BQ24195Lが搭載されており、コントローラ用のロジック電源生成とLiPoバッテリの充電動作を実施しています。

高い入力電圧耐圧のBQ24195Lのおかげで開放電圧10.8Vの8W出力のパネルソーラパネルを直接Vinに接続することができ、LiPoバッテリを充電しながらの長期運用が実現できました。

但しArduino MKR WiFi 1010のオフィシャルVin最大定格は6Vです。
実施の際は自己責任で宜しくお願い致します。

参考

 

無事に越冬

本システムをベランダに置いて2021/9/22から運用し、
2022/3/17まで止まることなく動き続けています(176日連続動作)。
引き続き運用していく予定です。

気温

気圧

湿度

LiPoバッテリ電圧

ソーラパネル電圧

 

データをブラウザでみえる化

お母ちゃんに気象システムからのデータをブラウザから見れるようにしてもらいました。

RaspberryPi サーバ & WordPress ブログ を XSERVER に サーバ移転

これで端末からいつでも気象情報をチェックできます。

 

氷点下時のバッテリ電圧

気温が-8℃以下になるとバッテリ電圧の低下がみられました。

気温

LiPoバッテリ電圧

 

ソーラパネルからの電圧は普段通り供給されているので、低温によるバッテリ電圧の低下といえます。

ソーラパネル電圧

 

バッテリ電圧低下時でも3.8V以上を保持しており、システム動作に異常はありませんでした。
気温が-10℃以下になると危なかったかもしれませんが、今冬は無事に超えることができました。

 

トンガ火山噴火 衝撃波

2022/1/15のトンガ火山噴火の衝撃波による気圧変化を本システムでも観測しました。

 

 

逆方向と2周目の3回のピークを観測しました。
これには非常に驚きました。

 

 

温湿度センサ

観測当初から見られた温湿度センサの値の跳ね上がり現象がここ最近再びみられるようになりました。

 

同様に湿度にもピークが出るので温湿度センサDHT22の何かに起因しているものと考えています。

 

こちらはセンサ交換も視野に入れつつ、原因検証すすめます。

 

おわりに

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象システムの長期運用状況について報告いたしました。

すでに冬を超えて半年近く動作しています。
特殊機材の追加なしにマイコンとソーラとバッテリとセンサのみで実施できる非常に経済的なシステムであるといえます。

今後は温湿度センサのピーク値の原因解明と現行では10分おきのデータ取得周期を消費電力と相談しながら縮めていこうと考えております。

Arduino MKR WiFi 1010 をソーラで楽しむ 5 -8Wソーラ再測-

前回はバッテリ配線を修正し、ダイソーのガーデンライトソーラでの運用結果を報告いたしました。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

 
ここでは8Wソーラで再実験いたしましたので報告いたします。

 

8Wソーラで気象データ測定システム再実験

8Wソーラは以下を使用し、Arduino MKR WiFi 1010に給電します。
いつも通りベランダで運用。

 

センサとして温湿度センサと、気圧センサを接続します。

  • 温湿度センサー DHT22

     
  • 大気圧センサーモジュール BMP280

     
  • LiPoバッテリ 1200mAh

 

運用状況

2021/9/22の朝から8Wソーラでの運用を再開いたしました。

気温が高く30度以上となるときに温湿度センサの値に乱れがありますが、おおむねよく測れています。

 

ソーラ発電電圧及びLiPoバッテリの電圧の状況は以下の通り

我が家のベランダは東向きで午前中しか直射日光が得られないのですが、
バッテリも良く充電されており ずーっと4V以上のフル充電で運用できています。

 

おわりに

現在までで12日以上動いてくれています。

バッテリ電圧の低減もなく発電量も十分なようです。
クリーンエネルギーによる電気代ゼロの気象データ測定システムが実現できたかもしれません。

あとは冬。ここは北海道

地獄の寒さで本システムがどうなるか非常に楽しみです。
(ヒータの検討しといたほうがいいかなぁ??? 🙄 )

追記

2021/10/17 運用25日経過

2021/11/4 運用43日経過

 

日照が無い日は当然バッテリ電圧低下していますが、日照時にしっかり充電できています。安心ですね。

2021/11/26 運用65日経過

2021/12/18 運用87日経過

Arduino MKR WiFi 1010 をソーラで楽しむ 4 -ダイソーのソーラ再測-

前回は8Wソーラで運用したArduino MKR WiFi 1010気象データ測定計の温湿度センサの変更を報告いたしました。

Arduino MKR WiFi 1010 をソーラで楽しむ 3 -温湿度センサ変更-

更においじりしましたので報告いたします。

 

 

バッテリ配線修正

前回からしばらく運用していたところ電圧が不安定に低下する現象が発生しました。

そこでバッテリの配線をArduino MKR WiFi 1010のコネクタではなくジャンパを半田付けして接続することにしました。

 

そうしたところバッテリ電圧の低下現象は改善され、
メチャクチャ元気になって常にフルチャージ状態になりました。

 

実はArduino MKR WiFi 1010のコネクタとLiPoバッテリの端子の接触の悪さは当初から気になっており
以下のようにマスキングテープで固定しながら使用していました。。

屋外なめんなって話ですよね。

 

ダイソーのソーラで再測

バッテリの接触が改善され8Wソーラで常にフルチャージ状態になったので、
以前10日で終了してしまったダイソーソーラによる運用を再検証してみることにしました。

もしかしたらバッテリ接触不良のために長期運用ができなかった可能性があります。

結果

残念ながら前回同様にバッテリ電圧はグングン低下し 12日ちょいで停止しました(9/8  21:57 ~ 9/21  14:29)。
バッテリの接触の影響はさほど大きくなかったようです。。。

そもそも発電電圧が4V程度で低いですよね。
仮にダイソーソーラ(300円)を3個シリーズにして電圧を上げても、
コストが900円となり それであれば少しお金を足して性能明確なパネル使ったほうがいいですよねぇ。

 

前回 温湿度センサを変えましたが、やはり高温時に異常値示してますね。。。
温湿度センサは違うタイミングで変更検討します。

 

おわりに

ここではバッテリの接続を改善して再度ダイソーソーラでArduino MKR WiFi 1010気象データ測定計を運用してみました。

残念ながらバッテリの接触の影響はそれほど大きくなく前回と同じような結果に終わりました。
結局 ダイソーソーラの2個シリーズでは発電量が足りないのです。

また8Wソーラで運用実験します。

USB充電ステーション ーベランダ太陽光発電所への道8ー

これまでベランダ太陽光発電システムにて ハエトリソウの観察をしたり、LED表示器を運用したりしてきました。

今回 久々に発電システムを復活させて活用してみました。
ベランダでソーラ発電してバッテリを充電しつつスマホや携帯端末をUSB充電して電気代をうかせられないかと考えたのです。

 

 

構成

部品

概要

ソーラー充電コントローラで鉛バッテリを充電し、USB介してモバイルバッテリやスマホを充電します。

 

北海道は冬がえげつなく寒いのでベランダから室内のUSBハブへの給電は窓ごしにワイヤレスモジュールを使用使用しました。これでバッテリ電圧を5Vに変換もしています。

 

USBハブのケーブルの電源線をワイヤレスチャージモジュールの5V出力端子に接続。

 

E32-SolarCharger

Indoor Corgi Elec.社製のコントローラとしてESP32を使用した太陽光発電充電コントローラです。マイクロSDカードスロットもありデータログを記録できます。

ESP32を使用しているのでWiFiで状況監視や設定健康などができるのも魅力です。

 

Arduino IDEソース の動作概要

コントローラのArduino IDEソースは以下のバージョン2021_2_10をそのまま使用しました。
 

 

動作は以下の通りです。

  • バッテリチャージ ターゲット電圧:14V
  • バッテリチャージ最大電流:1.0A
  • 負荷スイッチをOFFするバッテリ電圧:10.8V
  • 負荷スイッチを復帰するバッテリ電圧:12.0V
  • システムスリープするソーラ電圧:8V
  • システムスリープから起床するソーラ電圧:11V

ソーラパネルの発電電圧が8V以下になるとシステムはスリープします。負荷スイッチの状態は保持されます。
15分おきに起床しソーラパネル電圧を観測し11V以上で起床します。

ブラウザでESP32にアクセスしバッテリやソーラの状況を監視でき(当然スリープ時には見れません)、ログの取得有無やスリープの可否、ロードスイッチのOFFを制御できて、
ログデータのダウンロードも可能です。

 

Arduino IDEで設定値以外にもチャージ方法をカスタマイズすることもでき、大変便利です。

 

おわりに

本システムにより日中に子供たちのスマホや大人たちが夜スマホをチャージするためのモバイルバッテリを充電していこうと思います。

少しでも電気代の節約になれば嬉しいですし
つるセコ 大成功とピースしながら舌を上向きに出せることでしょう。

Arduino MKR WiFi 1010 をソーラで楽しむ 3 -温湿度センサ変更-

前回はArduino MKR WiFi 1010を充電・駆動するダイソーのカワイイ ソーラパネルをガチの8Wパネルに変更して運用してみました。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

ここでは温湿度センサを変更してみたので報告いたします。

 

 

温湿度センサ DHT11

これまでは温湿度センサとして以下のDHT11モジュールを使用してきました。

 

以下はDHT11モジュールでベランダの温湿度を計測した結果です。

気温が30℃以上でデータが乱れております。

 

以下は気圧を追加してプロットしたグラフです。気圧は別センサで測定しています。

 

更に以下はソーラ電圧を追加してプロットしたグラフです。

 

上の二つのグラフから温湿度センサのデータの乱れは別センサやマイコンで測定した電圧との相関がないため、
温湿度センサ固有のものであると考えられます。

 

温湿度センサ DHT22

センサを変えてデータの乱れが改善されるか確認してみました。

DHT11より温度動作範囲が広いDHT22を試してみました。

 

以下が変更時のベランダの温湿度測定結果です。

変更後も高温時に若干データの乱れが見えますね。。。なんだろコレ?
温度がピークを迎えてちょっと下がった時にデータが乱れているようにみえます。

もう少し様子見ますが札幌はどんどん気温が低下しているのでデータの乱れは観れないかもしれませんね。。。

しかし動作温度範囲の広いセンサになりましたので低温時も安心ですね。
冬はむしろマイコンやバッテリの動作が心配ですが。。

Arduino IDEコード

温湿度センサは以下のライブラリを使用させてもらっていたので
 https://github.com/adafruit/DHT-sensor-library

#define DHTTYPE DHT11 から
#define DHTTYPE DHT22
に変更するだけで動作しました。

 

動作

以下は8Wソーラに変更後の動作の様子です。

 

バッテリも順調に充電され4V付近をキープしています。 

 

おわりに

ここでは温湿度センサを変更してみました。

高温時に温湿度センサのデータの乱れがありセンサを変えてみましたが、改善はありましたが根絶はできませんでした。
故に原因も謎です。

今回は上位版のセンサを試したので、全く別のセンサも検討することを頭の片隅に置きつつ運用していきたいと思います。

これからは低温との戦いとなるかと思います。

Arduino MKR WiFi 1010 をソーラで楽しむ 2 -ソーラパネル変更-

前回はArduino MKR WiFi 1010をダイソーのソーラーで駆動して
気象データ測定計としてベランダに配置して運用してみました。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

ここではその後の結果と進捗を報告させていただきます。

 

 

ダイソーソーラパネルでの運用

前回の構成での最終結果です。
10分おきに起床してLiPoバッテリ電圧とソーラ発電電圧と気象データ(温度、湿度、気圧)をUDP送信してスリープします。

8/17 22:48から08/27 2:11の約10日間 頑張って動作してくれました。

我が家のベランダの方角的に長時間の日照が得られないこととダイソーのカワイイソーラパネルの発電量では必要電力をまかなえず、徐々にバッテリ電圧が低下しています。

MKRWiFi1010 はWiFi OFFでSleepしても6V入力で15mAほど消費します。
WiFi通信時の電力無視して更にLiPoバッテリ(1200mAh)がフル充電してたとしても
3.7V × 1200mAh ÷ 6V × 15mA = 49.3h
と 約2日しか持たないはずなのでダイソーソーラはよく頑張ったと言えます。

 

得られた気象データは以下

 
気温が30℃以上になると温度、湿度共に乱れる結果となっています。

今後 もっと温度動作範囲の高い温湿度センサを検討したいと考えております。

 

ソーラパネル変更

ソーラパネルの出力を上げることにしました。

開放電圧10.8V、8W出力のガチパネルを使用します。

 

ソーラパネルだけを変えて同様にベランダで運用してみました。

Arduino MKR WiFi 1010のオフィシャルVin最大定格は6Vです。
実施の際は自己責任で宜しくお願い致します。

 

運用状況

取得データを以下に載せます。

 

バッテリ電圧の低下も観られず非常に順調に運用できています。
電気代ゼロの永久なる気象データ測定システムが実現できたかもしれません。
楽しみながら経過をみたいと思います。

 

おわりに

ソーラパネルを変更しての気象データ測定システム運用を開始いたしました。
経過をたのしみにみてゆく所存です。

温湿度計が高温時に異常値を示すので、冬の氷点下がやってくる前にセンサ変更検討したいです。

Arduino MKR WiFi 1010 をソーラで楽しむ 1 -ベランダ気象データ測定-

今夏 Arduino MKR WiFi 1010が国内でも購入できるようになりましたね。
2, 3年前にでた製品だと思うのですが技適で発売が遅れに遅れたんでしょうね。恐らく。

 

 

Arduino MKR WiFi 1010 を購入

Arduino MKR WiFi 1010はWiFi/Bluetooth接続可能なArduino公式のマイコンです。
いまどきはWiFi/Bluetooth内蔵マイコンは珍しくなく強く欲しいとも思わなかったのですが、構成を紐解くと非常に興味深いパワーマネージメントICが載っていることがわかり購入に至りました。

Arduino公式マイコンなんて何年ぶりに手にしたことでしょう。

技適マークは箱にシールで貼ってあるだけでした(そんなんでいいんだ。。)

PMIC : BQ24195L

Arduino MKR WiFi 1010にはパワーマネージメントIC BQ24195Lが搭載されていました。

BQ24195Lはバッテリチャージコントローラとチャージ電圧を生成するDCDCコントローラが内蔵されたシステム電源です。

BQ24195Lの入力電源 (VBUS) の定格が22Vと高く可能性を感じArduino MKR WiFi 1010購入の決め手となりました。
(しかしArduino MKR WiFi 1010の電源入力推奨定格は6Vとなっております。)

参考

 

ソーラー発電で運用

入力耐圧が高くバッテリチャージ機能のあるシステム電源が載っているということで
ソーラー発電による運用を思い立ちました。

(前述の通りArduino MKR WiFi 1010のオフィシャルVin最大定格は6Vです。
実施の際は自己責任で宜しくお願い致します。)

構成

Arduino MKR WiFi 1010 に温湿度センサ、気圧計を接続しました。

 

 

ソーラパネルにはダイソーの300円ガーデンライトのものを2つシリーズにして使用しました。
ソーラ発電電圧は抵抗分圧してアナログ入力ピンで計測します。

動作概要

Arduino MKR WiFi 1010で検出したデータ(バッテリ電圧、ソーラ電圧、気圧、温湿度) を10分おきにUDPで自宅サーバに送信します。
ベランダに配置して運用します。

 

UDP送信後にWiFiを切ってスリープし10分後に起床しWiFi接続→UDP送信を繰り返します。

スリープ&WiFi OFFすることでかなり消費電力を減らすことができました。

消費電力はザックリ以下のような感じです(Vin = 6V)。
・WiFi ON:50 mA
・WiFi OFF:22 mA
・WiFi ON & スリープ:30mA
・WiFi OFF & スリープ:15mA

Arduino IDE コード

 

参考

 

結果

数日運用してみました。

 

 

ダイソーのカワイイソーラーでは発電量が小さいらしくLiPoバッテリを充電できるほどではないようで無日照時に徐々にバッテリ電圧下がっています。何日もつかな 🙄 ?

我が家はベランダが東向きなので晴天時でも日照短いのがすこし悩みどころでもあります。

ベランダの気象データが取得でき大変興味深いです。
しかし温湿度センサが30℃超えると誤動作しているようです。。。
まぁ北海道は年の半分冬だしいいか。。。

 

おわりに

現在Arduino MKR WiFi 1010をソーラー駆動での気象データ測定計として運用中です。

Arduino MKR WiFi 1010というよりもうほとんどパワーマネージメントIC BQ24195Lの評価ボードとして楽しんでいる感もありますが、無線機能がやはり非常に便利です。

現状ですと徐々にバッテリ電圧が低下しているのでいつか落ちてしまうと思います。
次回はソーラパネルの検討を実施したいです。
また温湿度計もなにかいいものがあれば変更するかもしれません。

 

追記

2021/8/22

徐々にバッテリ電圧が低下しております。。

5W ソーラーパネルと ESPマイコン でバッテリーレス ロガー製作

前回はSPRESENSEにソーラパネルを直結してロガー動作を楽しみました。

100均のソーラーパネルで Raspberry Pi Pico を駆動

SPRESENSEの低消費動作によって日中のソーラー駆動を確認でき、データはSDカードに保存しました。
しかし、データ取得にいちいちSDカードの回収が必要となり、シンドイのでここではESP32やESP8266を用いてデータをWiFiで送信できないかを検証してみました。

 

 

ESP32

ESP32にソーラパネルを直結してWiFi接続し、サーバへデータをUDP送信するシステムを構築しました。

構成

ソーラパネルの発電電圧を所得するために、抵抗分圧してIOに入力しています。

 

動作

WiFi接続してUDPでサーバにソーラパネルの発電電圧を送信します。

ESP32はWiFi送信時に約0.5Wほど消費し、晴天時の直射日光を受けれたときのみ動作しました。

我が家のベランダは東向きで午前中しか直射日光が入りませんので、以下のように晴天時の午前中のみ動作しています。

 

ESP8266

ESP8266のほうが消費電流が安定しているという情報をいただきましたので、こちらでも試してみました。

構成

 

 

動作

ESP32同様に直射日光が照射されたときに動作しています。
しかし、たまに起動不良を起こし長時間の連続動作はできませんでした。

ちょっとリセット等のボードの構成の理解が足りていないかもしれません。

 

 

おわりに

ここではESPマイコンのソーラ直結しWiFi通信を試してみました。
さすがに消費電力が大きいのでさらに大きいパネルを用いる必要がありそうです。

もしくはこの場合は以下の応用のように普通にバッテリ使用するのが良いかもしれませんね。

ハエトリソウ捕食監視システム

5W ソーラーパネルと SPRESENSE でバッテリーレス ロガー製作

前回は100均のガーデンライトのソーラーパネルを用いてバッテリーレス データロガーを製作しました。

100均のソーラーパネルで Raspberry Pi Pico を駆動

しかしソーラーの出力がさほど大きくなく曇り時や少しでもソーラーに影がかかると動かなくなってしまうため、長時間運用は難しいものでした。

ここではソーラーの出力を上げてみましたので報告させていただきます。

 

 

ソーラーパネル

手元に5W ソーラーパネルがありましたのでコレを使用して長時間動作を目指し再実験します。

こちらは開放電圧が約21.6VとSPRESENSEの入力電圧定格値 (7V)を大きく超えてしまうため、直結はできません。

 

昇降圧DCDC

そこでここではソーラーパネルとSPRESENSE間にコンバータを挿入することにします。

入力電圧範囲が2.7~22Vと非常に幅広い昇降圧DCDCコンバータを購入いたしました。

 

I2Cでも出力電圧を設定できる低価格なDCDCコンバータです。

 

ここでは実装されているポテンショメータで出力電圧を4Vに固定して使用します。

 

データロガーシステム構成

5Wソーラーパネルを昇降圧DCDCコンバータに入力して出力電圧を4Vに設定してSPRESENNSEに供給します。

 

 

 

ベランダで運用

早速ロガーをベランダに置いてみました。

SPRESENSEの動作コードは前回と同じです。
GPSで時刻を取得して時刻とその時のSPRESENSE電源電圧をSDカードに記録して、60秒スリープし起床を繰り返します。

結果

SDカードを回収しデータを観ます。

 

なんと5:18~16:30までのデータが取得できていました!

我が家のベランダは東向きで直射日光が降りそそぐ時間は長くても11時くらいまでであり、しかも観測した日は曇りがちの天気でした。

それにも関わらずこの長時間動作を実現できたのはソーラーパネルの出力を上げれたためです。
(もちろんSPRESENSEの低消費電力動作も大きく貢献している)

データとしてはDCDCの出力電圧 4Vを得ただけなのでさして面白くはないですねw

 

おわりに

ソーラーパネルの出力を上げることによって、バッテリーなしでも日中SPRESENSEの長時間動作が実現できることが分かりました。

しかし、SDカード回収によるデータ取得になるため、かなり不便です。

次回はこのシステムでESP32を駆動してWiFiでデータをUDP定期送信してみたいです。

追記

2021/5/1

以降も継続してベランダに配置してデータみてみました。

観測日は天候も良くなく アメダス によりますと1日の日照時間が

 4/29:3.4時間
 4/30:0時間
 5 /  1:0.9時間

とかなり悪条件下でした。5/1については15:00以降にやっと日が出たので東向きの我が家のベランダでは直射日光はほぼありませんでした。

しかし、悪天候でもそれなりに動いてくれることがわかりました。

100均のソーラーパネルと SPRESENSE でバッテリーレス ロガー製作

前回は100均のソーラーパネルで Raspberry Pi Pico を駆動してみました。

100均のソーラーパネルで Raspberry Pi Pico を駆動

このときSPRESENSE も動かしてみて報告しています。
ここではSPRESENSE でロガーを製作してみましたので報告させていただきます。

 

 

前回のおさらい

100円ガーデンライトのソーラーを2個シリーズに接続してSPRESENSE に直結してLチカ動作させてみました。

SPRESENSE のメインボードの電源入力
 ・動作推奨電圧:3.6V~4.4V
 ・最大絶対定格電圧:7V
とのことです。

100円ガーデンライトのソーラーを2個シリーズに接続して日光に当てると、無負荷で5Vほど出力しました。

SPRESENSE は4つのLEDを点灯させるサンプルコードを書き込んでおり
3.6V入力で10mAほど 約0.04Wの消費で非常に低消費電力でした。

SPRESENSE が低消費電力設計がなされているため、100円ガーデンライトのソーラー2個でも駆動できたと考えられます。

 

GPS

SPRESENSEにはGPSが搭載されています。
そこでGPSからの時刻取得を試してみました。

衛星信号を受信して現在時刻の取得を確認できました。
ちなみにこちらの実験はスマホからUSBホストケーブルで給電&シリアルデータ受信してSerial USB Terminalで表示しています。

GPSを動かしてもSPRESENSEは0.05Wほどしか消費しませんでした。
さらにクロックを156MHz から32MHzに下げたところ0.03Wまで低消費電力化できました。

あらためてSPRESENSE凄いです!

参考

 

ロガー製作

低消費でGPSから時刻が取得できることがわかりましたので、完全バッテリーレスのロガー実現を目指します。

ここでは、ソーラをSPRESENSEに直結してソーラの出力電圧と時刻をSDカードに記録するロガーを作ります。

以前にSDカードスロットを搭載した小型のSPRESENSE拡張ボードを購入しておりましたのでコチラを使用します。

 

GPSが時刻取得で入力電圧を測ってSD記録し1分スリープする動作にいたしました。

 

ソーラー電圧監視は以下を参考にLowPower ライブラリを使用しました。
 https://qiita.com/baggio/items/456b93bee54111f2fabf

 

ロガー動作

早速ベランダにロガーを設置してみました。

 

しかし、データは保存されていませんでした。。。
GPSは動作しているようですがSDカードを起動できてないみたいです。

出力の大きそうな300円ガーデンライトのソーラーに変更してみます。
2個をシリーズに接続しています。

 

 

しかしこれでもSDカード書き込みはできませんでした。。。

 

SDカード消費電力

SDカード書き込みに時の電力を測ってみました。

通常動作時は電源電圧3.6V印可で10mAを超えることはないのですが、SD書き込み時には16mAを超えていました。瞬間的にはもっと流れていそうです。

そこで、ソーラ出力にコンデンサを挿入いたしました。
日照量にもよるのでしょうが10uFではまだ足りなかったので
景気よく1000uFを挿入しましたところ無事SDカード書き込みが確認できました。

ロガーの最終的な構成

こぼれ話

消費電力を測定する際に間違って過電圧印可してしまいSPRESENSEを壊しました。。。

 

しょうがないので購入しました。もともと頂き物ですし。。。
toioもいただけたのでプラスマイナスゼロいやむしろ得したと思うことにします( ;∀;)。

 

Arduino コード

GPSで時刻更新後に入力電圧を計測してSDカードに保存して、60秒スリープし起床を繰り返します。

 

参考

 

結果

SDカードのログ(log.txt)は以下の通りです。

 

完全バッテリーレスでロガーができてしまいました!
当然電気代ゼロでしかもソーラーはダイソーで買ったものです!

面白いのでしばらく運用してみようと思います。

日中ベランダに置いといたのですが東向きで長時間の日照が得られず、
またベランダ柵の陰もかかるなどして10分しかデータとれてませんでした。。。

 

今回、日照次第でバッテリーレス&電気代ゼロでデータロガーができることがわかりました。

しかし、これまただからなんだ?という話です。
日中のソーラー電圧を測っているだけですし、仮に気温やガーデニング植物の土の湿度など意味ありげな数値を測れたとしてもSDカード回収が必要です。。。

次回やるならバッテリーレスでWiFiでデータ飛ばしたいな

100均のソーラーパネルで Raspberry Pi Pico を駆動

ネットで面白い記事を見つけました。

Spresense用の拡張ボード発売の記事で

”一旦起動すると2V付近まで電圧が落ちても動作し続けるので、乾電池や太陽電池などのエナジーハーベスト電源でも動作可能だとしている。”

とのこと。
 

「ん? こういったマイコンにソーラー直結って用途ありうるの?」
と思ったのですが

といった返信をいただき、なるほど日中のロガー用途がありうるのかと勉強になった次第です。

 

 

自分でもやってみたくなった

特に応用は考えてないのですが、ソーラーパネルをマイコンに直結して駆動できるのか試してみたくなりました。

ダイソーでソーラーパネル調達

早速私が愛用する電子部品屋さんの100円均一ショップ ダイソーに向かいました。

100円と300円のガーデンライトを購入し分解してソーラーパネルを取り出しました。

100円ガーデンライト

 

300円ガーデンライト

 

無事にソーラーパネルの調達ができました。

今回は分解したので使用しませんが、ライトにはニッケル水素バッテリが使用されていました。
日中は充電して夜間はバッテリで点灯という動作です。

Raspberry Pi Pico 駆動

入手したソーラーパネルでRaspberry Pi Pico を駆動してみます。

Raspberry Pi Pico には昇降圧DCDC (RT6150) が搭載され入力電圧が1.8~5.5 Vと広いので採用しました。

早速、直射日光のもと300円ガーデンライトのソーラーパネルをRaspberry Pi Picoの電源入力端子 VSYSに直結してみました。

動いた!

本当に動きました!!

Raspberry Pi Pico にはLチカのサンプルコードを書き込んでいます。
安定化電源で消費電力を観たところ、1.8Vで60mAほどと約0.1W消費します。

300円ガーデンライトのソーラーパネルは無負荷時で2.5Vまで上昇しました。
これは正確な実力値ではないので、実際に直結する際には過電圧でデバイスが壊れないようにお気を付けください。

 

ちなみに100円ガーデンライトのソーラーパネルでは出力が足りず2個をパラレルにしてもRaspberry Pi Pico は起動しませんでした。

 

TINY EXPANSION BOARD for Spresense

冒頭に紹介したSpresense用拡張ボードに話を戻します。
以下は販売元のページです。

TINY EXPANSION BOARD for Spresense [R2] 技術資料

入力電源範囲が3〜20Vと広いです。
これであれば無負荷で20Vほど出力する10W級のソーラーパネルでも使用できますね。
起動後は2V近辺まで動作できるとのことで、ソーラーパネル直結駆動に最適な仕様といえます。

しかし高い。。。
明確な応用がない趣味の勉強で¥12,800は出せない。。

 

おそらく入力電源範囲の広い昇降圧DCDCがのってるはずだから、電源部だけ欲しいなww 

 

おわりに

100均のソーラパネル直結でRaspberry Pi Pico を駆動できることが分かりました。
しかし日中クリーンエネルギーでラズパイLチカして何になるのだという話です。
分解しないでガーデンライトとして使用したほうが意味があります。

いいえこの経験は今後の私の人生になにかしら良い影響があるはずです。そう思わせておいてください。

TINY EXPANSION BOARD for Spresenseのように広い入力電圧範囲が実現されればソーラパネルの選択肢もひろがり、応用もききそうです。

なんせSpresenseにはGPS搭載されていますのでリアルタイムに時刻がとれ
真のバッテリレスでのロガーが作れる可能性があります。

 

入力電圧範囲の広い良い昇降圧DCDCが入手出来たら、私もSpresenseでバッテリレスロガー作ってみたいです。

 

追記

Spresenseも動かしてみた(21/4/21)

100円ガーデンライトのソーラーを2個シリーズに接続してSpresenseに直結してみました。

なんとこちらも動きましたね!

Spresenseのメインボードの電源入力
 ・動作推奨電圧:3.6V~4.4V
 ・最大絶対定格電圧:7V
とのことです。

100円ガーデンライトのソーラーを2個シリーズに接続して日光に当てると、無負荷で5Vほど出力しました。

Spresenseは4つのLEDを点灯させるサンプルコードを書き込んでおり
3.6V入力で10mAほど 約0.04Wの消費で非常に低消費電力でした。

Spresenseが低消費電力設計がなされているため、100円ガーデンライトのソーラー2個でも駆動できたと考えられます。

これにGPS動作や外部周辺機器をつけてどれほど消費電力が増すのかが興味深い点ですね。

電気代ゼロ! エコロジーLED表示器の自作 ーベランダ太陽光発電所への道7ー

さて我が家では今夏ベランダで太陽光発電システムを構築して、ハエトリソウの自動観察装置を運用しておりました。 

こちらのハエトリソウ捕食監視システムについては後日紹介させていただきます。

冬の到来でハエトリソウ観察は終了しましたので、太陽光発電システムを活用するべくエコロジーLED表示器を作りましたので紹介させていただきます。

これからのクリスマスシーズンにピッタリかと存じます。

 

 

構成

チャージコントローラでソーラパネルで発電された電気をバッテリにチャージして、ワイヤレスチャージャで電気を無線給電してLEDを点灯します。

部品

 

E32-SolarCharger

ESP32搭載のソーラー充電コントローラを使用しております。
Arduino IDEで動作を自由にカスタマイズできます。

ここではソーラパネルの電圧が8V以下(夜間)になると、負荷スイッチをONして充電システムをスリープさせて、ソーラパネルの電圧が10V以上(日中)のときに負荷スイッチをOFFして充電システムのスリープを解除しました。

つまり日中はバッテリを太陽光で充電して、夜間はLED表示器を動作させます。太陽エネルギーを有効活用した実にエコロジーなシステムとなってございます。

E32-SolarChargerの詳細は以下をご覧ください。

E32-SolarCharger の PWM制御 ーベランダ太陽光発電所への道4ー

 

LED表示器の設置

ベランダの太陽光発電システムの負荷にワイヤレスチャージモジュールの送信側を接続します。

 
窓にワイヤレスチャージモジュールの送信側を貼り付けて、室内に給電できるようにします。

 

室内ではワイヤレスチャージモジュールの受信側を電源としてマイコンとLEDを動作させます。

動画ではESP32を使っていますが、ESP8266に変更しています。
ESP32にneopixelを多数接続したところ定期的にLEDセルの点灯がおかしい箇所が発生したのです。

ESP32は出力ピンに1msec毎にデータ干渉が発生するとのことでした。対策いろいろ試しましたが今回LED180セル使用して全てが正常に点灯制御することができませんでした。

 
窓にLED(18×10)とワイヤレスチャージモジュールの受信側を貼り付け完成です。

 


 

Blynk

今回はBlynkでLEDマトリクスの表示をWiFi介して変更できるようにしました。

Text Inputウィジット(ヴァーチャルピンV1)で表示するテキストを送信して、
zeRGBaウィジット(ヴァーチャルピンV0)でLEDの色を送信します。

LEDマトリクスに表示できるのは今のところアルファベットのみです。

Arduino IDE

LED表示用に以下のライブラリを使用しています。
 https://github.com/adafruit/Adafruit_NeoPixel
 https://github.com/adafruit/Adafruit-GFX-Library
 https://github.com/adafruit/Adafruit_NeoMatrix
 

マトリクスライブラリは文字表示なども簡単にできるので非常に便利です。詳細は以下のブログも参照ください。

 

Blynkライブラリも使用して以下のサンプルコードを元にコーディングいたしました。
 https://github.com/blynkkk/blynk-library/blob/master/examples/Boards_WiFi/ESP8266_Standalone/ESP8266_Standalone.ino

ヴァーチャルピンV0で色情報、ヴァーチャルピンV1で表示テキストをスマホのBlynkアプリから取得します。

動作

夜間に自動的に起動して、表示をスマホから変更することができます。
しかも電気代もかからず実にエコロジーかつエコノミー!

次はLEDに表示する絵を自由に描けるアプリを作りたいです。
お母ちゃん宜しく!!

 

追記

19/11/24 バッテリ電圧低下で負荷OFF

日没後(ソーラパネル電圧が8V以下)に負荷スイッチをONしてコントローラをスリープ(15分おきに電圧状況確認)しております。
しかし、日没後に無条件に負荷をONしてLED表示器を動作させるとバッテリ電圧がドンドン低下してしまいます。

そこで、夜間もバッテリ電圧を確認し10.8V以下で負荷スイッチをOFFするようにしました。12V以上で復帰します。
これでバッテリの過剰電圧低下が防ぐことができます。

 

しかし、ここ1週間はほぼ毎日雪降りで日照少なくLED表示器の点灯がありません。。。ただでさえ西向きのベランダですのでバッテリチャージも低調です。

クリスマス前に12V以上になることを願っています。

日射量データベースから太陽光発電量を算出 ーベランダ太陽光発電所への道6ー

我が家のベランダは西向きであまり日照時間が長くなく、それに伴い発電も主に午前中に実施されることがわかっています(6:00~11:00)。

発電したい電力量がわかっていて、設置場所の日射量がわかっていれば、どのくらいのサイズのソーラーパネルを購入すればいいかが前もって見積もれます。

各地の日射量はデータベースとして公開されていますのでここでは日射量から発電量を見積もる方法を紹介します。

 

 

日射量データベース

国立研究開発法人NEDOは各地の各種日射量データベースを公開しています。

https://appww2.infoc.nedo.go.jp/appww/index.html

  • 年間時別日射量データベース(METPV-11)
    各地の時間、方角、パネル傾斜角度による日射量(M J /$m^2$)が算出できる
     
  • 年間月別日射量データベース(MONSOLA-11)
    各地の方角、パネル傾斜角度による月間平均総日射量(kWh /$(m^2・day)$)が算出できる
     
  • 全国日射量マップ
    射量データを日本地図上にマップ化したものを表示

発電量算出

ここでは年間月別日射量データベース(MONSOLA-11)を用いて一日当たりのソーラーパネル発電量を見積もってみたいと思います。

データベースにアクセスしてMONSOLA-11を選択。場所は札幌にします。

 

表示データ選択で年変動を選択すると月別、年平均、季節別の日射量の最大値、平均値、最小値が表示されます。

パネルの方角や設置角度によって日射量がかわるために最大最小の振れ幅があります。

札幌の場合、年平均で3.37kWh /$(m^2・day)$の日射量となります。つまり1日当たり1$m^2$の敷地に3.37kWhの太陽エネルギーが降る注ぐのです。

ソーラーパネルの定格出力は1kW /$(m^2)$の光を照射したときに出力される電力量を示しています。JISかなんかの規格で決まっているようです。

つまり12Wのソーラーパネルは1kW /$(m^2)$の光を照射すると12W出力します。

発電量算出

発電量は以下の式で算出できます。

 発電量 = 日射量 × ソーラーパネル定格出力 × 損失係数

   損失係数はソーラ定格出力の誤差などで一般的に75%程度で考えるようです。

 

例えば12Wのソーラーパネルを札幌に設置して得られる年平均の発電量を見積もると

発電量 = 3.37kWh /$(m^2・day)$ × $\left(\frac{12W}{1kW /(m^2)}\right)$ × 0.75 = 3.37 h/day × 12W × 0.75 = 30.3 Wh/day

年平均で1日30.3Whの電力の発電が見込めるというわけです。

その他表示データ

表示データを角度指定にするとパネルの方角や傾斜角が指定できそれぞれの日射量がグラフに出力されます。

例えばパネルを西向きにすると上図のようにパネル角度による月別、年平均、季節別の日射量が表示されます。

冬は太陽が低いのでパネルの角度依存は小さいなど様々な情報を得ることができて設置方角や角度の決定に大いに参考になることでしょう。

 

 

おわりに

ここでは日照量データベースから発電量を算出する方法を紹介しました。データベースを使用すれば必要発電量からパネルの定格出力や台数を見積もることもできるでしょう。また設置角度や方角も前もって設計が可能となります。

非常に便利なデータベース。賢く利用したいものです。

 

 

 

太陽光発電でタイムラプス撮影 ーベランダ太陽光発電所への道5ー

いよいよ太陽光発電を本格運用します。ここではラズパイカメラをつないでタイムラプス撮影を実施したのでご報告します。

 

 
 

構成

ソーラーパネルと鉛蓄電池をチャージコントローラに接続します。負荷としてラズパイカメラをつなげました。

部品

 

発電システム

Indoor Corgi Elec.社製のマイコンとしてESP32を使用した太陽光発電充電コントローラを使用します。マイクロSDカードスロットもありデータログを記録できます。

システムは以下の通りでESP32用Arduinoコードが提供されています。

概要

  • バッテリの電圧と充電電流を監視してPWM制御します。
  • 液晶ディスプレイにバッテリ電圧・電流、ソーラパネル発電電圧、動作モードを表示
  • 測定値のログをSDカードに保存。
  • 負荷とバッテリ間のスイッチでバッテリ電圧が低下した際に負荷の切断が可能。
  • ソーラパネル発電電圧を観測して8Vを下回るとコントローラをディープスリープさせて消費電力を抑える。
  • ESP32のWiFi機能でブラウザで各種数値表示や動作モード変更が可能

めっちゃ高機能で便利!!Arduinoコードなのでカスタマイズも比較的簡単にできます。

ブラウザ表示 (設定)

ここではターゲットとするバッテリ充電電圧を13.8V、充電電流を1Aとしました。スリープモードは有効にしています。負荷の切り離しは無効にしてスリープ時もバッテリの電気でラズパイを動かします。

無負荷時の発電動作

まずは負荷なしでチャージ動作を観測してみました。

日が当たるとソーラパネル発電電圧が18V程度になりバッテリに充電されます。バッテリ電圧はほぼターゲットの13.8Vを維持しています。
家は西向きのベランダのため直射日光は6~11時くらいしか得られていません。。。

夜間になりパネル電圧が8V以下になるとコントローラはDeep Sleepモードとなり15分おきに起動して電圧観測し、日の出でパネル電圧が上昇するとスリープを解除します。

 

タイムラプス撮影

丸一日ラズパイカメラをつないで写真撮影してみました。

Node-RED

ラズパイカメラの定期撮影はNode-REDで実施しました。2分おきに撮影します。

 

①撮影トリガ インジェクトノード

カメラ撮影のためのトリガです。2分おきに定期的に動くようにしています。また撮影したjpegファイル名を1づつ増やすためにPayloadに”1″を指定しています。

 

②jpegファイル名生成 ファンクションノード

グローバル変数sumに前段ペイロードの”1″を足して4桁の連番jpegファイル名を生成しています。

 

③カメラ撮影ノード

カメラ撮影を実行する node-red-contrib-camerapi を使用しました。
 https://www.npmjs.com/package/node-red-contrib-camerapi

輝度や画像サイズなどもろもろ設定可能です。前段の連番ファイル名msg.filenameを受けて撮影実施ます。

 

④ファイル名 連番リセット

前段のインジェクトノードをクリックするとこのファンクションが起動して、グローバル変数sumをリセットします。

タイムラプス

撮影した写真をつないで動画にしました。

おもしろい。しかも電気代タダ!!

タイムラプス動画生成は以下を参考にしました。
 http://sozaing.com/technique/timelapse_movie/

各電圧変化は以下の通りです。

日の出後は曇りのためほとんどチャージできていませんが、さほどバッテリは減りませんでした。

ラズパイカメラ定期撮影くらいなら余裕で長期運用できそうです。引き続き実験していきます。

E32-SolarCharger の PWM制御 ーベランダ太陽光発電所への道4ー

さてこれまでソーラー充電コントローラの基本機能を学んできましたが、いよいよ発電開始!です。

実際にソーラーパネルとバッテリをつないで動かしていきましょう。

構成

ソーラーパネルと鉛蓄電池をコントローラに接続します。今回は負荷はつなげていません。

 

コントローラと蓄電池の+側の配線には3Aヒューズを挿入しています。

部品

PWM充電方式

以下のサンプルコードを使用しました。
 http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/PWM.zip

システム概要

電力モニタ INA219でバッテリの電圧と電流を観測して、スイッチング回路のスイッチングパルス幅を制御(パルス幅変調 PWM)します。

電流はINA219のIN+, IN-ピン間の抵抗0.01Ωの電圧降下で測定します。今回は負荷は接続しないので観測される電流はバッテリへのチャージ電流となります。
負荷が接続されてチャージ電流より負荷電流のほうが大きくなると観測電流は負の値となります。

サンプルコードPWM制御部

以下がサンプルコードのPWM制御部の記述です。

PWM信号はESP32のledcxxxx関数で生成します。ここではESP32のIO32ピンから周波数3kHzのスイッチング信号を出力します。パルス幅は8ビット(0-255)で指定します。

INA219でバッテリの電圧と電流を観ながらパルス幅をコントロールします。バッテリ電圧目標値は13.8V、チャージ電流 1Aとしています。

  • バッテリ電圧が14.6Vより大きいか、バッテリチャージ電流が1.5A以上であればパルス幅を10減らす。
  • バッテリ電圧が13.8Vより大きいか、バッテリチャージ電流が1.1A以上であればパルス幅を1減らす。
  • バッテリ電圧が13.0Vより小さくバッテリチャージ電流が0.5以下であればパルス幅を10増やす。
  • バッテリ電圧が13.6Vより小さくバッテリチャージ電流が0.9以下であればパルス幅を1増やす。

上記のPWM制御を施してバッテリ電圧を13.8Vにします。

動作

バッテリがほぼターゲット電圧である13.8V付近までジャージされているのでパルス幅はほぼ0に近い状態です。

ソーラーパネルを手で隠すと電圧降下してパルス幅が少し大きくなります。

チャージ時初めのころはバッテリ電圧が12V程度でしたのでスイッチングはフルオン(パルス幅Max 255)でソーラーパネルからの電圧が直接バッテリに供給されていました。

これでソーラー発電でバッテリ充電できることが確認できました。

ソーラーパネル

今回使用したソーラーパネルのSY-M12W-12の仕様は以下の通りです。

  • 最大出力電力 :12W
  • 開放電圧   :21.8V
  • 短絡電流   :0.73A
  • 最大出力時電圧:17.4V
  • 最大負荷時電流:0.69A

最大で12W出力します。最大出力が17.4Vですのでコントローラやバッテリの耐圧はこれ以上にする必要があります。

最大電流値をもとにヒューズやPWM制御時のしきい値も考慮が必要です。

参考

バッテリ

今回は定格容量 12Ah(12V)の完全密封型鉛蓄電池 WP12-12を使用しました。仕様は以下の通りです。

  • 定格容量:12V 12Ah
  • 充電電圧:14.4~15.0V(サイクルユース)、13.5~13.8V(スタンバイユース)

サイクルユースとは普通の充電池のように満充電状態から放電をして一定まで放電後に再充電をくり返す使用で、
スタンバイユースとは常に充電しておいて停電などの非常時に使用する方法です。

WP12-12の寿命はデータシート上は以下のとおりです。

サイクルユース

  • 100% 放電 250 cycles
  • 80% 放電 350 cycles
  • 50% 放電 550 cycles
     

スタンバイユース

  •  3~5年
     

バッテリ寿命は外気温などでも変わるようですし、スタンバイユースは非常時の放電量によっても寿命が変わりそうですね。

今回のベランダ発電では日照時はバッテリチャージしつつソーラーからの電気を使用し、無日照時はバッテリの電気を使用するのでスタンバイユースになります。

無日照時の放電量もケアする必要ありそうです。

参考

E32-SolarCharger の 入力電圧測定 ーベランダ太陽光発電所への道3ー

第3 回となりますシリーズ “ベランダ太陽光発電所への道”。今回もソーラー充電コントローラ E32-SolarCharger の基礎的な動作を学びます。

 

今回は E32-SolarChargerに使用されているマイコンESP32のアナログ入力機能を使用してソーラーパネル入力電圧を測ります。

 

 

ソーラーパネル電圧

ソーラーパネルの電圧は光の照射量によって変わるようです。マイコンでこの電圧を測ってチャージ電圧の制御や照射がない時は動作停止させることができます。

販売元であるIndoor Corgi Elec.社のサイトにソーラーパネル入力端子T1の電圧測定ができるサンプルコードがアップされておりますので試してみました。

 http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/VCRG.ziphttp://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/Load-Sleep.zip

IO36に抵抗10kと1.5kで分圧して電圧入力しています。

測定電圧 = 3.3 * 115 / 15 * analogRead(pinADC) / 4095 + 1.25

1.25は補正値。

動作

入力にはソーラーパネルの代わりにADALM2000の電圧出力ピンを接続しています。

 

1秒おきに電圧測定しています。いい感じに測定できています。

 

おわりに

これでソーラーパネルの発電電圧測定が可能となりました。電圧に応じてバッテリへのチャージ量や無日照時の動作停止などができそうです♪

E32-SolarCharger の Deep Sleep ーベランダ太陽光発電所への道2ー

さて第2回となりますシリーズ “ベランダ太陽光発電所への道”。今日もソーラー充電コントローラ E32-SolarCharger の基礎的な動作を学び この基板との距離を縮めていきたいと思います。

まぁ帰ってきたら夜でソーラー発電動作実験できないからね。トランキーロ焦らずじっくりやっていきます。

 

今回は E32-SolarChargerに使用されているマイコンESP32のDeep Sleepについて学習します。

 

 

Deep Sleep

例えば太陽光がソーラーパネルに届かないのにマイコンで一生懸命バッテリーへのチャージ動作しても意味がないですよね。チャージ動作停止するだけでもいいのですが、マイコンの待機消費電流をも抑えてしまおうというのがDeep Sleep機能です。

販売元であるIndoor Corgi Elec.社のサイトにDeep Sleep動作を確認できるサンプルコードがアップされておりますので試してみました。

 http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/Load-Sleep.zip

こちらを書き込み起動すると自動的にESP32はDeepSleepモードに入ります。30秒経過もしくはSW3スイッチを押すとDeepSleepから復帰します。

動作

SW3スイッチを押すたびにESP32がDeep Sleepしています。スリープする前にラッチICで保持してLED1(緑)の点灯を保っています。

ここで驚いたのですがコード内の変数宣言の冒頭でRTC_DATA_ATTRを
付けるとスリープしても初期化されず値を保持します。

このサンプルでは復帰回数をカウントしています。

またスリープ復帰後にesp_sleep_get_wakeup_cause()で復帰理由の取得も行って表示しています。

 

おわりに

今回のDeep Sleep動作学習は非常にためになりました。他のESP32製品使用時にも大いに役に立つと思います。

なによりベランダ太陽光発電においてDeep Sleepは重要な役目を果たすことになるでしょう。太陽光を効率よく無駄なくチャージして有効利用を目指します。

俺はベランダで太陽光発電をする人になる!

参考

E32-SolarCharger の基礎 ーベランダ太陽光発電所への道1ー

前々から太陽光発電に興味がございまして、こういったIoTな時代ですから発電量とかリアルタイムに監視しながら充電方式など勉強出来たら最高だなとぼんやり思ってました。

札幌も暖かくなってきたしベランダで発電でもしてみようかと調べてみるとソーラーパネルやバッテリも数千円とかで安くてビックリ。

ESP32でチャージコントロールするシステム自作も考えたのですが、まんま使える製品を見つけたのです。

 

E32-SolarCharger

バッテリーの電圧・電流も監視出来て、LCDもついててさらにESP32を使ってるのでwebにデータ表示させてりはお手のもの。しかもArduino IDEでカスタマイズできるのが最高です。

システム設計の手を止め速攻でポチッたよね。

連載シリーズ”ベランダ太陽光発電所への道”ではベランダ太陽光発電所の開設を目指して七転八倒する様をなるべくリアルタイムにご報告したいと思います。

尚、結末がどうなるかは私にもわかりません。。。

 

 

ベランダ太陽光発電所への道の目標

以下が本シリーズの目標です。達成できるか否かは現時点では全く分かりません(オラ ワクワクすっぞ)。

  • チャージコントローラ E32-SolarCharger の基本的使用法を身につける
  • MPPT方式を実現させPWM方式との比較を行う
  • 発電した電気の有効な利用方法を考案・実施する

E32-SolarCharger

Indoor Corgi Elec.社製のマイコンとしてESP32を使用した太陽光発電充電コントローラです。マイクロSDカードスロットもありデータログを記録できます。

 

以下は販売元のページです。サンプルコードも記載されております。

回路図

http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/E32-SolarCharger-Schematic.pdf

 

Arduinoコード書き込み

まずシリーズ初回の今回はE32-SolarChargerの基本的使用方法を身につけ距離を縮めたいと思います。

開発環境

Arduino IDEを使用します。ライブラリはesp32core version1.0.0を使用。

PCと接続

書き込み用としてUARTのRX, TX端子とGND端子のみがついています。Arduino IDEでの書き込み時のPCとの接続にはUSBシリアルモジュールが必要となります。私はFTDI USBシリアル変換アダプタを使用しました。

チャージコントローラのUART端子のRX, TX, GNDをシリアル変換アダプタ(3.3V)のRX, TX, GNDに直結させます。

 

電源

コントローラ電源はDCジャックにADアダプタを接続して供給しました。7V-20Vで 1A以上が推奨です。

コントローラ電源はジャンパでバッテリ供給かDCジャック供給を選択てきますのでDCジャックのほうにジャンパを接続します。

コード書き込み

ここではLCDディスプレイ、スイッチ、LEDのサンプルプログラムを書き込んでみます。

 http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/interface.zip

SW2を押したままSW1 (リセット)を押して離すとESP32がプログラム書き込みモード になり書き込みが可能となります。

 

 

動作

LCDに文字列が表示され、スイッチを押すと対応するLEDが点灯します。

参考

http://indoor.lolipop.jp/IndoorCorgiElec/Dev-ArduinoIDE-ESP-WROOM-32.php

おわりに

さてこの道はどうなるものか。目標は達成されるのか。まぁ手を動かして好奇心刺激して続けていくことが大切でしょうか。

次回もE32-SolarChargerのサンプルコードを触ってみて基本を身につけたいと思います。