太陽光発電に関係する部品の電圧を測りーたいーーー
懐かしの電波少年風に脳内で再生してみてください。
オフグリッドって知らない方も多いと思いますが、今まで数回オフグリッドと言っていましたが「なんだろう?」と思われた方もいらっしゃるかもしれません。
軽く調べるてみると、電力会社からの電線が接続されていない状態で、自作した電力だけで生活しましょ。
というのがオフグリッドだそうです。
あれ?
我が家はそれに照らし合わせるとオフグリッドじゃないな。
完全なオフグリッドは無理ですが、ある程度は電気を自給自足できそうなので色々試しているところです。
今の我が家の状態はなんという状態なんだろうか?
語弊が出てはいけないので今後は注意して使い分けていこうと思います。
それはともかく、まだ本格運用はしていませんが一応必要なものを取り揃えている状態です。
太陽光を電気にするソーラーパネル。
バッテリーに充電したり直接電気を取り出すチャージコントローラー。
電気を蓄えるバッテリー。
直流電気を家庭用コンセントで使用できるようにするインバーター。
最低でもこの4つは必要です。
以前、コメントでご指摘いただいたのですが、各部の電圧を知る事は大事。ということと、バッテリーを適切に運用するための装置が必要だそうです。
色々調べて手に入れた部品もありますが、なんかしっくりくる部品はありませんでした。
詳しく説明しますと・・・
バッテリーやソーラーパネルなとの電圧を知るというのは、ソーラーパネルが何V発電していて、それぞれのバッテリーに何V電力があって合計すると何Vになるのか把握しておいた方が良いというものです。
バッテリーを適切に運用する。
というのも、充電しすぎる過充電はチャージコントローラーで調整できますが、過放電はコントロールできませんので対策が必要ということです。
対策をしないと
アッ
というまにバッテリーが死にます。
なので、バッテリーの電圧がある程度の値になったら出力をカットするシステムが必要ということです。
そのカットする仕組みを作る前に、まずは現在の状態を把握するものをなんとかしてみたいと思います。
デバイスを簡単に組み立てる
色々考えてみたのですが、私のイメージする状態は既製品では実現が難しいという結論に達することにしました。
変な言い回しですが噛み砕いて説明すると、いろいろ探してもたぶん無いだろうから探すだけ時間の無駄。
だったらさっさと自作してしまった方が早そうだし勉強にもなるしデータも取れる。
ということです。
なので、まずは元々持っているパーツでなんとかできそうな各部位の電圧測定から始めたいと思います。
デバイスの用意とテスト
用意するのはESP32というデバイスと抵抗器、ブレッドボードと配線。
これらを使って簡単なプログラムを作って電圧を取れるか検証してみます。
電圧は大幅に上限をみて50Vまで計れる仕様にします。
ということで、4.7kΩと330Ωで分圧して、アレコレ計算して調整した結果、小数点第1位までであればテスターの値と同じ数値が取れるようになりました。
小数点第2位までできればと思いましたが、そこまでの値が必要なのか考えると必要ないので、これで良いことにします。
デバイスを基板に取り付けて配線を実装
で、ブレッドボードからフレキシブル基板に取り付けます。
実際に使用するための状態、1歩手前というところですかね。
OLEDディスプレイを実装テスト
次にちょっとしたモニターが欲しいと思いました。
毎回PCに繋がないとその時々の値が知れないというのは不便だと思います。
なので、PCに繋がなくても小型モニターに値を出すことで、単体で必要な機能を満たせるようにしました。
あっブレッドボードというのはこの白い板状のもので、テストするときに簡単にテストできるようになる部品のことです。
OLEDディスプレイを実装
で、モニターを基板に取り付けて表示できるように設定します。
で、一通りできたものを実装するとこんな感じになります。
デバイス用のプログラム制作
次にテスト用に作ったプログラムを元に、元々使っていたプログラムを改造していきます。
ベースにするプログラムは温度、湿度、気圧をWifiでデータを飛ばして記録するプログラムです。
温度、湿度、気圧を測る、いわゆる環境センサーのプログラムを電圧に置き換えて、他に関連する部分も改造することで使えるのでリサイクルします。
まずは問題なく動くかテストするために、ササッとプログラムを組みなおして・・・
デバイスにプログラムを書き込んで・・・
我が家専用のwebサーバーのログを見てみると・・・
192.168.0.22 - - [2022/01/25 21:04:31.883] "GET /device/OffGrid/index.html?GUID=84d8ebab2c&IP=192.168.0.22&ssid=TP-Link_C0C6&rssi=-51&devicetmp=53.33&ver=OffGrid.0.2.6&per=325620&adc=0.25V HTTP/1.1" 200 12 1314μs "-" "ESP32HTTPClient"
無事アクセスされているのが分かります。
テストが無事済んだところで、webサーバーに送りたいデータを成形しなおしてデバイスに書き込みます。
すると・・・
Wifiとガチ合っていて使えない箇所があることが判明。
これは良くない。
基板に抵抗を付けなおす必要が出てきたので、がっかりしたので一旦お風呂に。
体を清めた後に改めて基板を組みなおしてプログラムも修正して再稼働。
192.168.0.22 - - [2022/01/25 23:41:08.124] "GET /device/OffGrid/index.html?GUID=84d8ebab2c&IP=192.168.0.22&ssid=TP-Link_C0C6&rssi=-61&devicetmp=53.33&solar=12.39&total=12.35&bat1=12.65&bat2=12.37&bat3=0.00&bat4=0.00&ver=OffGrid.0.0.0&per=342856&adc=0.00V HTTP/1.1" 200 12 1319μs "-" "ESP32HTTPClient"
無事データが取れた。
良かったよ。
今日はもう終わりにして、夜飯食って寝よう。
明けて翌日。
早速続きを開始。
まずはwebサーバーに送られてくるデータをデータベースに登録するプログラムを書いていきます。
データベースのテーブル構成を設計と設定
データベースの構成をどうするか昨夜寝る前に考えていました。
その構想を元に簡単にですが、パパッと作りました。
デバイスからのデータをデータベースに登録する
次に作ったテーブルにデータを書き込むプログラムをササッと作って・・・
こんな感じで登録できました。
デバイスから取得できた電圧が一番右の部分です。
あとは勝手にデータが溜まっていきます。
データベースのデータをグラフ表示する
さて、次はデータベースに蓄えられたデータを見えるようにします。
まずは簡単にグラフ化したいと思っています。
幸いにも温度、湿度、気圧のデータをグラフ化しているので、そのプログラムを元に作っていこうかなと思っています。
こんな感じになりました。
バッテリー1の値が高いのが気になりますので、後で修正するかもしれません。
過去に作ったプログラムを移植してちょこちょこ弄っただけなので簡単でした。
過去の私グッジョブ!
とりあえず、これでやりたかったことができました。
まだ最低限なのですが、必要な要件は満たせたかと思いますので、今後は調整が多くなるのかな。
とりあえず完成したので測定結果を見る
端子の繋ぎなおしなどちょこちょこやってから、何がどのように動いていくのか観察してみました。
やっぱりバッテリー1の電圧だけが妙に高くなっています。
寝る前に考えてみたのですが、基盤に取り付けた抵抗値のばらつきをプログラム側は修正していなかったのが原因と推測しました。
最初に取り付けた抵抗値をプログラムに書き込んでいたのですが、途中で抵抗の位置を変更。
変更後に抵抗の位置が変わったのですがプログラムの書き換えを行っていなかったわけなので正しい抵抗値ではなかったことになります。
再度、各端子に取り付けられた抵抗値をプログラムに書き直して計測を開始。
誤差がほぼ解消されましたので一安心。
今のところ、夜間にソーラーパネルへ電気が流れている疑惑があります。
夜間なのにソーラーパネルに向けて12Vの電圧が発生しています。
あちこちに逆流防止のためダイオードを入れて対策してみたいと思います。
こちょこちょ弄っていたら端子の接触に不安が出てきたので配線もやりなおすかな。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?