
屋根に設置した太陽電池の発電量が日射量とどれだけ関係があるのか知りたくて、日射量を測定する装置を作ります。今回は回路についてご紹介します。
太陽光発電量と日射量の関係が知りたい

家の屋根に太陽電池を設置しています。この太陽電池で発電した電力量と実際の日射量とどのくらい関係があるのか、以前から知りたいと思っていました。

そこで日射計を探してみたのですが、本格的な製品しか見つかりません。マイコン用のガジェットのような手軽なセンサーとして売られているものがありませんでした。
明るさセンサーではダメなわけ
日射計がないなら、明るさセンサーで代用できないかと調べてみました。ところが、この2つは全く別物だとわかりました。
日射計が測るのはワット[W]というエネルギーを表す単位で、明るさセンサーが測るのはルクス[Lux]という照度を表す単位です。単位からしてすでに違います。
日射計は、太陽光のすべての波長のエネルギーをまとめて測定するセンサーです。一方、明るさセンサーは、人の目の感度特性に合わせて、可視光のうち主に緑色に偏った光の強さを測定するセンサーです。つまり明るさセンサーでは、太陽光のごく一部の波長しか捉えられないので、正確な日射量の測定には向いていません。ただ、おおまかな変換はできるみたいです。

そこで母校の恩師に相談してみたところ、ちょうど研究で使い終わった日射計があるとのことで、いただくことができました。相当な期間屋外にあったようで、ケーブルは劣化しかなり年季が入っています。
日射計の仕組み

日射計の中身は、すべての光のエネルギーを熱に変換する真っ黒な「黒体」という物質の中に、温度を測る熱電対が埋め込まれた構造になっています。
太陽光が黒体に当たると、あらゆる波長のエネルギーが熱に変換されて黒体が温まり、その温度を熱電対で測定する仕組みです。
日射計からは、熱電対につながった2本の線が出ています。ただし、いただいた日射計の熱電対から出力される電圧は、7.04µV/W/m²ととても微弱です。太陽光のエネルギーは最大で約1kW/m²と言われているので、最大でもたった約7mVしか出てきません。
この微弱な信号の増幅方法
7mVという小さな信号を、マイコンのADコンバータで変換するには大きく増幅する必要があります。
今回はWiFiに接続できるESP32-C3をマイコンとして使うことにしました。測定したデータを自宅のWiFi経由でGoogleスプレッドシートに記録していきたいからです。
ESP32-C3のADC入力電圧は最大2.5V。そこで、日射計からの信号をオペアンプを使って300倍に増幅して、ADCの範囲内に収めるようにしました。
ただ、300倍という大きなゲインには問題があります。オペアンプには入力オフセット電圧があります。例えば入力オフセットがわずか1mVあったとしても、300倍されると300mVという無視できない誤差になってしまいます。
そこで、入力オフセット電圧が自動的に0Vに調整される、ゼロドリフトCMOSオペアンプのHX8552を利用することにします。
低周波のLPFはコンデンサの選択肢が少ない
300倍にも増幅するので、ノイズを軽減するためにローパスフィルタが必要です。熱電対の応答速度自体は17秒ととても遅いので、カットオフ周波数は1Hz程度に設定することにしました。もっと低周波でもいいのですが、そうするとコンデンサの値がとても大きくなってしまいます。

フィルタの方式はサレンキー型のローパスフィルタで、特性はバタワース特性にします。ただ1Hzという周波数ですら、フィルタに使うコンデンサは10µF以上とかなり大きな値が必要になります。
通常はフィルムコンデンサのような漏れ電流の小さなコンデンサがいいのですが、そんな大容量のコンデンサはありません。大容量のセラミックコンデンサでもいいのですが、電圧をかけると容量が低下するDCバイアス特性という現象があり周波数特性が変わってしまいます。すると電解コンデンサという選択も考えられるのですが、電解コンデンサは漏れ電流が大きく出力にオフセットが発生したり周波数特性に悪影響が出たりしてしまいます。そこで今回は容量が大きいけれど漏れ電流の小さな、固体コンデンサを使うことにしました。手持ちにあったのが47µFだったので、コンデンサはこの値に固定して、抵抗値の方を設計していきます。
抵抗値の設計はAIに頼んでみた
抵抗値の計算はAIにお願いしてみることにしました。
すると、1段のオペアンプで300倍というゲインでは、抵抗値のわずかな誤差でも発振してしまう可能性が高いとのことです。そこで、30倍のローパスフィルタと10倍のアンプに分割する構成が提案されました。
コンデンサを47µF固定にした条件で、バタワース特性を満たすE24系列での抵抗値を計算してもらったところ、目標のカットオフ周波数1Hzぴったりは実現できませんでしたが、0.86HzならE24系列の抵抗の組み合わせで設計できることがわかりました。

念のため、本当にその値でフィルタが正しく動作するのか、シミュレータで確認してみました。結果、ゲインは狙い通り30倍でしたが、カットオフ周波数は0.4Hzと少し低めになっていました。熱電対の応答速度が17秒とかなり遅いので、0.4Hzでも実用上は全く問題ありません。むしろ低くて嬉しいです。
回路の中に29kΩがありE24系列ではないのですが、27kΩと2kΩで実現できるよってAIが言っています。AIってフィルターの設計もできちゃうんですね。サレンキー型フィルターって、バタワース特性を満たしつつゲインを持たせるって、計算がとても面倒なんです。しかもE24系列縛りとか。
このローパスフィルタの後段に、10倍の非反転増幅回路を接続して、回路が完成しました。
マイコンとの接続
マイコンには先ほど紹介したESP32-C3を使います。すべてのピンが引き出された、kohacraft製のESP32-C3開発ボードを利用します。このボードには5V入力ピンがあるので、ここから充電電池の電気を供給することにします。

日射計だけでなく、光センサーも一緒に接続できるようにして、両者の測定値がどのくらい違うのか同時に比較してみようと思います。

電源には充電電池4本を使い、日射計と一緒に設置する太陽電池で充電する構成にしました。配線をなるべく少なくするため、太陽電池と光センサーは、電線4本をまとめた4心のケーブルにしました。日射計には光センサーを、耐候性のある自己融着テープ(エフコテープ)でぐるぐる巻きにして固定しました。
土台を作る
センサーはベランダの屋根に設置しようと思っています。ただ、屋根が斜めになっているので、なるべく水平を保てるような土台を作る必要があります。
日射計と太陽電池を固定する土台は、耐候性があって加工しやすいアクリル板で製作することにしました。まずMakerCaseのサイトでベースとなる箱の形状を作ってもらい、ベランダの屋根に取り付けられるようIllustratorで形状を修正します。そのデータをSVG形式で保存し、レーザーカッターでアクリル板をカットしました。

カットした板を組み立てて、日射計と太陽電池を取り付けます。太陽電池は雨に濡れないように、アクリル板の下に貼り付けました。
いよいよ設置

完成したセンサー付きの土台をベランダの屋根に設置しました。風で飛ばされないように、針金で屋根にあったネジに固定してあります。
家は南西向きなので、日射計(明るさセンサー付き)はきちんと南を向くように土台に取り付けています。日射計にあるネジを回してセンサーが水平になるように微調整し設置は完了です。

マイコンなどの回路を入れたタッパーを、雨に濡れないよう屋根の下にある雨戸の収納庫の上に設置。そこにセンサーからのケーブルを屋根の下を通して接続しました。
さて次回は
センサーの準備が完了したので、次回はマイコンのプログラムと、Googleスプレッドシートへのデータ収集方法について考えます。




コメント