You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/he/TROUBLESHOOTING.md

33 KiB

מדריך פתרון בעיות

מדריך זה מסייע לך לפתור בעיות נפוצות בעבודה עם תכנית הלימודים IoT למתחילים. הבעיות מאורגנות לפי קטגוריות לנוחות הניווט.

תוכן העניינים


בעיות התקנה

התקנת Python

בעיה: גרסת Python ישנה מדי

שגיאה: דרושה גרסת Python 3.6 ומעלה

פתרון:

  1. הורד את גרסת Python 3 העדכנית מ-python.org
  2. במהלך ההתקנה ב-Windows, סמן "Add Python to PATH"
  3. אמת את ההתקנה:
    python3 --version
    

בעיה: גרסאות Python מרובות גורמות לקונפליקטים

תסמינים: רצה גרסת Python שגויה, חבילות מותקנות במיקום שגוי

פתרון:

  • Windows: השתמש ב-py -3 במקום python כדי להפעיל במפורש Python 3
  • macOS/Linux: השתמש ב-python3 במקום python
  • תמיד צור והשתמש בסביבות וירטואליות לפרויקטים

בעיה: פקודת pip לא נמצאה

שגיאה: 'pip' אינו מזוהה כפקודה פנימית או חיצונית

פתרון:

  1. נסה pip3 במקום pip
  2. או השתמש ב-python -m pip או python3 -m pip
  3. ודא ש-Python הוספה ל-PATH (התקן מחדש את Python וסמן את האפשרות)

VS Code והרחבות

בעיה: הרחבת Pylance לא עובדת

תסמינים: אין IntelliSense לפייתון, השלמת קוד או בדיקת טיפוסים

פתרון:

  1. פתח את לוח הפקודות של VS Code (Ctrl+Shift+P או Cmd+Shift+P)
  2. הפעל "Python: Select Interpreter"
  3. בחר את מפרש ה-Python הנכון (סביבה וירטואלית אם משתמשים כזו)
  4. טען מחדש את חלון VS Code

בעיה: VS Code לא מזהה את הסביבה הווירטואלית

תסמינים: נבחר מפרש Python שגוי

פתרון:

  1. ודא שהפעלת את הסביבה הווירטואלית בטרמינל
  2. פתח את לוח הפקודות והפעל "Python: Select Interpreter"
  3. בחר את המפרש מתיקיית .venv
  4. בדוק שורת סטטוס (בתחתית שמאל) מראה את גרסת Python הנכונה

PlatformIO (Wio Terminal)

בעיה: התקנת PlatformIO נכשלה

שגיאה: שגיאות שונות במהלך התקנת PlatformIO

פתרון:

  1. ודא ש-VS Code מעודכן
  2. התקן קודם את תוסף C/C++
  3. אתחל מחדש את VS Code לאחר התקנת PlatformIO
  4. בדוק את חיבור האינטרנט שלך (PlatformIO מוריד קבצים גדולים)

בעיה: הלוח לא מזוהה על ידי PlatformIO

תסמינים: לא מצליח להעלות קוד ל-Wio Terminal

פתרון:

  1. נסה כבל USB שונה (יש כבלים שמיועדים רק לטעינה)
  2. בדוק ב-Device Manager (Windows) או ls /dev/tty* (macOS/Linux)
  3. התקן או עדכן דרייברים ל-USB
  4. נסה פורט USB שונה
  5. החלק את מתג ההפעלה ב-Wio Terminal פעמיים במהירות כדי להיכנס למצב אתחול

בעיה: שגיאות קומפילציה ב-PlatformIO

שגיאה: fatal error: Arduino.h: No such file or directory

פתרון:

  1. מחק את תיקיית .pio בפרויקט שלך
  2. הפעל "PlatformIO: Rebuild" מלוח הפקודות
  3. ודא שקובץ platformio.ini מכיל תצורת לוח נכונה:
    [env:seeed_wio_terminal]
    platform = atmelsam
    board = seeed_wio_terminal
    framework = arduino
    

ספריות Grove

בעיה: ייבוא ספריית Grove נכשל ב-Raspberry Pi

