arsalan16's picture
Update app.py
71f3212 verified
raw
history blame
2.47 kB
import streamlit as st
import pandas as pd
# Title and App Description
st.title("SolarEase: Smart Solar System Designer")
st.markdown("""
Plan your solar system with ease! Input details for your appliances, and this app will recommend the necessary solar panels, batteries, and inverter capacity.
""")
# Sidebar for appliance input
st.sidebar.header("Add Appliance Details")
appliance_name = st.sidebar.text_input("Appliance Name", "LED Bulb")
wattage = st.sidebar.number_input("Wattage (Watts)", min_value=1, value=10, step=1)
quantity = st.sidebar.number_input("Quantity", min_value=1, value=1, step=1)
usage_hours = st.sidebar.number_input("Daily Usage Hours", min_value=1, value=1, step=1)
add_appliance = st.sidebar.button("Add Appliance")
# Store appliance data
if "appliances" not in st.session_state:
st.session_state["appliances"] = []
if add_appliance:
st.session_state["appliances"].append({
"Appliance": appliance_name,
"Wattage": wattage,
"Quantity": quantity,
"Usage Hours": usage_hours,
})
# Display appliance table
if st.session_state["appliances"]:
st.subheader("Appliance Details")
appliance_df = pd.DataFrame(st.session_state["appliances"])
st.table(appliance_df)
# Perform backend calculations
appliance_df["Daily Energy (Wh)"] = appliance_df["Wattage"] * appliance_df["Quantity"] * appliance_df["Usage Hours"]
total_energy = appliance_df["Daily Energy (Wh)"].sum() / 1000 # Convert Wh to kWh
sunlight_hours = st.slider("Average Sunlight Hours", min_value=4, max_value=10, value=6)
panel_efficiency = st.slider("Solar Panel Efficiency (%)", min_value=15, max_value=25, value=20) / 100
battery_voltage = 12 # Default battery voltage
battery_efficiency = 0.85 # Default battery efficiency
# Calculations
total_panel_wattage = total_energy / (sunlight_hours * panel_efficiency)
battery_capacity = total_energy / (battery_voltage * battery_efficiency)
peak_load = appliance_df["Wattage"].sum()
# Display results
st.subheader("Solar System Recommendations")
st.write(f"**Total Daily Energy Consumption:** {total_energy:.2f} kWh")
st.write(f"**Required Solar Panel Capacity:** {total_panel_wattage:.2f} W")
st.write(f"**Battery Capacity Needed:** {battery_capacity:.2f} Ah")
st.write(f"**Recommended Inverter Size:** {peak_load:.2f} W")
# Footer
st.markdown("---")
st.markdown("**Designed by Engr. Muhammad Arsalan**")