🎓 תלמיד רשום? חזור לפורטל לאחר הלימוד | 🚀 גולש חדש? הצטרף חינם
🎓 תלמיד רשום? חזור לפורטל לאחר הלימוד פורטל התלמידים | 🚀 גולש חדש? הצטרף חינם
חיישנים נתונים ניתוח דשבורד PLC / API
Industrial Sensors Project Infographic

מבנה הפרויקט

📁 industrial_sensors_project/
├── 📄 sensor_simulator.py # מחולל נתונים
├── 📄 sensor_data.csv # מאגר היסטורי
├── 📄 data_analysis.py # מנוע ניתוח
├── 📄 dashboard.py # תצוגה סטטית
├── 📄 api_server.py # שרת תווך תעשייתי
├── 📄 plc_simulator.py # סימולטור בקר
├── 📄 realtime_data.csv # נתונים חיים
└── 📄 realtime_dashboard.py # דשבורד Real-Time

1 הבנת העולם התעשייתי

המטרה: הבנת האקו-סיסטם של מפעל מודרני מבוסס נתונים.

📚 מושגי יסוד:

  • חיישן (Sensor) - העיניים והאוזניים של המערכת.
  • Industry 4.0 - המהפכה התעשייתית הרביעית - קישוריות מלאה.
  • Data Logging - היכולת לשמור היסטוריה לצורך למידת מכונה וחיזוי.
  • PLC (Programmable Logic Controller) - המוח המבצע בשטח המפעל.
  • API - הגשר המאובטח בין רצפת הייצור לענן או למערכת הניהול.

2 סימולציית חיישנים ב-Python

המטרה: יצירת "תאום דיגיטלי" (Digital Twin) המייצר נתונים פיזיקליים ריאליים.

דגש טכני:
דיוק בשמות העמודות ב-CSV הוא קריטי לסנכרון בין כל רכיבי המערכת.
timestamp, temperature, pressure, vibration
sensor_simulator.py
import random
import csv
from datetime import datetime, timedelta

def generate_sensor_data(num_samples=100):
    data = []
    start_time = datetime.now()
    for i in range(num_samples):
        timestamp = start_time + timedelta(seconds=i)
        temperature = round(50 + random.gauss(0, 10), 2)
        pressure = round(5.5 + random.gauss(0, 1.5), 2)
        vibration = round(2.5 + random.gauss(0, 0.8), 2)
        data.append({'timestamp': timestamp.strftime('%Y-%m-%d %H:%M:%S'), 'temperature': temperature, 'pressure': pressure, 'vibration': vibration})
    return data

def save_to_csv(data, filename='sensor_data.csv'):
    with open(filename, 'w', newline='', encoding='utf-8') as file:
        fieldnames = ['timestamp', 'temperature', 'pressure', 'vibration']
        writer = csv.DictWriter(file, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(data)
    print(f"✅ נשמרו {len(data)} דגימות")

if __name__ == "__main__":
    save_to_csv(generate_sensor_data(100))
python sensor_simulator.py
תוצר: קובץ sensor_data.csv מוכן לניתוח.

3 ניתוח נתונים ותובנות

המטרה: הפעלת "בינה" על הנתונים הגולמיים וזיהוי חריגות (Anomaly Detection).

data_analysis.py
import pandas as pd
def analyze_sensor_data(filename='sensor_data.csv'):
    df = pd.read_csv(filename)
    print("\n📊 סטטיסטיקות מערכת:")
    for col in ['temperature', 'pressure', 'vibration']:
        print(f"{col.capitalize()}: Mean={df[col].mean():.2f}")
    critical_temp = df[df['temperature'] > 70]
    print(f"\n⚠️ התראות קריטיות: {len(critical_temp)}")
pip install pandas && python data_analysis.py

6 שכבת API (תשתית Industry 4.0)

המטרה: יצירת פרוטוקול תקשורת מודרני מבוסס HTTP לאיסוף נתונים מיחידות הקצה (PLC/Edge).

api_server.py
from fastapi import FastAPI
from pydantic import BaseModel
import csv, datetime

app = FastAPI(title="Industrial Edge API")
class Reading(BaseModel):
    temperature: float
    pressure: float
    vibration: float

@app.post("/sensor")
def receive_data(阅读: Reading):
    ts = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    with open('realtime_data.csv', 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([ts, 阅读.temperature, 阅读.pressure, 阅读.vibration])
    return {"status": "received"}
🌐 תובנה טכנולוגית: ה-API הוא הלב של "תעשייה 4.0" – הוא מאפשר לכל רכיב במפעל "לדבר" עם העולם החיצון באופן מאובטח.

8 דאשבורד בזמן אמת (Streamlit)

השלב הסופי והמרשים ביותר! יצירת ממשק ויזואלי המציג את נתוני המפעל בגרפים אינטראקטיביים.

dashboard.py
import streamlit as st
import pandas as pd
import plotly.express as px
import time

st.set_page_config(page_title="Industrial Dashboard", layout="wide")
st.title("🏭 Real-Time Factory Monitor")

while True:
    try:
        df = pd.read_csv('realtime_data.csv', names=['time', 'temp', 'pres', 'vib'])
        st.metric("Temperature", f"{df['temp'].iloc[-1]}°C")
        st.plotly_chart(px.line(df.tail(20), x='time', y=['temp', 'pres', 'vib']))
    except:
        st.info("Waiting for data...")
    time.sleep(1)

9 מיפוי לעולם האמיתי

רכיב בקורס מקביל במפעל תפקיד
🔌 sensor_simulator.py חיישן פיזי מדידת ערכים והמרתם לדיגיטלי.
🐍 Python Scripts Edge Computer / IoT Gateway עיבוד נתונים קרוב למקור.
📊 Dashboard SCADA / HMI ממשק פיקוח ובקרה.
System Architecture Overview
🎉 הישג אדיר! בניתם מערכת מקצה לקצה: מחיישן (סימולטור) דרך שרת ועד לדאשבורד ניהולי.