שגיאה: ModuleNotFoundError: No module named 'grove'

פתרון:

  1. התקן מחדש את ספריות Grove:
    cd ~
    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .
    
  2. אם משתמשים בסביבה וירטואלית, יתכן שתצטרך להתקין גלובלית או להעתיק ספריות
  3. אמת כי I2C מופעל: sudo raspi-config nonint do_i2c 0

בעיה: חיישן Grove לא מזוהה

שגיאה: IOError: [Errno 121] Remote I/O error

פתרון:

  1. בדוק חיבורים פיזיים (וודא שכבל Grove מוכנס במלואו)
  2. אמת שהחיישן מחובר לכניסה הנכונה (אנלוגית, דיגיטלית, I2C, UART)
  3. הפעל i2cdetect -y 1 כדי לבדוק אם המכשיר מופיע על קו I2C
  4. נסה כבל Grove שונה
  5. ודא ש-Grove Base Hat מותקן כיאות על פיני GPIO של Raspberry Pi

בעיות חומרה

Raspberry Pi

בעיה: Raspberry Pi לא עולה

תסמינים: אין תצוגה, אין פעילות נוריות LED, או מסך קשת בענן

פתרון:

  1. בדוק ספק כוח: השתמש בספק USB-C רשמי 5V 3A ל-Pi 4
  2. בעיות בכרטיס SD:
    • פרמט את כרטיס ה-SD והתקן מחדש את מערכת ההפעלה Raspberry Pi OS
    • נסה כרטיס SD שונה (השתמש במותגים מומלצים)
    • ודא שכרטיס ה-SD מוכנס כראוי
  3. בדוק חיבור HDMI: נסה את שני יציאות ה-HDMI ב-Pi 4, השתמש ביציאת HDMI הקרובה לספק הכוח

בעיה: לא מצליח להתחבר ל-Raspberry Pi ב-SSH

תסמינים: חיבור נדחה או השתבש

פתרון:

  1. אפשר SSH:
    • בעת כתיבת כרטיס SD בעזרת Raspberry Pi Imager, הגדר SSH באפשרויות מתקדמות
    • או צור קובץ ריק בשם ssh (ללא סיומת) במחיצת האתחול
  2. מצא את כתובת ה-IP של ה-Pi:
    • בדוק את המכשירים המחוברים לנתב שלך
    • השתמש ב-ping raspberrypi.local (אם mDNS פעיל)
    • השתמש בכלי סריקת רשת כמו nmap או Angry IP Scanner
  3. בדוק את הרשת:
    • ודא שה-Pi ועם המחשב באותה רשת
    • נסה חיבור Ethernet במקום WiFi
  4. אמת שם משתמש/סיסמה (ברירת מחדל: שם משתמש pi, סיסמה raspberry)

בעיה: Grove Base Hat לא מזוהה

תסמינים: חיישנים לא עובדים, שגיאות I2C

פתרון:

  1. ודא ש-Base Hat יושב היטב על כל פיני GPIO
  2. בדוק פינים כפופים ב-Pi או ב-Base Hat
  3. אפשר את ממשק I2C:
    sudo raspi-config nonint do_i2c 0
    sudo reboot
    
  4. אמת ש-I2C עובד: i2cdetect -y 1

בעיה: Raspberry Pi רץ לאט

תסמינים: ממשק משתמש איטי, תגובה איטית

פתרון:

  1. בדוק מהירות כרטיס ה-SD (השתמש ב-Class 10 או טוב יותר, או ב-SSD דרך USB)
  2. שחרר מקום בדיסק: הפעל df -h למחיקה של קבצים מיותרים
  3. הפחת זיכרון GPU ב-raspi-config אם לא משתמש במצלמה/מסך בכבדות
  4. סגור יישומים מיותרים
  5. שקול לשדרג ל-Pi 4 עם יותר זיכרון RAM אם משתמש ב-Pi 3 או ישן יותר

Wio Terminal

בעיה: המסך של Wio Terminal נשאר ריק

תסמינים: אין פלט תצוגה לאחר העלאת קוד

