ilham86/manufacturing_predictive_maintenance
0
1import streamlit as st2import pickle3import pandas as pd4from PIL import Image5import datetime6 7# Load File8 9with open('./src/model_best.pkl', 'rb') as file:10 best_pipe = pickle.load(file)11 12def run():13 # Title14 st.title('Equipment in Smart Manufacturing for Predictive Maintenance')15 16 # Sub Header17 st.subheader('Equipment Predictive Maintenance Prediction')18 19 # Image20 image = Image.open('./src/image2.jpg')21 st.image(image)22 23 # Create form24 with st.form(key='maintenance-prediction'):25 26 st.markdown('Data ID')27 date = st.date_input("Select a date")28 time = st.time_input("Select a time")29 timestamp = datetime.datetime.combine(date, time)30 machine_id = st.text_input('Machine ID', value='---machine id--')31 32 st.markdown('Equipment Operation Parameters')33 temperature = st.number_input('Temperature', min_value=0.00, max_value=200.00, value=0.00)34 vibration = st.number_input('Vibration', min_value=-20.00, max_value=200.00, value=0.00)35 humidity = st.number_input('Humidity', min_value=0.00, max_value=85.00, value=0.00)36 pressure = st.number_input('Pressure', min_value=0.00, max_value=6.00, value=0.00)37 energy_consumption = st.number_input('Energy Consumption', min_value=0.00, max_value=6.00, value=0.00)38 39 st.markdown('Equipment Status and Condition')40 machine_status = st.selectbox('Machine Status', (0, 1), index=0, help='0 = not running, 1 = running')41 anomaly_flag = st.selectbox('Anomaly Flag', (0, 1), index=0, help='0 = normal temperature & vibration, 1 = extreme temperature & vibration')42 predicted_remaining_life = st.number_input ('Remaining life Prediction', min_value=0, max_value=500, value=0)43 failure_type = st.selectbox('Failure Type', ('Normal', 'Vibration Issue', 'Overheating', 'Pressure Drop', 'Electrical Fault'), index=0)44 downtime_risk = st.number_input('Downtime Risk Score', min_value=0.00, max_value=1.00, value=0.00, help='range from 0-1')45 46 submitted = st.form_submit_button('Predict')47 48 # Data inference49 data_inf_input = {50 'timestamp': timestamp,51 'machine_id': machine_id,52 'temperature': temperature,53 'vibration': vibration,54 'humidity': humidity,55 'pressure': pressure,56 'energy_consumption': energy_consumption,57 'machine_status': machine_status,58 'anomaly_flag': anomaly_flag,59 'predicted_remaining_life': predicted_remaining_life,60 'failure_type': failure_type,61 'downtime_risk': downtime_risk,62 }63 64 # Data frame65 st.markdown('Data Summary:')66 data_inference = pd.DataFrame([data_inf_input])67 st.dataframe(data_inference)68 69 st.markdown('Result:')70 if submitted:71 # Prediction (0/1)72 pred = best_pipe.predict(data_inference)73 if pred == 1:74 st.write('### Equipment NEEDS Maintenance')75 else:76 st.write('### Equipment NO NEED Maintenance')77 78if __name__ == '__main__':79 run()