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

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

2021年9月21日から本格運用を開始しましたベランダ太陽光発電 気象観測システムが遂に1周年を迎えました。

まだまだ元気に動いておりますよ。

 

構成おさらい

ベランダ太陽光発電 気象観測システムの構成は以下の通り。
マイコン Arduino MKR WiFi 1010に気圧センサ、温湿度センサとLiPoバッテリ、ソーラパネルを接続したのみです。

Arduino MKR WiFi 1010にはパワーマネージメントIC BQ24195Lが搭載されており、LiPoバッテリを接続してマイコンへの給電電圧生成やLiPoバッテリのチャージをコントロールします。

BQ24195Lの入力電源の定格が22Vと高い値であったことに着目し、ソーラパネルによる運用ができるのではと考え本運用が開始されました。

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

部品

  • Arduino MKR WiFi 1010
    [amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]
  • 温湿度センサ SHT31
    [amazonjs asin=”B097P3KNBY” locale=”JP” title=”BSTKING SHT31 SHT31-D 用温度湿度センサーブレークアウトボード天候モジュール”]
  • 大気圧センサーモジュール BMP280
    [amazonjs asin=”B074KBWYX8″ locale=”JP” title=”GAOHOU GY-BMP280-3.3高精度大気圧センサーモジュールArduino用”]
  • LiPoバッテリ 1200mAh
    [amazonjs asin=”B00IG0C9Y6″ locale=”JP” title=”3.7V充電式 063450 リチウム電池交換用1200mAh 603450 バッテリー forソニーゴールドワイヤレスヘッドセット, Sony PlatStation 4 CUH-ZCT1J PS4 コントローラー、GPS、MP4、POS機、カメラなどの”]
  • 8W ソーラパネル
    [amazonjs asin=”B004GWY0J0″ locale=”JP” title=”6V用 8W 多結晶ソーラーパネル 6V システム系 6Vバッテリー充電 6V電源 6V機器”]

1年間のデータ

気温

札幌の年間の気温差はかなり広いですね。。

湿度

気圧

バッテリ電圧

LiPoバッテリ電圧も低下し続けることはなく、ソーラパネルより充電され電圧を保てています。

2022年6月末に急激に電圧が下がっていますが、こちらは風でソーラパネルが倒れていることに4日ほど気づかず電圧が低下してしまいました。
パネル設置し直したのちに正常に充電がされています。

ソーラパネル電圧

我が家のベランダは東向きで1日の日照量がそれほど多くないですが、無事に1年間動き続けてくれました。

思い出

1年間いろんなことがございました。

トンガ火山噴火

2022年 1/15~1/17トンガ火山噴火による衝撃波を気圧計で観測しました。
これには大変驚きましたし、思わぬ形で地球が丸であることを実感しました。

雪にも負けず

札幌は雪も多いので大変です。。。
こまめに除雪しますが、白いためか意外と全く発電されなということはなく電圧はそれなりに出るので気づきにくい。

パネルが2個ありますが本システムは右で、
左はコチラ☟

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

温湿度センサ変更

温湿度センサは何種類か変更しております。
2022年4月にも変更しました。

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

データ取得頻度変更

2022年6月にはデータ取得頻度を10分→3分に変更しました。
バッテリ電圧低下も問題なく運用できております。

台風

台風が接近するとグングン気圧が下がる様子が観測されます (2022年9月)。

おわりに

簡素な構成で開始した本ベランダ太陽光発電 気象観測システムですが、無事に1年間元気に動いてくれました。

まだまだ元気に動いてくれると思うので引き続き気象データを楽しみたいと思います。

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

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

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

 

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

 

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

 

温湿度センサ交換

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

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

[bc url=”https://jp.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html”]

[amazonjs asin=”B07CSNMYN7″ locale=”JP” title=”OSOYOO Arduino用 DHT22 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定 アルドゥイーノやRaspberry Pi 2 3電子工作用 2個セット”]

新温湿度センサ SHT31

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

[amazonjs asin=”B097P3KNBY” locale=”JP” title=”BSTKING SHT31 SHT31-D 用温度湿度センサーブレークアウトボード天候モジュール”]

https://github.com/adafruit/Adafruit_SHT31

 

 

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

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

 

お弁当箱 加工

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

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

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

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

 

引き続き運用続けます。

追記

2022/6/1 データ取得頻度変更

 

データ取得頻度を10分から3分に変更しました。
消費電力は増えますが問題なく太陽光発電で運用できています。

次の記事

Arduino MKR WiFi 1010 ベランダ太陽光発電 気象観測システム 1周年

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
    [amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]
     
  • 温湿度センサー DHT22
    [amazonjs asin=”B07CSNMYN7″ locale=”JP” title=”OSOYOO DHT22 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定 ArduinoやRaspberry Pi 2 3電子工作用 2個セット”]
     
  • 大気圧センサーモジュール BMP280
    [amazonjs asin=”B074KBWYX8″ locale=”JP” title=”GAOHOU GY-BMP280-3.3高精度大気圧センサーモジュールArduino用”]
     
  • LiPoバッテリ 1200mAh
    [amazonjs asin=”B00IG0C9Y6″ locale=”JP” title=”AOLIKES 3.7V充電式交換用バッテリー1200mAh PL 603450 JST PH2.0コネクタ- for Bluetoothスピーカー、GPS、MP4、POS機、カメラなどの”]
     
  • 8Wソーラパネル (6V用)
    [amazonjs asin=”B004GWY0J0″ locale=”JP” title=”6V用 8W 多結晶ソーラーパネル 6V システム系 6Vバッテリー充電 6V電源 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 ベランダ太陽光発電 気象システム 無事越冬

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

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

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

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

 

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

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

[amazonjs asin=”B004GWY0J0″ locale=”JP” title=”6V用 8W 多結晶ソーラーパネル 6V システム系 6Vバッテリー充電 6V電源 6V機器”]

[amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]

 

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

  • 温湿度センサー DHT22
    [amazonjs asin=”B07CSNMYN7″ locale=”JP” title=”OSOYOO DHT22 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定 ArduinoやRaspberry Pi 2 3電子工作用 2個セット”]
     
  • 大気圧センサーモジュール BMP280
    [amazonjs asin=”B074KBWYX8″ locale=”JP” title=”GAOHOU GY-BMP280-3.3高精度大気圧センサーモジュールArduino用”]
     
  • LiPoバッテリ 1200mAh
    [amazonjs asin=”B00IG0C9Y6″ locale=”JP” title=”AOLIKES 3.7V充電式交換用バッテリー1200mAh PL 603450 JST PH2.0コネクタ- for Bluetoothスピーカー、GPS、MP4、POS機、カメラなどの”]

 

運用状況

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 ベランダ太陽光発電 気象システム 無事越冬

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円となり それであれば少しお金を足して性能明確なパネル使ったほうがいいですよねぇ。

 

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

[amazonjs asin=”B07CSNMYN7″ locale=”JP” title=”OSOYOO DHT22 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定 ArduinoやRaspberry Pi 2 3電子工作用 2個セット”]

 

おわりに

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

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

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

[amazonjs asin=”B004GWY0J0″ locale=”JP” title=”6V用 8W 多結晶ソーラーパネル 6V システム系 6Vバッテリー充電 6V電源 6V機器”]

次の記事

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

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

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

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

 

 

構成

部品

  • ソーラー充電コントローラ E32-SolarCharger
    [amazonjs asin=”B079LH6BRF” locale=”JP” title=”E32-SolarCharger – ESP-WROOM-32搭載 鉛バッテリーソーラー充電コントローラー基板”]

    コントローラにESP32を使用した製品。回路図は以下
     http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/E32-SolarCharger-Schematic.pdf
     

  • ソーラーパネル 12W
    [bc url=”http://akizukidenshi.com/catalog/g/gM-08233/”]
     
  • 鉛蓄電池 12V12Ah
    [amazonjs asin=”B01KO9LQJA” locale=”JP” title=”LONG 12V 12Ah 高性能シールドバッテリー WP12-12 WP12-12″]
     
  • インラインヒューズ コントローラと蓄電池の+側の配線に3Aヒューズ挿入
    [amazonjs asin=”B01G8KK9R4″ locale=”JP” title=”DIGITENオートスタンダードブレードタイプATCヒューズ盛り合わせ+インライン16 AWGゲージホルダーキット、カーボートトラック用”]
     
  • ワイヤレスチャージモジュール 5V/2A
    [bc url=”https://www.dfrobot.com/product-2105.html”]

概要

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

 

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

 

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

 

E32-SolarCharger

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

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

 

Arduino IDEソース の動作概要

コントローラのArduino IDEソースは以下のバージョン2021_2_10をそのまま使用しました。
 [bc url=”https://www.indoorcorgielec.com/resources/%E5%BF%9C%E7%94%A8%E4%BE%8B/e32-solarcharger%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%BD%E3%83%BC%E3%83%A9%E3%83%BC%E5%85%85%E9%9B%BB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0/”]

 

動作は以下の通りです。

  • バッテリチャージ ターゲット電圧: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 -ベランダ気象データ測定-

[amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]

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

 

 

温湿度センサ DHT11

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

[bc url=”https://jp.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html”]

 

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

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

 

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

 

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

 

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

 

温湿度センサ DHT22

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

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

[amazonjs asin=”B07CSNMYN7″ locale=”JP” title=”OSOYOO DHT22 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定 ArduinoやRaspberry Pi 2 3電子工作用 2個セット”]

 

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

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

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

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

Arduino IDEコード

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

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

 

動作

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

 

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

 

おわりに

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

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

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

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

次の記事

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

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

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

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

[amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]

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

 

 

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

前回の構成での最終結果です。
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日しか持たないはずなのでダイソーソーラはよく頑張ったと言えます。

[amazonjs asin=”B00IG0C9Y6″ locale=”JP” title=”AOLIKES 3.7V充電式交換用バッテリー1200mAh PL 603450 JST PH2.0コネクタ- for Bluetoothスピーカー、GPS、MP4、POS機、カメラなどの”]

 

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

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

[bc url=”https://jp.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html”]

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

 

ソーラパネル変更

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

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

[amazonjs asin=”B004GWY0J0″ locale=”JP” title=”6V用 8W 多結晶ソーラーパネル 6V システム系 6Vバッテリー充電 6V電源 6V機器”]

 

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

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

 

運用状況

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

 

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

 

おわりに

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

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

次の記事

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

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

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

[amazonjs asin=”B07FYFF5YZ” locale=”JP” title=”Arduino MKR WiFi 1010 ABX00023″]

 

 

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 に温湿度センサ、気圧計を接続しました。

  • Grove – 温度および湿度センサー (DHT11)
    [bc url=”https://jp.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html”]
  • 大気圧センサーモジュール BMP280
    [amazonjs asin=”B074KBWYX8″ locale=”JP” title=”GAOHOU GY-BMP280-3.3高精度大気圧センサーモジュールArduino用”]
     
  • LiPoバッテリ 1200mAh
    [amazonjs asin=”B00IG0C9Y6″ locale=”JP” title=”AOLIKES 3.7V充電式交換用バッテリー1200mAh PL 603450 JST PH2.0コネクタ- for Bluetoothスピーカー、GPS、MP4、POS機、カメラなどの”]

 

 

ソーラパネルにはダイソーの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 コード

#include <WiFiNINA.h>
#include <WiFiUdp.h>
#include "DHT.h"
#include "ArduinoLowPower.h"
#include <BMP280_DEV.h>  

int status = WL_IDLE_STATUS;
#include "arduino_secrets.h" 
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;            // your network key index number (needed only for WEP)

unsigned int localPort = 2390;      // local port to listen on

char  ReplyBuffer[100] = "";       // a string to send back

WiFiUDP Udp;

#define DHTPIN 8 
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

float pressure;
BMP280_DEV bmp280;    

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(115200);
  bmp280.begin(BMP280_I2C_ALT_ADDR);
  bmp280.setPresOversampling(OVERSAMPLING_X4);    // Set the pressure oversampling to X4
  
  bmp280.startForcedConversion();
  bmp280.getCurrentPressure(pressure);
 
  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Please upgrade the firmware");
  }

  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);
    
    WiFi.lowPowerMode();  // ENABLE WiFi Low Power Mode
    
    // wait 10 seconds for connection:
    delay(5000);
  }
  Serial.println("Connected to WiFi");
  printWifiStatus();

  Serial.println("\nStarting connection to server...");

}

void loop() {
  while (status != WL_CONNECTED) {
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);   
    WiFi.lowPowerMode();
    
    delay(500);
    Serial.println(status);
  }
  
  dht.begin();
  bmp280.startForcedConversion();
  bmp280.getCurrentPressure(pressure);
  delay(100);
    
  float Vb = analogRead(ADC_BATTERY) * (4.3 / 1023.0);
  float Vs = analogRead(A1)/1023.0*(69.0+10.0)/10.0*3.3;
  float h = dht.readHumidity();
  float t = dht.readTemperature();
    
  
  
  sprintf(ReplyBuffer,"Vbat:%.1f V, Vsol:%.2f V, %.1f hPa, Temp.:%.2f deg, Humi.:%.1f",Vb, Vs, pressure, t, h);

  Udp.begin(localPort);
  Udp.beginPacket("192.168.0.255", 2390);
  Udp.write(ReplyBuffer);
  Udp.endPacket();
  delay(100);

  status = WL_IDLE_STATUS;

  WiFi.end();

  LowPower.deepSleep(60000 * 10);
  
}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your board's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

 

参考

 

結果

数日運用してみました。

 

 

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

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

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

 

おわりに

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

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

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

 

追記

2021/8/22

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

次の記事

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

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

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

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

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

 

 

ESP32

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

構成

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

    • ESP32評価ボード
      [amazonjs asin=”B086WWNP9Y” locale=”JP” title=”VKLSVAN ESP32 ESP-32S NodeMCUマイクロUSBデュアルコア開発ボードモジュール 2.4GHz ワイヤレスWiFi + Bluetoothデュアルモード ESP-WROOM-32モジュール内臓 マイクロコントローラ”]
       
    • 5W ソーラーパネル
      [bc url=”https://store.shopping.yahoo.co.jp/ymt-energy/ms-p-5w.html”]
       
    • 昇降圧DC-DCコンバータ
      [bc url=”https://strawberry-linux.com/catalog/items?code=18721″]

 

動作

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

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

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

2021/05/19 08:40 19.59V
2021/05/19 08:45 19.95V
2021/05/19 08:50 19.44V
2021/05/19 08:55 19.99V
2021/05/19 09:00 20.01V
2021/05/19 09:05 19.70V
2021/05/19 09:10 19.68V
2021/05/19 09:15 19.66V
2021/05/19 09:20 19.75V
2021/05/19 09:25 19.75V
2021/05/19 09:30 19.95V
2021/05/19 09:35 19.64V
2021/05/19 09:40 19.80V
2021/05/19 09:45 19.73V
2021/05/19 09:50 19.80V
2021/05/19 09:55 20.05V
2021/05/19 10:00 19.84V
2021/05/19 10:05 19.51V
2021/05/19 10:10 19.27V
2021/05/19 10:15 18.99V
2021/05/19 10:20 19.11V
2021/05/19 10:25 19.03V
2021/05/19 10:30 19.24V
2021/05/19 10:35 19.31V
2021/05/19 10:40 19.31V
2021/05/19 10:45 19.47V
2021/05/19 10:50 19.23V
2021/05/19 10:55 19.13V
2021/05/19 11:00 19.52V
2021/05/19 11:05 18.69V
2021/05/19 11:10 19.84V
2021/05/19 11:15 19.87V
2021/05/19 11:20 19.42V
2021/05/19 11:25 19.78V
2021/05/19 11:30 19.59V
2021/05/19 11:35 19.70V
2021/05/19 11:40 19.69V
2021/05/19 11:45 19.35V
2021/05/19 11:50 18.69V
2021/05/19 11:55 16.93V


2021/05/20 06:30 18.57V
2021/05/20 06:53 19.93V
2021/05/20 07:01 19.50V
2021/05/20 07:06 18.77V
2021/05/20 07:07 19.11V
2021/05/20 07:12 19.81V
2021/05/20 07:17 19.83V
2021/05/20 07:22 18.91V
2021/05/20 07:27 18.21V
2021/05/20 07:32 19.59V
2021/05/20 07:37 19.21V
2021/05/20 07:42 19.70V
2021/05/20 07:47 19.51V
2021/05/20 07:52 18.93V
2021/05/20 07:57 19.48V
2021/05/20 08:02 19.23V
2021/05/20 08:07 19.34V
2021/05/20 08:12 19.12V
2021/05/20 08:17 18.88V
2021/05/20 08:22 18.96V
2021/05/20 08:27 19.06V
2021/05/20 08:32 19.08V
2021/05/20 08:37 18.48V
2021/05/20 08:42 19.09V
2021/05/20 08:47 18.91V
2021/05/20 08:52 18.50V
2021/05/20 08:57 19.21V
2021/05/20 09:02 19.10V
2021/05/20 09:07 19.02V
2021/05/20 09:12 18.93V
2021/05/20 09:17 18.44V
2021/05/20 09:22 19.12V
2021/05/20 09:27 18.99V
2021/05/20 09:32 18.66V
2021/05/20 09:37 18.97V
2021/05/20 09:42 18.73V
2021/05/20 09:47 19.27V
2021/05/20 09:52 19.04V
2021/05/20 11:17 18.65V
2021/05/20 11:22 19.26V
2021/05/20 11:27 19.11V
2021/05/20 11:32 19.02V
2021/05/20 11:37 18.95V


2021/05/25 08:37 19.93V
2021/05/25 08:42 18.84V
2021/05/25 08:47 18.73V
2021/05/25 08:52 20.20V
2021/05/25 09:32 20.19V
2021/05/25 09:35 19.84V
2021/05/25 09:40 20.56V
2021/05/25 11:10 19.13V
2021/05/25 11:15 19.62V
2021/05/25 11:20 18.24V
2021/05/25 11:22 18.88V
2021/05/25 11:24 18.37V
2021/05/25 11:27 19.03V
2021/05/25 11:29 18.65V
2021/05/25 11:36 18.63V
2021/05/25 11:41 19.40V

 

ESP8266

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

構成

 

  • ESP8266評価ボード (ESP-WROOM-02開発ボード)
    [bc url=”https://www.switch-science.com/catalog/2500/”]

 

動作

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

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

2021/05/04 10:31 20.10V
2021/05/04 10:36 19.09V
2021/05/04 10:41 19.67V
2021/05/04 10:46 18.06V
2021/05/04 10:51 14.70V


2021/05/12 08:16 20.38V
2021/05/12 08:21 19.85V
2021/05/12 08:26 19.87V
2021/05/12 08:31 19.56V
2021/05/12 08:36 19.56V
2021/05/12 08:41 20.20V
2021/05/12 08:46 19.87V
2021/05/12 08:51 19.62V
2021/05/12 08:56 20.36V
2021/05/12 09:01 19.87V
2021/05/12 09:06 19.40V
2021/05/12 09:11 18.00V
2021/05/12 09:16 18.99V
2021/05/14 07:52 17.90V
2021/05/14 07:57 17.84V
2021/05/14 08:02 16.91V
2021/05/14 08:07 17.30V
2021/05/14 08:11 19.26V
2021/05/14 08:23 19.17V
2021/05/14 08:23 19.21V
2021/05/14 08:39 17.14V
2021/05/14 08:44 18.11V
2021/05/14 08:52 17.90V
2021/05/14 08:57 18.50V
2021/05/14 09:02 18.33V
2021/05/14 09:07 5.81V
2021/05/14 09:11 17.94V
2021/05/14 09:21 18.39V
2021/05/14 09:21 18.09V
2021/05/14 09:26 18.78V
2021/05/14 09:31 18.89V
2021/05/14 09:36 18.56V
2021/05/14 09:41 18.09V
2021/05/14 09:46 17.65V
2021/05/14 09:51 18.68V
2021/05/14 09:55 18.23V
2021/05/14 10:00 18.52V
2021/05/14 10:05 17.65V
2021/05/14 10:10 17.84V
2021/05/14 10:15 17.26V
2021/05/14 10:20 17.74V
2021/05/14 10:25 19.13V
2021/05/14 10:30 18.25V
2021/05/14 10:35 18.78V
2021/05/14 10:40 18.64V


2021/05/15 07:28 19.30V
2021/05/15 07:33 19.91V
2021/05/15 07:38 18.64V
2021/05/15 07:43 18.35V
2021/05/15 07:48 17.65V
2021/05/15 07:53 17.55V
2021/05/15 07:58 17.55V
2021/05/15 08:03 18.09V
2021/05/15 08:08 17.51V
2021/05/15 08:13 17.12V
2021/05/15 08:18 18.76V
2021/05/15 08:23 18.80V
2021/05/15 08:28 20.08V
2021/05/15 08:33 19.89V
2021/05/15 08:38 19.46V
2021/05/15 08:43 19.46V
2021/05/15 08:48 19.26V
2021/05/15 08:53 18.54V
2021/05/15 08:58 19.97V
2021/05/15 09:03 19.71V
2021/05/15 09:08 18.78V
2021/05/15 09:13 18.72V
2021/05/15 09:18 19.11V
2021/05/15 09:23 18.72V
2021/05/15 09:28 16.69V


2021/05/18 11:36 18.15V
2021/05/18 11:41 18.09V

 

 

おわりに

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

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

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

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

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

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

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

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

 

 

ソーラーパネル

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

[bc url=”https://store.shopping.yahoo.co.jp/ymt-energy/ms-p-5w.html”]

こちらは開放電圧が約21.6VとSPRESENSEの入力電圧定格値 (7V 5.5V [2022/8/27 公式の値変更に伴い修正])を大きく超えてしまうため、直結はできません。

 

昇降圧DCDC

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

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

 

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

[bc url=”https://strawberry-linux.com/catalog/items?code=18721″]

 

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

 

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

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

[amazonjs asin=”B07H2CG1HP” locale=”JP” title=”SONY SPRESENSE メインボード CXD5602PWBMAIN1″]

 

[bc url=”https://www.switch-science.com/catalog/5374/”]

 

 

ベランダで運用

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

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 でロガーを製作してみましたので報告させていただきます。

[amazonjs asin=”B07H2CG1HP” locale=”JP” title=”SONY SPRESENSE メインボード CXD5602PWBMAIN1″]

 

 

前回のおさらい

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

SPRESENSE のメインボードの電源入力
 ・動作推奨電圧:3.6V~4.4V
 ・最大絶対定格電圧:7V
 ・最大絶対定格電圧:5.5V (2022/8/27追記 公式の値が変わっていた。。)
とのことです。

 

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拡張ボードを購入しておりましたのでコチラを使用します。

[bc url=”https://www.switch-science.com/catalog/5374/”]

 

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秒スリープし起床を繰り返します。

#include <Arduino.h>
#include <LowPower.h>
#include <SDHCI.h>
#include <File.h>
#include <RTC.h>
#include <GNSS.h>

SDClass SD;  /**< SDClass object */ 
File myFile; /**< File object */ 

SpGnss Gnss;

#define MY_TIMEZONE_IN_SECONDS (9 * 60 * 60) // JST

int state = false;

void setup() {
  LowPower.clockMode(CLOCK_MODE_32MHz);
  Serial.begin(115200);
  while (!Serial);
  
  RTC.begin();
  LowPower.begin();

  pinMode(LED0, OUTPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  digitalWrite(LED0, LOW);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);

  // Initialize and start GNSS library
  int ret;
  ret = Gnss.begin();
  assert(ret == 0);

  ret = Gnss.start();
  assert(ret == 0);
}

void loop() {
  Serial.print(".");
  state = !state;
  digitalWrite(LED2, (state)? HIGH: LOW);
    
  // Wait for GNSS data
  if (Gnss.waitUpdate()) {
    SpNavData  NavData;

    // Get the UTC time
    Gnss.getNavData(&NavData);
    SpGnssTime *time = &NavData.time;

    // Check if the acquired UTC time is accurate
    if (time->year >= 2000) {
      Serial.println(".");
      Serial.print("start\n");
      digitalWrite(LED0, HIGH);
      
      char buf[128];
      
      // Convert SpGnssTime to RtcTime
      RtcTime gps(time->year, time->month, time->day,
                  time->hour, time->minute, time->sec, time->usec * 1000);

      gps += MY_TIMEZONE_IN_SECONDS;

      sprintf(buf, "%04d/%02d/%02d %02d:%02d:%02d\t",
         gps.year(), gps.month(), gps.day(),
         gps.hour(), gps.minute(), gps.second());

      Serial.print(buf);

      float voltage = LowPower.getVoltage() / 1000.0;
      Serial.println(voltage);

      if(SD.begin()){
        myFile = SD.open("log.txt", FILE_WRITE);
        myFile.print(buf);
        myFile.println(voltage);
        myFile.close();
        Serial.print("SD Write!!\n");
        digitalWrite(LED1, HIGH);
      }else{
        Serial.print("No SD!!\n");
      }
      delay(2000);
      digitalWrite(LED0, LOW);
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
      Serial.print("sleep\n");

      //updateClock();
      LowPower.deepSleep(60);
    }
  }
}

 

参考

 

結果

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

2021/04/26 06:11:02	4.59
2021/04/26 06:12:56	4.54
2021/04/26 06:14:03	4.55

 

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

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

2021/04/26 09:43:32	4.59
2021/04/26 09:50:56	4.59
2021/04/26 09:52:02	4.59
2021/04/26 09:53:09	4.59
2021/04/26 09:54:16	4.59
2021/04/26 09:55:23	4.56
2021/04/26 09:57:26	4.52
2021/04/26 09:58:33	4.51
2021/04/26 09:59:40	4.41

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

 

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

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

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

次の記事

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

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

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

[bc url=”https://fabcross.jp/news/2021/20210414_sensignal_spresenseexpansionboard.html”]

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

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

とのこと。
 

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

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

 

 

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

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

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

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

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

100円ガーデンライト

 

300円ガーデンライト

 

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

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

Raspberry Pi Pico 駆動

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

[amazonjs asin=”B08TZX8X9V” locale=”JP” title=”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は出せない。。

[bc url=”https://www.switch-science.com/catalog/7096/”]

 

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

 

おわりに

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

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

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

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

 

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

 

追記

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

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

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

[amazonjs asin=”B07H2CG1HP” locale=”JP” title=”SONY SPRESENSE メインボード CXD5602PWBMAIN1″]

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

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

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

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

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

次の記事

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

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

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

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

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

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

 

 

構成

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

部品

  • ESPr® Developer(ESP-WROOM-02開発ボード)
    [amazonjs asin=”B017U73IFE” locale=”JP” title=”ESP-WROOM-02開発ボード”]
     
  • LEDテープ Neopixel 18×10セル使用
    [amazonjs asin=”B01LVYPPLB” locale=”JP” title=”保護チューブ付きシリアルLEDテープ 1リール(4m)”]
     
  • ワイヤレスチャージモジュール
    [amazonjs asin=”B074PPGM15″ locale=”JP” title=”Seeedstudio_ワイヤレス充電モジュール – 5V / 1A”]

  • ソーラー充電コントローラ E32-SolarCharger
    [amazonjs asin=”B079LH6BRF” locale=”JP” title=”E32-SolarCharger – ESP-WROOM-32搭載 鉛バッテリーソーラー充電コントローラー基板”]

    回路図は以下
     http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/E32-SolarCharger-Schematic.pdf
     

  • ソーラーパネル 12W
    [bc url=”http://akizukidenshi.com/catalog/g/gM-08233/”]
     
  • 鉛蓄電池 12V12Ah
    [amazonjs asin=”B01KO9LQJA” locale=”JP” title=”LONG 12V 12Ah 高性能シールドバッテリー WP12-12 WP12-12″]
     
  • インラインヒューズ
    [amazonjs asin=”B01G8KK9R4″ locale=”JP” title=”DIGITENオートスタンダードブレードタイプATCヒューズ盛り合わせ+インライン16 AWGゲージホルダーキット、カーボートトラック用”]
    コントローラと蓄電池の+側の配線には3Aヒューズを挿入しています。

 

E32-SolarCharger

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

[amazonjs asin=”B079LH6BRF” locale=”JP” title=”E32-SolarCharger – ESP-WROOM-32搭載 鉛バッテリーソーラー充電コントローラー基板”]

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

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

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

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

 

LED表示器の設置

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

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

 

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

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

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

[bc url=”https://github.com/adafruit/Adafruit_NeoPixel/issues/139″]

 
窓に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

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "Blynkアプリで取得したトークン";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "WiFi SSID";
char pass[] = "パスワード";

#define PIN 12

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(18, 10, PIN,
  NEO_MATRIX_BOTTOM     + NEO_MATRIX_RIGHT +
  NEO_MATRIX_ROWS  + NEO_MATRIX_ZIGZAG,
  NEO_GRB            + NEO_KHZ800);

int x    = matrix.width();

int ledR = 0;
int ledG = 0;
int ledB = 0;
String textIn = "HomeMadeGarbage";
uint16_t colors = matrix.Color(255, 0, 0);

void setup(){
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);

  pinMode(PIN, OUTPUT);
  digitalWrite(PIN, LOW);

  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(10);
  matrix.setTextColor(colors);
}

//ヴァーチャルピンV0
BLYNK_WRITE(V0)
{
  ledR = param[0].asInt();
  ledG = param[1].asInt();
  ledB = param[2].asInt();
  Serial.print(  "ledR: ");
  Serial.print(ledR);
  Serial.print(  " ledG: ");
  Serial.print(ledG);
  Serial.print(  " ledB: ");
  Serial.println(ledB);

  colors = matrix.Color(ledR, ledG, ledB);
}

//Text Inputデータ受信
BLYNK_WRITE(V1) {
  textIn = param.asStr(); 
  Serial.println(textIn);
}

void loop(){
  Blynk.run();

  matrix.fillScreen(0);
  matrix.setCursor(x, 0);
  //matrix.print(F("HomeMadeGarbage"));
  matrix.print(textIn);
  int len = -6*textIn.length();
  if(--x < len) {
    x = matrix.width();
    matrix.setTextColor(colors);
  }
  matrix.show();
  delay(60);
}

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

動作

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

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

 

追記

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

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

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

 

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

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

次の記事

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

日射量データベースから太陽光発電量を算出 ーベランダ太陽光発電所への道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出力します。

[bc url=”http://akizukidenshi.com/catalog/g/gM-08233/”]

発電量算出

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

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

   損失係数はソーラ定格出力の誤差などで一般的に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の電力の発電が見込めるというわけです。

その他表示データ

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

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

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

 

 

おわりに

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

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

次の記事

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