פתרון:

  1. בדוק אם הקוד מאתחל את התצוגה (ספריית TFT_eSPI)
  2. עדכן את הקושחה של Wio Terminal מ-Seeed Wiki
  3. הוסף קוד אתחול תצוגה:
    #include <TFT_eSPI.h>
    TFT_eSPI tft;
    tft.begin();
    tft.fillScreen(TFT_BLACK);
    
  4. נסה להעלות סקיצה לדוגמה מ-PlatformIO כדי לבדוק חומרה

בעיה: WiFi לא עובד ב-Wio Terminal

תסמינים: לא מצליח להתחבר ל-WiFi, שגיאות רשת

פתרון:

  1. עדכן את קושחת ה-WiFi: עקוב אחרי מדריך עדכון קושחת WiFi ל-Wio Terminal
  2. בדוק אישורי WiFi: ודא ש-SSID והסיסמה נכונים
  3. רצועת WiFi: Wio Terminal תומך רק ב-2.4GHz (לא ב-5GHz)
  4. עוצמת אות: התקרב לנתב
  5. הגדרות נתב: חלק מרשתות Enterprise/WPA-Enterprise עלולות לא לעבוד

בעיה: Wio Terminal לא מזוהה במחשב

תסמינים: מכשיר USB לא מזוהה

פתרון:

  1. נסה כבל USB שונה: השתמש בכבל נתונים, לא בכבל לטעינה בלבד
  2. היכנס למצב אתחול: החלק את מתג ההפעלה כלפי מטה פעמיים במהירות
    • נורית LED כחולה תדליק, המכשיר מופיע כ-"Arduino" ב-Device Manager
  3. התקן דרייברים (Windows):
  4. נסה פורט USB שונה: הימנע מהרכבים (USB hubs), השתמש בחיבור ישיר
  5. עדכן דרייברי USB במערכת

בעיה: חיישנים לא עובדים ב-Wio Terminal

תסמינים: חיישני Grove לא קוראים נתונים

פתרון:

  1. בדוק חיבורי כבל Grove
  2. אמת שאתה משתמש בכניסה הנכונה ב-Grove (שמאל או ימין)
  3. כלול את הספריות הנכונות לחיישן
  4. בדוק דרישות הספק חשמלי של החיישן
  5. בדוק את החיישן עם קוד דוגמה מהספריה

מכשיר וירטואלי (CounterFit)

בעיה: אפליקציית CounterFit לא מתחילה

שגיאה: שגיאות Python שונות בעת הפעלת CounterFit

פתרון:

  1. ודא שהסביבה הווירטואלית מופעלת
  2. התקן / התקן מחדש את CounterFit:
    pip install CounterFit
    
  3. בדוק שפורט 5000 לא בשימוש כבר:
    • Windows: netstat -ano | findstr :5000
    • macOS/Linux: lsof -i :5000
  4. לעצור את התהליך שמשתמש בפורט 5000 או השתמש בפורט שונה:
    counterfit --port 5001
    

בעיה: לא מצליח להתחבר ל-CounterFit מתוך הקוד

שגיאה: חיבור נדחה או השתבש

פתרון:

  1. אמת ש-CounterFit רץ: פתח דפדפן לכתובת http://127.0.0.1:5000
  2. בדוק שכתובת החיבור בקוד תואמת לכתובת CounterFit
  3. ודא שהחומת אש לא חוסמת את החיבור
  4. נסה לאתחל את אפליקציית CounterFit ואת הקוד שלך שניהם

בעיה: חיישנים לא מופיעים ב-CounterFit

תסמינים: החיישנים שיצרת לא מופיעים בממשק המשתמש של CounterFit

פתרון:

  1. צור את החיישנים בממשק CounterFit לפני הפעלת הקוד
  2. רענן את דף הדפדפן
  3. בדוק שסוג החיישן תואם למה שהקוד מצפה
  4. נקה את זיכרון המטמון של הדפדפן

בעיות חיבור

חיבור WiFi

בעיה: המכשיר לא מצליח להתחבר ל-WiFi

תסמינים: זמן חיבור פג, אימות נכשל

