File size: 1,860 Bytes
949d1e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import streamlit as st

# Function for calculations
def calculate_solar_requirements(total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup):
    # Energy needs per day (in kWh)
    daily_energy = total_load * efficiency_loss / 1000
    
    # Required solar generation (kW)
    solar_capacity_needed = daily_energy / sun_hours
    
    # Number of panels
    num_panels = solar_capacity_needed * 1000 / panel_wattage
    
    # Battery capacity (kWh)
    battery_capacity = 0
    if battery_backup > 0:
        battery_capacity = daily_energy * battery_backup
    
    return daily_energy, solar_capacity_needed, num_panels, battery_capacity

# Streamlit App
st.title("Solar Panel Calculator")
st.sidebar.header("User Input")

# User Inputs
total_load = st.sidebar.number_input("Total Load (W)", min_value=100, max_value=100000, value=5000)
sun_hours = st.sidebar.number_input("Sun Hours (Hours/day)", min_value=1.0, max_value=12.0, value=5.0)
panel_wattage = st.sidebar.number_input("Panel Wattage (W)", min_value=100, max_value=1000, value=300)
efficiency_loss = st.sidebar.slider("Efficiency Loss (%)", min_value=0, max_value=30, value=15)
battery_backup = st.sidebar.number_input("Battery Backup Hours (optional)", min_value=0, max_value=24, value=0)

# Calculate
if st.sidebar.button("Calculate"):
    daily_energy, solar_capacity_needed, num_panels, battery_capacity = calculate_solar_requirements(
        total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup
    )
    
    # Display Results
    st.subheader("Results")
    st.write(f"Daily Energy Consumption: {daily_energy:.2f} kWh")
    st.write(f"Solar Capacity Needed: {solar_capacity_needed:.2f} kW")
    st.write(f"Number of Panels Required: {num_panels:.0f}")
    if battery_backup > 0:
        st.write(f"Battery Capacity Required: {battery_capacity:.2f} kWh")