hamzaherry commited on
Commit
949d1e6
·
verified ·
1 Parent(s): e7ca0a9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
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")