פתרון:

  1. בדוק SSID וסיסמה: אמת שהפרטים נכונים
  2. רצועת WiFi: רוב מכשירי ה-IoT תומכים רק ב-2.4GHz (לא 5GHz)
  3. הגדרות נתב:
    • בטל בידוד AP אם אפשרי
    • השתמש באבטחת WPA2-PSK (הימנע מ-WPA3, WEP או רשתות פתוחות)
    • ודא ש-DHCP מופעל
  4. רשתות מוסתרות: אם SSID מוסתר, ייתכן שתצטרך להגדיר אותו במפורש
  5. עוצמת אות: קרב את המכשיר לנתב
  6. הפרעות: מכשירים אחרים, מיקרוגל או קירות עלולים להפריע

בעיה: חיבור WiFi נופל לעיתים קרובות

תסמינים: חיבור לא יציב

פתרון:

  1. בדוק יציבות הנתב ושקול לבצע הפעלה מחדש
  2. עדכן את הקושחה במכשיר
  3. השתמש בכתובת IP סטטית במקום DHCP
  4. קירב את המכשיר לנתב או הוסף מאריך WiFi
  5. בדוק הפרעות ממכשירים אחרים
  6. אמת שספק הכוח מספק דיור (במיוחד עבור Raspberry Pi)

שירותי ענן

בעיה: לא מצליח להתחבר ל-Azure IoT Hub

שגיאה: אימות נכשל, חיבור נדחה

פתרון:

  1. ודא אישורים:
    • בדוק ששרשרת החיבור נכונה
    • ודא שאין רווחים או שבירות שורה מיותרות בשרשרת החיבור
  2. בדוק רישום המכשיר: המכשיר חייב להיות רשום ב-IoT Hub
  3. חומת אש/פרוקסי: ודא שפורטים MQTT (8883) או HTTPS (443) פתוחים
  4. אזור IoT Hub: ודא שה-IoT Hub פעיל ואינו באזור אחר שגורם לעיכובים
  5. מגבלות מכסה: בדוק אם עברו את גבולות התוכנית החינמית
  6. בדוק את החיבור:
    az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
    

בעיה: Azure Functions לא מופעלות

תסמינים: הודעות נשלחות אך הפונקציה לא מתבצעת

פתרון:

  1. בדוק ש-Function App רץ (לא נעצר)
  2. אמת שרשרת חיבור בהגדרות Function App
  3. בדוק יומני פונקציות בפורטל Azure
  4. ודא שנקודת קצה תאומה ל-Event Hub מוגדרת כראוי
  5. אמת שפורמט ההודעה תואם לציפיות הפונקציה
  6. בדוק את תכנית השירות של Function App (צריכה או ייעודית)

MQTT

בעיה: כשל בחיבור MQTT

שגיאה: חיבור נדחה, אימות נכשל

פתרון:

  1. כתובת הברוקר: ודא ש-URL/IP של הברוקר נכון
  2. פורט: בדוק את מספר הפורט (1883 ללא הצפנה, 8883 ל-TLS)
  3. אימות: וודא שם משתמש/סיסמה אם נדרש
  4. TLS/SSL: ודא שהתעודות תקפות ומאושרות
  5. חומת אש: בדוק שהפורט לא חסום
  6. בדיקה עם לקוח MQTT: השתמש ב-MQTT Explorer או mosquitto_pub/sub לבדיקה

בעיה: הודעות MQTT לא מתקבלות

תסמינים: הודעות מתפרסמות אך לא מתקבלות על ידי המנויים

