Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
|
3 |
+
# Function for calculations
|
4 |
+
def calculate_solar_requirements(total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup):
|
5 |
+
# Energy needs per day (in kWh)
|
6 |
+
daily_energy = total_load * efficiency_loss / 1000
|
7 |
+
|
8 |
+
# Required solar generation (kW)
|
9 |
+
solar_capacity_needed = daily_energy / sun_hours
|
10 |
+
|
11 |
+
# Number of panels
|
12 |
+
num_panels = solar_capacity_needed * 1000 / panel_wattage
|
13 |
+
|
14 |
+
# Battery capacity (kWh)
|
15 |
+
battery_capacity = 0
|
16 |
+
if battery_backup > 0:
|
17 |
+
battery_capacity = daily_energy * battery_backup
|
18 |
+
|
19 |
+
return daily_energy, solar_capacity_needed, num_panels, battery_capacity
|
20 |
+
|
21 |
+
# Streamlit App
|
22 |
+
st.title("Solar Panel Calculator")
|
23 |
+
st.sidebar.header("User Input")
|
24 |
+
|
25 |
+
# User Inputs
|
26 |
+
total_load = st.sidebar.number_input("Total Load (W)", min_value=100, max_value=100000, value=5000)
|
27 |
+
sun_hours = st.sidebar.number_input("Sun Hours (Hours/day)", min_value=1.0, max_value=12.0, value=5.0)
|
28 |
+
panel_wattage = st.sidebar.number_input("Panel Wattage (W)", min_value=100, max_value=1000, value=300)
|
29 |
+
efficiency_loss = st.sidebar.slider("Efficiency Loss (%)", min_value=0, max_value=30, value=15)
|
30 |
+
battery_backup = st.sidebar.number_input("Battery Backup Hours (optional)", min_value=0, max_value=24, value=0)
|
31 |
+
|
32 |
+
# Calculate
|
33 |
+
if st.sidebar.button("Calculate"):
|
34 |
+
daily_energy, solar_capacity_needed, num_panels, battery_capacity = calculate_solar_requirements(
|
35 |
+
total_load, sun_hours, panel_wattage, efficiency_loss, battery_backup
|
36 |
+
)
|
37 |
+
|
38 |
+
# Display Results
|
39 |
+
st.subheader("Results")
|
40 |
+
st.write(f"Daily Energy Consumption: {daily_energy:.2f} kWh")
|
41 |
+
st.write(f"Solar Capacity Needed: {solar_capacity_needed:.2f} kW")
|
42 |
+
st.write(f"Number of Panels Required: {num_panels:.0f}")
|
43 |
+
if battery_backup > 0:
|
44 |
+
st.write(f"Battery Capacity Required: {battery_capacity:.2f} kWh")
|