Arduino UNOとEthernetシールドで太陽放射を測定する自作ピラノメーター
必要な部品と材料
| 部品 | 詳細 | 数量 |
|---|---|---|
| Arduino UNO | 1 | |
| Arduino Ethernet Shield 2 | 1 | |
| ソーラーセル(小型) | 電卓用など | 1 |
| 抵抗 10kΩ | 負荷抵抗として必須 | 1 |
必要な工具
- デジタルマルチメーター
このプロジェクトについて
背景
温度・湿度・照度センサーは安価に手に入りますが、太陽放射(日射量)を測るピラノメーターは200〜800ドルと高価。自宅にソーラーパネル設置を検討していた筆者は、安価に日射量を推定できる自作デバイスを考案しました。
太陽電池は光エネルギーを電気エネルギーに変換するため、入射する日射量に比例して電圧・電流を生成します。この関係を利用し、ソーラーセルの出力電力を面積で割ることで日射量(W/m²)を推定します。
セットアップ
- ソーラーセルの2線(黒=GND、赤=VCC)をマルチメーターで極性確認。
- GNDをArduino GNDへ、VCCをアナログピンA0へ10kΩ抵抗を介して接続。この抵抗はセル内部抵抗より十分大きくする必要があり、計算の基準になります。
計算式
- Arduino基準電圧 = 5V(ボードにより異なる場合あり)
- ソーラーセル最大出力電圧(仕様書確認、電卓用なら約5V)
- セル寸法(長さ×幅、mm単位で測定)
電力 = (analogRead(A0)²) / 抵抗値(kΩ)
面積 = 長さ × 幅 / 1,000,000 (m²)
日射量 = 電力 / 面積 (W/m²)
サンプルコード(スタンドアロン版)
#define ANALOG_PIN A0
#define RESISTANCE 10 // kΩ
#define PANEL_LENGTH 60 // mm
#define PANEL_WIDTH 20 // mm
volatile float Area, Power, Radiation;
void setup() {
Serial.begin(9600);
while(!Serial);
delay(100);
}
void loop() {
Area = PANEL_LENGTH * PANEL_WIDTH / 10000.0; // m²
Power = pow(analogRead(ANALOG_PIN), 2) / RESISTANCE;
Radiation = Power / Area;
char msg[64];
sprintf(msg, "Solar Radiation: %.2f W/m2", Radiation);
Serial.println(msg);
delay(1000);
}
晴天時の日射量は150〜300 W/m²程度、快晴・赤道付近では900 W/m²に達することも。
EthernetシールドでWeb公開
Ethernetシールドを重ねるだけで、ブラウザから日射量を確認可能。5秒ごとに自動更新されるシンプルなWebサーバー機能を追加したコードも用意されています(MACアドレス・IPアドレスは環境に合わせて設定)。
回路図
ソーラーセル・負荷抵抗・Arduino接続のシンプルな回路図を参照してください。
製造プロセス
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- K30 CO2センサで室内空気質をリアルタイム監視する
- 1SheeldとArduinoで盲ろう者のコミュニケーションを支援する
- スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- Arduino MegaとNextion HMIで作る高機能ウェザーステーション
- Arduinoベースのヌンチャク操作6自由度ロボットアームキット
- ソーラートラッカー V2.0 – 高度なDIYソーラーパネル追尾システム
- Arduino Nanoとロータリーエンコーダーで作る高精度測定ホイール
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載