🎯 מטרות הלמידה
הבנת ארכיטקטורה
להבין ארכיטקטורת מערכת IoT פשוטה עבור מהנדסי מכונות
חיבור חומרה
לחבר חיישן ל-Arduino/ESP32 ולשלוח נתונים ל-Python
ויזואליזציה
לבנות גרף זמן אמת ולשמור נתונים ל-CSV לצורך ניתוח
📋 דרישות מוקדמות
💻 ידע טכני
- ידע בסיסי ב-Python (משתנה, פונקציות)
- הבנה בסיסית של מעגלים חשמליים
🛠️ חומרה נדרשת
- Arduino Uno או ESP32
- חיישן טמפרטורה (DHT22)
- כבלי USB וחיבור
⚙️ תוכנה
- Python 3.8+
- Arduino IDE
- חיבור USB ל-PC
🛠️ חומרה וחיווט
רשימת רכיבים לדוגמה:
- Arduino Uno / ESP32
- DHT22 (או DS18B20) חיישן טמפרטורה ולחות
- חוטי חיבור (Jumper Wires), לחם לוח (Breadboard)
חיווט בסיסי לדוגמה (DHT22): VCC → 5V, GND → GND, DATA → דיגיטל 2 (עם pull-up 10K).
הוראות מהירות: חברו את הארדואינו, פתחו את מנהל ההתקנים למציאת COM Port, העלו את ה-Sketch, והריצו את הסקריפט Python לדוגמה עם הפרמטר `--port COM3` (החליפו ב-COM שלכם).
💾 קוד בארדואינו (Sketch)
שלח ערכים בפורמט פשוט (לדוגמה: 24.5) דרך Serial:
// Arduino - DHT22 example (pseudo) #include#define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float t = dht.readTemperature(); if (!isnan(t)) { Serial.println(t); } delay(1000); }
🐍 Python — קריאת Serial וגרף בזמן אמת
התקן חבילות:
pip install pyserial matplotlib
import serial
import matplotlib.pyplot as plt
import matplotlib.animation as animation
SERIAL_PORT = 'COM3' # שנה לפי המערכת
BAUD_RATE = 9600
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
plt.ion()
fig, ax = plt.subplots()
xs, ys = [], []
def update(frame):
if ser.in_waiting:
try:
line = ser.readline().decode().strip()
temp = float(line)
ys.append(temp); xs.append(len(ys))
if len(ys) > 100: ys.pop(0); xs.pop(0)
ax.clear(); ax.plot(xs, ys); ax.set_ylim(0, 50)
except:
pass
ani = animation.FuncAnimation(fig, update, interval=500)
plt.show()
🔗 פרוטוקולים מתקדמים ואבטחה
אוּמלץ על שימוש ב-MQTT עבור משלוח נתונים לשרת/ענן. ודא אימות TLS וניהול הרשאות בעת פריסה.
❓ שאלות נפוצות ופתרון תקלות
התקנה לא מצליחה/Port לא קיים
בדקו את מנהל ההתקנים (Device Manager) למצוא את COM Port וודאו שאין תהליך אחר שפתח את הפורט (למשל Arduino IDE).
הנתונים לא נעים/ייפוי שגיאות המרה
ודאו שהארדואינו שולח ערכים מספריים בלבד (ללא טקסט נוסף). השתמשו ב-try/except בצד ה-Python.
📋 תרגילים ומטלות
- חבר חיישן ושלח טמפרטורה לסקריפט ה-Python — הצג גרף בזמן אמת.
- הרחב: שלח את הנתונים ל-MQTT Broker וצרף Dashboard ב-Node-RED.
- אתגר: הכן מערכת שמתריעה כאשר חורגת טמפרטורה מסף.
📚 מדריכים קשורים
Python למקצוענים דיאגנוסטיקה ואבחון רכב Web Scraping למהנדסים❓ שאלות נפוצות
איך אני יודע שהחיישן עובד?
פתח את Serial Monitor ב-Arduino IDE ובדוק שאתה רואה ערכים מספריים. אם אתה רואה "nan" או שגיאות, בדוק את החיווט.
מה עושים אם Python לא מוצא את הפורט?
בדוק במנהל ההתקנים (Device Manager) את מספר ה-COM Port הנכון. ודא שאין תוכנה אחרת שמשתמשת בפורט.
איך אפשר לשמור את הנתונים לקובץ?
השתמש בספריית pandas או csv של Python כדי לשמור את הנתונים. הוסף שורה כמו: data.to_csv('sensor_data.csv')
🚀 הצעדים הבאים
🌟 רוצה להעמיק? הצטרף לקורס המלא
למד IoT מהיסודות ועד לפרויקטים מתקדמים עם ליווי אישי