Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import plotly.graph_objects as go | |
| import time | |
| import random | |
| # Function to simulate the sunlight intensity | |
| def get_sunlight_intensity(): | |
| return random.uniform(0, 1) # Random intensity between 0 and 1 | |
| # Function to create the solar panel working animation | |
| def plot_solar_panel(intensity): | |
| # Define Solar Panel | |
| fig = go.Figure() | |
| # Add the solar panel as a rectangle | |
| fig.add_shape( | |
| type="rect", | |
| x0=0, y0=0, | |
| x1=10, y1=5, | |
| line=dict(color="black", width=3), | |
| fillcolor="yellow" if intensity > 0.5 else "gray", | |
| ) | |
| # Title of the plot | |
| fig.update_layout( | |
| title=f"Solar Panel - Efficiency: {intensity*100:.2f}%", | |
| showlegend=False, | |
| plot_bgcolor='white', | |
| xaxis=dict(showgrid=False, zeroline=False), | |
| yaxis=dict(showgrid=False, zeroline=False), | |
| margin=dict(l=0, r=0, t=30, b=0) | |
| ) | |
| return fig | |
| # Streamlit UI | |
| st.title("Real-Time Solar Panel Simulation") | |
| # Display a message explaining the app | |
| st.markdown(""" | |
| This app simulates the real-time operation of a solar panel. | |
| The panel's efficiency will change based on simulated sunlight intensity. | |
| """) | |
| # Simulate the solar panel working in real-time | |
| st.write("Simulating Solar Panel Efficiency...") | |
| st.write("Refreshing every second...") | |
| # Create a plot to display the solar panel's operation | |
| while True: | |
| # Get random sunlight intensity (0 to 1 scale) | |
| sunlight_intensity = get_sunlight_intensity() | |
| # Plot the solar panel with the current intensity | |
| fig = plot_solar_panel(sunlight_intensity) | |
| # Display the Plotly chart in Streamlit | |
| st.plotly_chart(fig) | |
| # Wait for a short period before updating | |
| time.sleep(1) | |