Solar Radiation Sensor: Pyranometer for Weather Stations
A pyranometer measures solar radiation (irradiance) in watts per square meter — the most fundamental parameter for solar energy assessment, agricultural evapotranspiration modeling, and weather research. India, with its 300+ sunny days per year in most regions, has exceptional solar resources, making pyranometers crucial for the booming solar power sector and smart agriculture. This guide covers both commercial pyranometer interfacing (4-20mA outputs) and DIY solar radiation measurement using photodiodes and Arduino, with calibration methods for Indian solar conditions.
Solar Radiation Fundamentals
Solar radiation at Earth’s surface is measured as irradiance in W/m² (watts per square meter) or as insolation (energy per unit area per day) in kWh/m²/day.
- Solar Constant: 1361 W/m² at top of atmosphere
- Peak irradiance at surface: 950-1050 W/m² (clear sky noon, India)
- Global Horizontal Irradiance (GHI): Total radiation on horizontal surface — used for PV system design
- Direct Normal Irradiance (DNI): Direct beam component — used for concentrated solar thermal
- Diffuse Horizontal Irradiance (DHI): Scattered sky radiation — important during monsoon
India’s solar resource is outstanding: most of the country receives 4-7 kWh/m²/day (annual average). Rajasthan and Gujarat top at 6-7 kWh/m²/day, while northeastern states receive 4-4.5 kWh/m²/day. These are among the best solar resources globally, comparable to the Sahara Desert and Middle East.
Pyranometer Types and Accuracy Classes
Thermopile Pyranometers (Reference Standard)
Kipp & Zonen CM11, Hukseflux SR20 — use a thermopile detector beneath a glass dome. Measure 280-3000nm (full solar spectrum). WMO Class A/B/C accuracy. Price: ₹50,000-₹2,50,000. Used at IMD stations and NIWE (National Institute of Wind Energy) solar measurement sites.
Silicon Photodiode Pyranometers
Apogee SP-110, Davis 6450 — silicon solar cell measures 300-1100nm (most of solar spectrum). Lower accuracy (Class C) but cost ₹5,000-15,000. Popular for agricultural weather stations and building-integrated PV monitoring.
DIY Arduino-Based Sensors
Using BPW21 photodiode or TEMT6000 light sensor with I-V conversion circuit. Accuracy ±10-20% but cost under ₹500. Suitable for educational projects, relative monitoring, and solar panel performance tracking where absolute accuracy isn’t critical.
DIY Solar Sensor: BPW21 Photodiode Circuit
/* DIY Pyranometer Circuit using BPW21 Photodiode
* BPW21 is a silicon PIN photodiode with flat glass window
* Spectral range: 400-1100nm (covers ~70% of solar spectrum)
*
* Trans-impedance amplifier (converts photocurrent to voltage):
* Op-amp: LM358 or TL071
*
* Rf = 1MΩ (feedback resistor)
* _____|_____
* | |
* BPW21(+)┘ └─── Output voltage (0-3V range for 0-1000W/m²)
* |
* (-) LM358 (+) → VCC/2 virtual ground (2.5V with 5V supply)
*
* Calibration:
* In full sun (clear noon): output should be ~1200mV
* Calibration factor K: K = 1000 W/m² / 1200mV = 0.833 W/m² per mV
*
* Component list:
* BPW21 photodiode (₹30-60)
* LM358 op-amp (₹5-10)
* 1MΩ resistor (feedback)
* 10kΩ × 2 (VCC/2 divider)
* 100nF capacitors
* Total: ₹150-200
*/
// Alternate simple approach: TEMT6000 ambient light sensor
// TEMT6000 responds to 440-800nm, output proportional to lux
// Convert lux to W/m²: 1 W/m² ≈ 120 lux (for solar spectrum)
// TEMT6000 module: ₹80-120 — simple 3-pin (VCC/GND/OUT)
Arduino Measurement Code
// Solar Radiation Measurement with Arduino
// Assumes photodiode-based DIY sensor on analog input
#define SOLAR_PIN A0
#define TEMP_PIN A1 // LM35 for temperature correction
#define LOG_INTERVAL 60000 // Log every 60 seconds
// Calibration: Adjust based on your sensor calibration
// K_FACTOR: W/m² per ADC count (depends on circuit design)
// Calibrate by pointing at noon sun and matching to known irradiance
float K_FACTOR = 1.2; // W/m² per ADC count (initial estimate)
float OFFSET = 0; // Zero offset in W/m² (dark current correction)
float totalEnergy_Wh = 0; // Daily energy accumulation (Wh/m²)
unsigned long lastLogTime = 0;
unsigned long lastEnergyCalc = 0;
void setup() {
Serial.begin(115200);
analogReference(DEFAULT);
Serial.println("Solar Radiation Monitor Ready");
Serial.println("Time(s), Irradiance(W/m2), Temp(C), DailyEnergy(Wh/m2)");
}
void loop() {
// Average 100 ADC readings to reduce noise
long sum = 0;
for (int i = 0; i 0) {
float dt_hours = (now - lastEnergyCalc) / 3600000.0;
totalEnergy_Wh += irradiance * dt_hours; // Wh/m² increment
}
lastEnergyCalc = now;
// Log data every minute
if (now - lastLogTime >= LOG_INTERVAL) {
lastLogTime = now;
Serial.print(now/1000); Serial.print(", ");
Serial.print(irradiance, 1); Serial.print(", ");
Serial.print(tempC, 1); Serial.print(", ");
Serial.println(totalEnergy_Wh, 2);
// Peak sun hours estimate: Energy / 1000 W/m²
float peakSunHours = totalEnergy_Wh / 1000.0;
Serial.print("Peak Sun Hours today: "); Serial.println(peakSunHours, 2);
}
delay(1000);
}
// Reset daily energy counter at midnight
void resetDailyEnergy() {
totalEnergy_Wh = 0;
Serial.println("Daily energy counter reset.");
}
Recommended Product
4-20mA to 5V Converter for Arduino
Interface professional pyranometers with 4-20mA output directly to Arduino — essential for integrating certified solar radiation sensors into industrial weather station data acquisition systems.
Category: Sensors & Modules
Industrial Pyranometer: 4-20mA Interface
// Interfacing industrial pyranometer with 4-20mA output
// Common range: 0-2000 W/m² → 4-20mA
// Use 4-20mA to 5V converter module (shunt resistor method)
// With 250Ω shunt resistor:
// 4mA → 1.0V (0 W/m²)
// 20mA → 5.0V (2000 W/m²)
// Arduino reads 0-5V via A0
float readPyranometer_4_20mA() {
int adcRaw = analogRead(A0);
float voltage = adcRaw * (5.0 / 1023.0);
// Convert 1V-5V to 0-2000 W/m²
// At 4mA = 1V → 0 W/m²
// At 20mA = 5V → 2000 W/m²
float irradiance = (voltage - 1.0) / 4.0 * 2000.0;
return max(irradiance, 0.0f); // Clamp to positive values
}
// Alternative: Modbus RTU pyranometers (increasingly common in India)
// Read via RS-485 → Arduino MAX485 module
// Register map varies by manufacturer (Kipp & Zonen, Hukseflux, EKO)
// Most use Modbus function 03 (read holding registers)
// Register 0x0000: Solar radiation in W/m² × 0.1
Calibration Against Reference
// Calibration procedure for DIY solar sensor
//
// Step 1: Clear day calibration at solar noon
// - Solar noon in India: 12:15-13:00 (seasonal variation)
// - Clear sky irradiance model: Haurwitz formula:
// GHI_clear = 1098 × cos(zenith) × exp(-0.057/cos(zenith))
// Where zenith angle depends on latitude, date, and time
//
// Step 2: Zenith angle calculation for India
float calculateSolarZenith(float lat, int dayOfYear, int hour, int minute) {
// Simplified solar position (accurate to ~0.1°)
float decl = 23.45 * sin(PI/180 * (360/365.0) * (dayOfYear - 81));
float hourAngle = 15.0 * (hour + minute/60.0 - 12);
float zenith = acos(
sin(lat*PI/180) * sin(decl*PI/180) +
cos(lat*PI/180) * cos(decl*PI/180) * cos(hourAngle*PI/180)
) * 180 / PI;
return zenith;
}
// Step 3: Compare sensor reading to Haurwitz model at solar noon
// Calibration factor = ModelValue / SensorReading
// Example: Model = 950 W/m², Sensor reads 780 ADC
// K = 950 / 780 = 1.218 W/m² per ADC count
// Seasonal recalibration recommended:
// India summer (May-June): aerosol optical depth lower → higher clear sky radiation
// India monsoon (July-Sept): heavy cloud/aerosol → calibration not possible
// Post-monsoon (Oct-Nov): ideal calibration weather
Solar Energy Applications in India
Rooftop Solar Performance Monitoring
India’s PM-SURYA GHAR scheme targets 10 million rooftop solar installations by 2027. A ₹500 DIY pyranometer helps homeowners monitor performance ratio (PR = actual yield / theoretical yield from irradiance). Low PR indicates shading, soiling, or panel degradation — actionable intelligence for maintenance scheduling.
Agricultural Evapotranspiration Calculation
The FAO Penman-Monteith ET₀ formula requires solar radiation as a key input. Accurate ET₀ enables precision irrigation — a critical need as India faces worsening groundwater depletion. Pyranometer data combined with temperature and humidity (from SHT31) provides the complete parameter set for daily irrigation scheduling.
// Simplified FAO Penman-Monteith ET0 calculation
// ET0 in mm/day = reference evapotranspiration
float calculateET0(float Rn_MJ, float temp, float humidity, float windSpeed) {
// Rn: Net radiation in MJ/m²/day (approximately 0.75 × GHI × 0.0036 for India)
float delta = 4098 * 0.6108 * exp(17.27*temp/(temp+237.3)) / pow(temp+237.3, 2);
float gamma = 0.000665; // Psychrometric constant (kPa/°C, sea level)
float es = 0.6108 * exp(17.27*temp/(temp+237.3)); // Saturation vapor pressure
float ea = humidity/100 * es; // Actual vapor pressure
float G = 0; // Soil heat flux (≈0 for daily calculations)
float ET0 = (0.408*delta*(Rn_MJ - G) + gamma*(900/(temp+273))*windSpeed*(es-ea)) /
(delta + gamma*(1 + 0.34*windSpeed));
return ET0;
}
Recommended Product
5V Modbus RTU 4-Channel Relay Module
Connect pyranometer-based ET0 irrigation controller to this Modbus relay module for fully automated field irrigation based on calculated water requirements.
Category: Industrial Automation
Solar Radiation Data Logging for MNRE Compliance
India’s Ministry of New and Renewable Energy (MNRE) requires solar radiation monitoring at utility-scale solar plants (>500kW) under the Solar Energy Corporation of India (SECI) guidelines. While commercial Class C pyranometers are required for compliance, DIY monitoring provides real-time visibility between calibration periods and helps validate logger data integrity.
Recommended Product
8-Channel Solid State Relay Module for Arduino
Control solar tracker actuators, shade covers, or soiling detection sprinklers based on pyranometer irradiance data — automated solar plant maintenance control.
Category: Industrial Automation
Frequently Asked Questions
Q: What is a pyranometer and how is it different from a lux meter?
A: A lux meter measures visible light (380-780nm) weighted by human eye sensitivity. A pyranometer measures total solar radiation (280-3000nm for thermopile, 300-1100nm for silicon) in energy units (W/m²). For solar energy applications, pyranometers are essential — about 50% of solar energy is in infrared (above 780nm) which lux meters miss. However, lux meters are cheaper and can provide rough correlation (1 W/m² ≈ 120 lux for solar light).
Q: How much does a certified pyranometer cost in India?
A: Entry-level Class C (secondary standard): ₹8,000-20,000 (brands: RoHS, Apogee, Davis Instruments). Class B (first class): ₹25,000-80,000 (Kipp & Zonen CS300). Class A (secondary standard reference): ₹80,000-2,50,000 (Kipp & Zonen CM21, CM22). All require ISO 17025-accredited NABL calibration certificates for MNRE/SECI compliance — calibration costs ₹3,000-8,000 per year.
Q: Can I measure solar irradiance with a BH1750 light sensor?
A: BH1750 measures lux (visible light only, 400-700nm). It can provide rough solar irradiance estimates with a conversion factor, but accuracy is only ±15-20% due to spectral mismatch. It saturates above ~65,000 lux (corresponding to ~540 W/m²) — missing peak Indian solar irradiance (900-1050 W/m²). For proper pyranometry, use dedicated solar sensors. For relative monitoring and educational projects, BH1750 is acceptable.
Q: How do I account for panel soiling in pyranometer calculations?
A: Dust soiling reduces pyranometer and solar panel output by 3-25% in India (highest in Rajasthan, lowest in monsoon-washed coastal areas). Install pyranometer horizontally (measuring GHI) and calculate expected panel output = GHI × panel efficiency × derating factors. The ratio of actual vs expected power indicates soiling level. When ratio drops below 90%, clean panels — typically 2-4 times per year in most Indian locations.
Q: What is the daily solar radiation pattern in Indian cities?
A: Typical clear-sky pattern: radiation rises from 0 at sunrise (6:00-6:30 AM) to peak 900-1050 W/m² at solar noon (12:30-13:00 IST in summer), then decreases symmetrically to 0 at sunset (18:00-19:00 PM). Daily GHI integral: 5.5-7.5 kWh/m²/day in summer, 3.5-5.5 kWh/m²/day in monsoon. Mumbai winter may have 3 peak sun hours while Delhi summer has 8+ hours above 500 W/m².
Add comment