Spaces:
Sleeping
Sleeping
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") | |