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

752 lines
33 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# מדריך פתרון בעיות
מדריך זה מסייע לך לפתור בעיות נפוצות בעבודה עם תכנית הלימודים IoT למתחילים. הבעיות מאורגנות לפי קטגוריות לנוחות הניווט.
## תוכן העניינים
- [בעיות התקנה](../..)
- [התקנת Python](../..)
- [VS Code והרחבות](../..)
- [PlatformIO (Wio Terminal)](../..)
- [ספריות Grove](../..)
- [בעיות חומרה](../..)
- [Raspberry Pi](../..)
- [Wio Terminal](../..)
- [מכשיר וירטואלי (CounterFit)](../..)
- [בעיות חיבור](../..)
- [חיבור WiFi](../..)
- [שירותי ענן](../..)
- [MQTT](../..)
- [בעיות חיישנים ומבצעים](../..)
- [חיישני Grove](../..)
- [מצלמה](../..)
- [מיקרופון ורמקול](../..)
- [בעיות סביבת פיתוח](../..)
- [VS Code](../..)
- [סביבות וירטואליות פייתון](../..)
- [תלויות](../..)
- [בעיות ביצועים](../..)
- [הודעות שגיאה נפוצות](../..)
- [קבלת עזרה](../..)
---
## בעיות התקנה
### התקנת Python
#### בעיה: גרסת Python ישנה מדי
**שגיאה:** `דרושה גרסת Python 3.6 ומעלה`
**פתרון:**
1. הורד את גרסת Python 3 העדכנית מ-[python.org](https://www.python.org/downloads/)
2. במהלך ההתקנה ב-Windows, סמן "Add Python to PATH"
3. אמת את ההתקנה:
```bash
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` מכיל תצורת לוח נכונה:
```ini
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
```
### ספריות Grove
#### בעיה: ייבוא ספריית Grove נכשל ב-Raspberry Pi
**שגיאה:** `ModuleNotFoundError: No module named 'grove'`
**פתרון:**
1. התקן מחדש את ספריות Grove:
```bash
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:
```bash
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](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)
3. הוסף קוד אתחול תצוגה:
```cpp
#include <TFT_eSPI.h>
TFT_eSPI tft;
tft.begin();
tft.fillScreen(TFT_BLACK);
```
4. נסה להעלות סקיצה לדוגמה מ-PlatformIO כדי לבדוק חומרה
#### בעיה: WiFi לא עובד ב-Wio Terminal
**תסמינים:** לא מצליח להתחבר ל-WiFi, שגיאות רשת
**פתרון:**
1. **עדכן את קושחת ה-WiFi:** עקוב אחרי [מדריך עדכון קושחת WiFi ל-Wio Terminal](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
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):**
- הורד והתקן את [דרייבר USB מ-Seeed](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
4. **נסה פורט USB שונה:** הימנע מהרכבים (USB hubs), השתמש בחיבור ישיר
5. **עדכן דרייברי USB במערכת**
#### בעיה: חיישנים לא עובדים ב-Wio Terminal
**תסמינים:** חיישני Grove לא קוראים נתונים
**פתרון:**
1. בדוק חיבורי כבל Grove
2. אמת שאתה משתמש בכניסה הנכונה ב-Grove (שמאל או ימין)
3. כלול את הספריות הנכונות לחיישן
4. בדוק דרישות הספק חשמלי של החיישן
5. בדוק את החיישן עם קוד דוגמה מהספריה
### מכשיר וירטואלי (CounterFit)
#### בעיה: אפליקציית CounterFit לא מתחילה
**שגיאה:** שגיאות Python שונות בעת הפעלת CounterFit
**פתרון:**
1. ודא שהסביבה הווירטואלית מופעלת
2. התקן / התקן מחדש את CounterFit:
```bash
pip install CounterFit
```
3. בדוק שפורט 5000 לא בשימוש כבר:
- Windows: `netstat -ano | findstr :5000`
- macOS/Linux: `lsof -i :5000`
4. לעצור את התהליך שמשתמש בפורט 5000 או השתמש בפורט שונה:
```bash
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. **בדוק את החיבור:**
```bash
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. **אפשר את ממשק המצלמה:**
```bash
sudo raspi-config
```
עבור ל-Interface Options → Camera → Enable
2. **בדוק כבל סרט:** ודא שכבל המצלמה מוכנס היטב
- הצד הכחול פונה ליציאות USB ב-Pi Zero
- הצד הכחול פונה הרחק מיציאות USB ב-Pi 4
3. **עדכן קושחה:**
```bash
sudo apt update
sudo apt full-upgrade
sudo reboot
```
4. **בדוק את המצלמה:**
```bash
raspistill -o test.jpg
```
#### בעיה: תמונות מצלמה באיכות ירודה
**תסמינים:** תמונות מטושטשות, חשוכות או דהויות
**פתרון:**
1. **פוקוס:** הסר את סרט ההגנה מהעדשה, כוון פוקוס אם ניתן
2. **תאורה:** ודא תאורה מספקת
3. **הגדרות מצלמה:** כוון חשיפה, ISO, איזון לבן בקוד
4. **יציבות:** החזק את המצלמה יציבה, השתמש בחצובה אם צריך
5. **רזולוציה:** אל תעלה על הרזולוציה המרבית של המצלמה
### מיקרופון ורמקול
#### בעיה: אין קול נכנס/יוצא
**תסמינים:** המיקרופון לא מקליט, הרמקול לא מנגן
**פתרון:**
1. **בדוק חיבורים:** ודא שהתקני הקול מחוברים כראוי
2. **בדיקת חומרה:**
- רמקול: `speaker-test -t wav -c 2`
- מיקרופון: `arecord -l` להצגה, `arecord test.wav` להקלטה
3. **הגדרות ווליום:** בדוק וכוון עוצמה:
```bash
alsamixer
```
4. **בחר התקן קול:** ציין את התקן הקול הנכון בקוד
5. **בעיות דרייבר:** עדכן ALSA או התקן מחדש דרייברים
#### בעיה: ReSpeaker hat לא עובד
**תסמינים:** התקן קול לא מתגלה
**פתרון:**
1. **התקן דרייברים:**
```bash
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`, הוסף:
```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:**
```bash
pip freeze > requirements.txt
pip install -r requirements.txt
```
3. **צור מחדש את ה-venv:**
```bash
python3 -m venv .venv
source .venv/bin/activate # או activate.bat בווינדוס
pip install -r requirements.txt
```
### תלותיות
#### בעיה: התקנת חבילה נכשלת
**שגיאה:** שגיאות pip שונות במהלך ההתקנה
**פתרון:**
1. **עדכן pip:**
```bash
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'`
**סיבה:** חבילה לא מותקנת או סביבה וירטואלית לא מופעלת
**פתרון:**
```bash
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`
**סיבה:** בעיות קידוד תווים
**פתרון:**
```python
# בעת קריאת קבצים
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](README.md) ובהוראות השיעור
- **מדריכי חומרה:** בדוק ב-[hardware.md](hardware.md) למידע ספציפי לחומרה
- **ויקי Seeed Studio:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) לרכיבי Grove
### 2. חפש בעיות דומות
- **בעיות GitHub:** חפש [בעיות קיימות](https://github.com/microsoft/IoT-For-Beginners/issues)
- **Stack Overflow:** חפש הודעות שגיאה
- **פורומים של המכשיר:** בדוק פורומים של Raspberry Pi או Arduino
### 3. צור Issue ב-GitHub
אם לא מצאת פתרון:
1. עבור אל [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
2. לחץ על "New Issue"
3. ספק:
- תיאור ברור של הבעיה
- צעדים לשחזור
- הודעות שגיאה (טקסט מלא)
- גרסאות חומרה/תוכנה
- מה שכבר ניסית
- צילומי מסך אם רלוונטי
### 4. הצטרף לקהילה
- **Discord:** [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-iot)
### 5. ספק דו"חות שגיאות טובים
דו"ח שגיאה טוב כולל:
- **סביבה:** מערכת הפעלה, גרסת פייתון, חומרה בשימוש
- **שלבים לשחזור:** שלבים מדויקים שגורמים לבעיה
- **התנהגות צפויה:** מה אמור לקרות
- **התנהגות בפועל:** מה באמת קורה
- **הודעות שגיאה:** טקסט מלא של השגיאה, לא צילומי מסך
- **קוד:** דוגמת קוד מינימלית שמייצרת את הבעיה
---
## טיפים למניעה
### שיטות עבודה מומלצות כלליות
1. **שמור גיבויים:** גיבויים קבועים של כרטיסי SD/קוד שעובד
2. **תעד שינויים:** ציין מה עובד בהערות
3. **בקרת גרסאות:** השתמש ב-git כדי לעקוב אחרי שינויים בקוד
4. **בדוק בהדרגה:** בדוק שינויים קטנים לפני שילובם
5. **קרא הודעות שגיאה:** הן לעיתים קרובות מראות בדיוק מה הבעיה
6. **עדכן באופן קבוע:** שמור על תוכנה/קושחה מעודכנת
7. **השתמש ברכיבים איכותיים:** הימנע מכבלים/ספקי כוח זולים
8. **ספק כוח יציב:** השתמש בספק כוח מתאים (במיוחד ל-Raspberry Pi)
### זרימת עבודה בפיתוח
1. **התחל בפשטות:** התחל עם קוד דוגמה שעובד
2. **שינוי אחד בכל פעם:** קל יותר למצוא מה נשבר
3. **בדוק תכופות:** גלה בעיות מוקדם
4. **שמור על סדר:** ארגן קבצים וקוד באופן לוגי
5. **הערות בקוד:** העתיד יעריך זאת
---
*מדריך פתרון הבעיות הזה מתוחזק על ידי הקהילה. אם מצאת פתרון לבעיה שלא מופיעה כאן, אנא שקול [לתרום](CONTRIBUTING.md) כדי לעזור לאחרים!*
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**כתב ויתור**:
מסמך זה תורגם באמצעות שירות התרגום המבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש לזכור כי תרגומים ממוחשבים עלולים לכלול שגיאות או אי-דיוקים. המסמך המקורי בשפתו המקורית נחשב למקור הסמכותי. למידע קריטי מומלץ להיעזר בתרגום מקצועי וידני. אנחנו אינם אחראים לכל אי-הבנה או פרשנות שגויה הנובעת משימוש בתרגום זה.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->