פתרון:

  1. שמות נושאים: ודא שנושא המנוי תואם במדויק לנושא המפרסם
  2. רמת QoS: נסה QoS 1 או 2 במקום 0
  3. תווים כלליים (Wildcards): בדוק שימוש נכון בתווים כלליים (+ לרמה אחת, # לרב-רמות)
  4. הודעות נשמרות: המפרסם יכול להגדיר flag של שמירת ההודעה האחרונה
  5. תזמון חיבור: ודא שהמנוי מתصل לפני שההודעות מתפרסמות

בעיות בסנסורים ומבצעים

Grove Sensors

בעיה: הסנסור מחזיר ערכים שגויים

תסמינים: קריאות 0, -1, או ערכים לא הגיוניים

פתרון:

  1. בדוק חיבורים: ודא שהסנסור מחובר כראוי
  2. פורט נכון: ודא שהסנסור מחובר לסוג הפורט הנכון:
    • חיישנים אנלוגיים → פורטים אנלוגיים (A0, A2, A4)
    • חיישנים דיגיטליים → פורטים דיגיטליים (D5, D16, D18, וכו')
    • חיישני I2C → פורטי I2C
  3. כיול: חלק מהחיישנים דורשים כיול (לחות קרקע, אור)
  4. ניתוק והפעלה מחדש: נתק וחבר מחדש את הסנסור
  5. גיליון נתונים של הסנסור: בדוק מפרטים ודרישות

בעיה: סנסור לחות קרקע קבלטי תמיד קורא רטוב

תסמינים: קריאות לחות גבוהות גם כשהקרקע יבשה

פתרון:

  1. צריך כיול: סנסורי קרקע דורשים כיול:
    • קרא ערך באוויר (קו בסיס יבש)
    • קרא ערך במים (קו בסיס רטוב)
    • התאם את הקריאות בין הערכים הללו
  2. בדוק ציפוי הסנסור: סנסורים עלולים להתקלקל אם הציפוי פגום
  3. מיקום: ודא שהסנסור מוכנס במלואו באדמה

בעיה: קריאות סנסור טמפרטורה/לחות שגויות

תסמינים: DHT11/DHT22 מציג טמפרטורה או לחות לא נכונים

פתרון:

  1. מיקום הסנסור: הימנע מאור שמש ישיר, מקורות חום, או זרימת אוויר
  2. זמן התחממות: אפשר לסנסור 2 שניות אחרי הפעלתו לפני קריאה
  3. תדירות קריאה: סנסורי DHT צריכים זמן בין קריאות (לפחות 2 שניות)
  4. בדוק עיבוי: עלול להשפיע על הקריאות
  5. איכות הסנסור: DHT11 פחות מדויק מ-DHT22

מצלמה

בעיה: המצלמה לא מתגלת ברספברי פאי

שגיאה: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'

פתרון:

  1. אפשר את ממשק המצלמה:
    sudo raspi-config
    
    עבור ל-Interface Options → Camera → Enable
  2. בדוק כבל סרט: ודא שכבל המצלמה מוכנס היטב
    • הצד הכחול פונה ליציאות USB ב-Pi Zero
    • הצד הכחול פונה הרחק מיציאות USB ב-Pi 4
  3. עדכן קושחה:
    sudo apt update
    sudo apt full-upgrade
    sudo reboot
    
  4. בדוק את המצלמה:
    raspistill -o test.jpg
    

בעיה: תמונות מצלמה באיכות ירודה

תסמינים: תמונות מטושטשות, חשוכות או דהויות

פתרון:

  1. פוקוס: הסר את סרט ההגנה מהעדשה, כוון פוקוס אם ניתן
  2. תאורה: ודא תאורה מספקת
  3. הגדרות מצלמה: כוון חשיפה, ISO, איזון לבן בקוד
  4. יציבות: החזק את המצלמה יציבה, השתמש בחצובה אם צריך
  5. רזולוציה: אל תעלה על הרזולוציה המרבית של המצלמה

מיקרופון ורמקול

בעיה: אין קול נכנס/יוצא

תסמינים: המיקרופון לא מקליט, הרמקול לא מנגן

פתרון:

  1. בדוק חיבורים: ודא שהתקני הקול מחוברים כראוי
  2. בדיקת חומרה:
    • רמקול: speaker-test -t wav -c 2
    • מיקרופון: arecord -l להצגה, arecord test.wav להקלטה
  3. הגדרות ווליום: בדוק וכוון עוצמה:
    alsamixer
    
  4. בחר התקן קול: ציין את התקן הקול הנכון בקוד
  5. בעיות דרייבר: עדכן ALSA או התקן מחדש דרייברים

בעיה: ReSpeaker hat לא עובד

תסמינים: התקן קול לא מתגלה

פתרון:

  1. התקן דרייברים:
    git clone https://github.com/HinTak/seeed-voicecard
    cd seeed-voicecard
    sudo ./install.sh
    sudo reboot
    
  2. בדוק התקנה: arecord -l אמור להציג את ReSpeaker
  3. עדכן קושחה: חלק מגרסאות Pi OS דורשות עדכון דרייברים
  4. בדוק חיבור: ודא שה-Hat מחובר נכון לפיני ה-GPIO

בעיות בסביבת הפיתוח

VS Code

בעיה: טרמינל לא מפעיל אוטומטית סביבת וירטואלית

תסמינים: הטרמינל נפתח אבל הסביבה הווירטואלית לא מופעלת

פתרון:

  1. בחר מפרש Python: פלטת הפקודות → "Python: Select Interpreter" → בחר את ה-venv
  2. הפעל מחדש את VS Code לאחר בחירת המפרש
  3. בדוק הגדרות: בקובץ settings.json, הוסף:
    "python.terminal.activateEnvironment": true
    

בעיה: הקוד לא רץ על המכשיר

תסמינים: הקוד רץ אבל שום דבר לא קורה במכשיר

פתרון:

  1. ודא שהקוד נשמר (בדוק נקודה בכרטיסיית הקובץ)
  2. בדוק איזו גרסת Python רצויה: which python או where python
  3. ל-Wio Terminal: ודא שהקוד מועלה דרך PlatformIO (לחץ על כפתור העלאה)
  4. ל-Raspberry Pi: התחבר ב-SSH ל-Pi והריץ את הקוד שם
  5. בדוק חלון פלט לאיתור שגיאות

בעיה: IntelliSense לא מציג פונקציות ספרייה

תסמינים: אין השלמה אוטומטית למודולים מיובאים

פתרון:

  1. ודא שהספרייה מותקנת בסביבה הנוכחית
  2. טען מחדש את חלון ה-VS Code
  3. בדוק שמפרש Python נכון
  4. התקן קבצי type stubs אם זמינים: pip install types-<library-name>

סביבות וירטואליות של Python

בעיה: לא מצליח ליצור סביבה וירטואלית

שגיאה: The virtual environment was not created successfully

פתרון:

  1. התקן מודול venv:
    • אובונטו/דביאן: sudo apt install python3-venv
    • macOS: אמור להיות כלול עם Python
    • ווינדוס: התקן מחדש Python עם כל הרכיבים
  2. בדוק התקנת Python: ודא ש-Python מותקן כראוי
  3. השתמש בנתיב מלא: נסה python3 -m venv .venv עם קריאה מפורשת ל-python3

בעיה: חבילות מותקנות במקום הלא נכון

תסמינים: שגיאת ייבוא לאחר התקנת חבילה

פתרון:

  1. ודא ש-venv מפעיל: בשורת הפקודה צריך להופיע (.venv)
  2. בדוק מיקום pip: which pip צריך להצביע ל-.venv/bin/pip
  3. התקן מחדש ב-venv: הפעל את ה-venv ואז pip install <package>
  4. אל תשתמש ב-sudo עם pip בסביבה וירטואלית

בעיה: הסביבה הווירטואלית לא ניידת

תסמינים: venv לא עובד אחרי העברה או במחשב אחר

פתרון:

  1. אל תזיז venvs: מחק ויצור מחדש במיקום חדש
  2. השתמש בקובץ requirements.txt:
    pip freeze > requirements.txt
    pip install -r requirements.txt
    
  3. צור מחדש את ה-venv:
    python3 -m venv .venv
    source .venv/bin/activate  # או activate.bat בווינדוס
    pip install -r requirements.txt
    

תלותיות

בעיה: התקנת חבילה נכשלת

שגיאה: שגיאות pip שונות במהלך ההתקנה

פתרון:

  1. עדכן pip:
    pip install --upgrade pip
    
  2. התקן כלים לבנייה:
    • אובונטו/דביאן: sudo apt install build-essential python3-dev
    • macOS: xcode-select --install
    • ווינדוס: התקן Visual Studio Build Tools
  3. בדוק חיבור אינטרנט
  4. נסה אינדקס חבילות שונה: pip install --index-url https://pypi.org/simple/ <package>
  5. התקן גרסה ספציפית: pip install <package>==<version>

בעיה: סתירות תלותיות

שגיאה: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed

פתרון:

  1. השתמש בסביבה וירטואלית חדשה לכל פרויקט
  2. עדכן חבילות: pip install --upgrade <package>
  3. בדוק דרישות: השתמש ב-pip check למציאת סתירות
  4. התקן גרסאות תואמות: ציין טווחי גרסאות ב-requirements.txt

בעיות ביצועים

בעיה: הקוד רץ לאט

תסמינים: עיכובים, חוסר תגובה, timeout

פתרון:

  1. הפחת תדירות קריאת חיישנים: אל תקרא חיישנים בתדירות גבוהה מדי
  2. אופטימזציה של לולאות: הימנע מ_busy-waiting_, השתמש ב-sleep() או השהיות
  3. בעיות זיכרון:
    • סגור תוכנות מיותרות
    • פנה מקום אחסון
    • פקח באמצעות top או htop על ה-Pi
  4. מהירות כרטיס SD: השתמש בכרטיס מהיר יותר או ב-SSD ל-Raspberry Pi
  5. עיכובי רשת: השתמש באסינכרוניות לקריאות רשת

בעיה: שגיאות זיכרון מלא

שגיאה: MemoryError או הקפאות מערכת

פתרון:

  1. ל-Raspberry Pi:
    • סגור תוכנות מיותרות
    • הגדל שטח החלפה (swap)
    • השתמש במערכת קלה (גרסת Lite)
    • שדרג זיכרון RAM (ל-Pi 4 יש אפשרויות 2/4/8GB)
  2. ל-Wio Terminal:
    • הפחת גדלי מאגר (buffer)
    • השתמש בתמונות קטנות יותר
    • אופטמז שימוש במחרוזות
    • בדוק דליפות זיכרון (זיכרון שלא שוחרר)

בעיה: אבידות או כשל בנתונים

תסמינים: הודעות חסרות, קבצים מקולקלים

פתרון:

  1. בעיות בכרטיס SD:
    • השתמש בכרטיסי איכות (הימנע מכרטיסים זולים/לא מקוריים)
    • גבה באופן שגרתי
    • כבה את ההתקן בצורה נקייה (אל תנתק חשמל ישירות)
  2. הגדל גודל מאגר בזיכרון בקוד
  3. אמינות רשת: יישם לוגיקת ניסיון חוזר וטיפול בשגיאות
  4. איכות שירות: השתמש ב-MQTT QoS 1 או 2 להודעות חשובות

הודעות שגיאה נפוצות

ModuleNotFoundError: No module named 'X'

סיבה: חבילה לא מותקנת או סביבה וירטואלית לא מופעלת

פתרון:

pip install X

ודא שהסביבה הווירטואלית מופעלת תחילה.

Permission denied בלינוקס/macOS

סיבה: דרוש הרשאות מורמות או בעיית הרשאות קובץ

פתרון:

  • עבור פעולות מערכת: השתמש ב-sudo
  • עבור pip: אל תשתמש ב-sudo בסביבה ווירטואלית, הפעל את ה-venv קודם
  • עבור פורט סיריאלי: הוסף משתמש לקבוצת dialout: sudo usermod -a -G dialout $USER, ואז התנתק והתחבר מחדש

OSError: [Errno 98] Address already in use

סיבה: הפורט בשימוש על ידי תהליך אחר

פתרון:

  1. מצא תהליך שמשתמש בפורט: lsof -i :<port> או netstat -ano | findstr :<port>
  2. עצור את התהליך או השתמש בפורט אחר בקוד שלך

SSL: CERTIFICATE_VERIFY_FAILED

סיבה: אימות תעודת SSL נכשל

פתרון:

  1. עדכן תעודות: pip install --upgrade certifi
  2. בדוק שהשעה במערכת נכונה: date
  3. לפיתוח בלבד (לא פרודקשן): השבת אימות בקוד

IndentationError: unexpected indent

סיבה: בעיות הזחה בפייתון (תערובת של טאבים ורווחים)

פתרון:

  1. השתמש בהזחה אחידה (4 רווחים הוא הסטנדרט של פייתון)
  2. הגדר את העורך להשתמש ברווחים במקום טאבים
  3. ב-VS Code: הגדר "editor.insertSpaces": true ו-"editor.tabSize": 4

UnicodeDecodeError או UnicodeEncodeError

סיבה: בעיות קידוד תווים

פתרון:

# בעת קריאת קבצים
with open('file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# בעת כתיבת קבצים
with open('file.txt', 'w', encoding='utf-8') as f:
    f.write(content)

קבלת עזרה

אם ניסית את שלבי פתרון הבעיות הללו ועדיין יש בעיות:

1. בדוק משאבים קיימים

  • תיעוד: עיין ב-README ובהוראות השיעור
  • מדריכי חומרה: בדוק ב-hardware.md למידע ספציפי לחומרה
  • ויקי Seeed Studio: Seeed Studio Wiki לרכיבי Grove

2. חפש בעיות דומות

  • בעיות GitHub: חפש בעיות קיימות
  • Stack Overflow: חפש הודעות שגיאה
  • פורומים של המכשיר: בדוק פורומים של Raspberry Pi או Arduino

3. צור Issue ב-GitHub

אם לא מצאת פתרון:

  1. עבור אל GitHub Issues
  2. לחץ על "New Issue"
  3. ספק:
    • תיאור ברור של הבעיה
    • צעדים לשחזור
    • הודעות שגיאה (טקסט מלא)
    • גרסאות חומרה/תוכנה
    • מה שכבר ניסית
    • צילומי מסך אם רלוונטי

4. הצטרף לקהילה

5. ספק דו"חות שגיאות טובים

דו"ח שגיאה טוב כולל:

  • סביבה: מערכת הפעלה, גרסת פייתון, חומרה בשימוש
  • שלבים לשחזור: שלבים מדויקים שגורמים לבעיה
  • התנהגות צפויה: מה אמור לקרות
  • התנהגות בפועל: מה באמת קורה
  • הודעות שגיאה: טקסט מלא של השגיאה, לא צילומי מסך
  • קוד: דוגמת קוד מינימלית שמייצרת את הבעיה

טיפים למניעה

שיטות עבודה מומלצות כלליות

  1. שמור גיבויים: גיבויים קבועים של כרטיסי SD/קוד שעובד
  2. תעד שינויים: ציין מה עובד בהערות
  3. בקרת גרסאות: השתמש ב-git כדי לעקוב אחרי שינויים בקוד
  4. בדוק בהדרגה: בדוק שינויים קטנים לפני שילובם
  5. קרא הודעות שגיאה: הן לעיתים קרובות מראות בדיוק מה הבעיה
  6. עדכן באופן קבוע: שמור על תוכנה/קושחה מעודכנת
  7. השתמש ברכיבים איכותיים: הימנע מכבלים/ספקי כוח זולים
  8. ספק כוח יציב: השתמש בספק כוח מתאים (במיוחד ל-Raspberry Pi)

זרימת עבודה בפיתוח

  1. התחל בפשטות: התחל עם קוד דוגמה שעובד
  2. שינוי אחד בכל פעם: קל יותר למצוא מה נשבר
  3. בדוק תכופות: גלה בעיות מוקדם
  4. שמור על סדר: ארגן קבצים וקוד באופן לוגי
  5. הערות בקוד: העתיד יעריך זאת

מדריך פתרון הבעיות הזה מתוחזק על ידי הקהילה. אם מצאת פתרון לבעיה שלא מופיעה כאן, אנא שקול לתרום כדי לעזור לאחרים!


כתב ויתור: מסמך זה תורגם באמצעות שירות התרגום המבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לזכור כי תרגומים ממוחשבים עלולים לכלול שגיאות או אי-דיוקים. המסמך המקורי בשפתו המקורית נחשב למקור הסמכותי. למידע קריטי מומלץ להיעזר בתרגום מקצועי וידני. אנחנו אינם אחראים לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה.