電気代ゼロ! エコロジーLED表示器の自作 ーベランダ太陽光発電所への道7ー
さて我が家では今夏ベランダで太陽光発電システムを構築して、ハエトリソウの自動観察装置を運用しておりました。
ハエトリソウ捕食監視システム
運用を開始致しました。#ラズパイ #食虫植物 #ベランダ太陽光発電 #ハエトリソウ pic.twitter.com/w7PCDCVjBY— HomeMadeGarbage (@H0meMadeGarbage) July 13, 2019
こちらのハエトリソウ捕食監視システムについては後日紹介させていただきます。
冬の到来でハエトリソウ観察は終了しましたので、太陽光発電システムを活用するべくエコロジーLED表示器を作りましたので紹介させていただきます。
これからのクリスマスシーズンにピッタリかと存じます。
目次
構成
チャージコントローラでソーラパネルで発電された電気をバッテリにチャージして、ワイヤレスチャージャで電気を無線給電してLEDを点灯します。
部品
- ESPr® Developer(ESP-WROOM-02開発ボード)
- LEDテープ Neopixel 18×10セル使用
-
ワイヤレスチャージモジュール
- ソーラー充電コントローラ E32-SolarCharger
回路図は以下
http://indoor.lolipop.jp/IndoorCorgiElec/E32-SolarCharger/E32-SolarCharger-Schematic.pdf
- ソーラーパネル 12W
- 鉛蓄電池 12V12Ah
- インラインヒューズ
コントローラと蓄電池の+側の配線には3Aヒューズを挿入しています。
E32-SolarCharger
ESP32搭載のソーラー充電コントローラを使用しております。
Arduino IDEで動作を自由にカスタマイズできます。
ここではソーラパネルの電圧が8V以下(夜間)になると、負荷スイッチをONして充電システムをスリープさせて、ソーラパネルの電圧が10V以上(日中)のときに負荷スイッチをOFFして充電システムのスリープを解除しました。
つまり日中はバッテリを太陽光で充電して、夜間はLED表示器を動作させます。太陽エネルギーを有効活用した実にエコロジーなシステムとなってございます。
E32-SolarChargerの詳細は以下をご覧ください。
LED表示器の設置
ベランダの太陽光発電システムの負荷にワイヤレスチャージモジュールの送信側を接続します。
窓にワイヤレスチャージモジュールの送信側を貼り付けて、室内に給電できるようにします。
室内ではワイヤレスチャージモジュールの受信側を電源としてマイコンとLEDを動作させます。
#ベランダ太陽光発電 でジャージされたバッテリから無線給電で窓越しにご相伴にあずかる。
エコロジークリスマスイルミシステムの土台ここに極まれり#クリスマス pic.twitter.com/BkTRq9w834
— HomeMadeGarbage (@H0meMadeGarbage) November 16, 2019
動画では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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#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で堪能#Blynk で表示内容を変えて味わう#クリスマス マインドが否が応でも高まります。#ベランダ太陽光発電 pic.twitter.com/ICpEIAoR2J
— HomeMadeGarbage (@H0meMadeGarbage) November 16, 2019
夜間に自動的に起動して、表示をスマホから変更することができます。
しかも電気代もかからず実にエコロジーかつエコノミー!
次はLEDに表示する絵を自由に描けるアプリを作りたいです。
お母ちゃん宜しく!!
追記
19/11/24 バッテリ電圧低下で負荷OFF
日没後(ソーラパネル電圧が8V以下)に負荷スイッチをONしてコントローラをスリープ(15分おきに電圧状況確認)しております。
しかし、日没後に無条件に負荷をONしてLED表示器を動作させるとバッテリ電圧がドンドン低下してしまいます。
そこで、夜間もバッテリ電圧を確認し10.8V以下で負荷スイッチをOFFするようにしました。12V以上で復帰します。
これでバッテリの過剰電圧低下が防ぐことができます。
しかし、ここ1週間はほぼ毎日雪降りで日照少なくLED表示器の点灯がありません。。。ただでさえ西向きのベランダですのでバッテリチャージも低調です。
クリスマス前に12V以上になることを願っています。