Präzise Solareinstrahlungsmessung mit Arduino UNO & Ethernet Shield
Benötigte Komponenten
| Komponente | Menge |
|---|---|
| Arduino UNO | 1 |
| Arduino Ethernet Shield 2 | 1 |
| Solarmodul (z. B. Taschenrechner-Zelle) | 1 |
| Widerstand 10 kΩ | 1 |
| Digitales Multimeter (zur Polungskontrolle) | 1 |
Hintergrund
Professionelle Pyranometer (Solareinstrahlungsmesser) kosten 200–800 $. Dieses DIY-Projekt nutzt eine einfache Solarzelle als Sensor: Die erzeugte Spannung ist proportional zur Einstrahlung. Mit bekanntem Innenwiderstand der Zelle und deren Fläche lässt sich die Leistung (W) und damit die Bestrahlungsstärke (W/m²) berechnen. Kosten: Bruchteile eines Profi-Geräts.
Messprinzip
- Solzelle liefert Spannung U proportional zur Bestrahlungsstärke.
- Über einen bekannten Lastwiderstand R (≫ Innenwiderstand) fließt Strom I = U/R.
- Leistung P = U² / R.
- Bestrahlungsstärke E = P / A (A = Zellenfläche in m²).
- Arduino misst U über Analogeingang (0–1023 → 0–5 V).
Wichtige Parameter
- Arduino Analog-Referenz: 5 V (Board-abhängig prüfen)
- Max. Zellenspannung (Datenblatt): typ. ~5 V bei Taschenrechnerzellen
- Zellenabmessungen (Länge × Breite in mm) für Flächenberechnung
- Lastwiderstand: 10 kΩ (im Code als
RESISTANCE = 10für kΩ)
Aufbau
- Solzelle: Plus (rot) → 10 kΩ → Analogpin A0; Minus (schwarz) → GND. Polung vorher mit Multimeter prüfen.
- Ethernet Shield aufstecken (keine zusätzlichen Verdrahtungen nötig).
Code: Standalone (Serieller Monitor)
#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; // mW? (siehe Hinweis)
Radiation = Power / Area; // W/m²
Serial.print("Solareinstrahlung: ");
Serial.print(Radiation);
Serial.println(" W/m²");
delay(1000);
}
Hinweis: Die Formel pow(analogRead,2)/R ist eine vereinfachte Näherung. Für absolute Genauigkeit muss die ADC-Referenzspannung (5 V / 1024) berücksichtigt werden: U = analogRead * (5.0/1024.0), dann P = U*U / (R*1000) (R in Ω), E = P / A.
Code: Mit Ethernet Shield (Webserver)
Der Arduino hostet einen Mini-Webserver (Port 80), der alle 5 s automatisch aktualisiert (Refresh: 5) und die aktuelle Bestrahlungsstärke als HTML ausliefert. MAC- und IP-Adresse im Code anpassen.
#include <SPI.h>
#include <Ethernet.h>
// ... Definitionen wie oben ...
byte mac[] = {0xDE, 0x0D, 0x8E, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 177);
EthernetServer server(80);
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.print("Server @ "); Serial.println(Ethernet.localIP());
}
void loop() {
// ... Berechnung wie oben ...
char msg[64];
sprintf(msg, "Solareinstrahlung: %.2f W/m²", Radiation);
EthernetClient client = server.available();
if (client) {
boolean blank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && blank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("");
client.print(msg);
client.println("
");
break;
}
if (c == '\n') blank = true;
else if (c != '\r') blank = false;
}
}
delay(1); client.stop();
}
}
Typische Werte
- Bewölkter Tag: 150–300 W/m²
- Sonniger Tag: bis 900 W/m² (Äquatornähe)
Schaltplan
Solzelle → 10 kΩ → A0, GND gemeinsam. Ethernet Shield aufgesteckt.
Herstellungsprozess
- Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
- Solar Tracker V2.0 – Fortgeschrittenes DIY-Solarnachführsystem
- Präzises DIY-Messrad mit Arduino Nano und Drehgeber