|
|
# Οδηγός Επίλυσης Προβλημάτων
|
|
|
|
|
|
Αυτός ο οδηγός σας βοηθά να λύσετε κοινά προβλήματα κατά την εργασία με το πρόγραμμα σπουδών IoT για Αρχάριους. Τα ζητήματα οργανώνονται κατά κατηγορία για εύκολη περιήγηση.
|
|
|
|
|
|
## Πίνακας Περιεχομένων
|
|
|
|
|
|
- [Προβλήματα Εγκατάστασης](../..)
|
|
|
- [Εγκατάσταση Python](../..)
|
|
|
- [VS Code και Επεκτάσεις](../..)
|
|
|
- [PlatformIO (Wio Terminal)](../..)
|
|
|
- [Βιβλιοθήκες Grove](../..)
|
|
|
- [Προβλήματα Υλικού](../..)
|
|
|
- [Raspberry Pi](../..)
|
|
|
- [Wio Terminal](../..)
|
|
|
- [Εικονική Συσκευή (CounterFit)](../..)
|
|
|
- [Προβλήματα Συνδεσιμότητας](../..)
|
|
|
- [Σύνδεση WiFi](../..)
|
|
|
- [Υπηρεσίες Cloud](../..)
|
|
|
- [MQTT](../..)
|
|
|
- [Προβλήματα Αισθητήρων και Ενεργοποιητών](../..)
|
|
|
- [Αισθητήρες Grove](../..)
|
|
|
- [Κάμερα](../..)
|
|
|
- [Μικρόφωνο και Ηχείο](../..)
|
|
|
- [Προβλήματα Αναπτυξιακού Περιβάλλοντος](../..)
|
|
|
- [VS Code](../..)
|
|
|
- [Εικονικά Περιβάλλοντα Python](../..)
|
|
|
- [Εξαρτήσεις](../..)
|
|
|
- [Προβλήματα Απόδοσης](../..)
|
|
|
- [Συχνά Μηνύματα Σφάλματος](../..)
|
|
|
- [Ζήτηση Βοήθειας](../..)
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Εγκατάστασης
|
|
|
|
|
|
### Εγκατάσταση 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 (επαναεγκαταστήστε την και επιλέξτε την επιλογή)
|
|
|
|
|
|
### VS Code και Επεκτάσεις
|
|
|
|
|
|
#### Πρόβλημα: Η επέκταση Pylance δεν λειτουργεί
|
|
|
**Συμπτώματα:** Δεν υπάρχει IntelliSense για Python, αυτόματη συμπλήρωση κώδικα ή έλεγχος τύπων
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Ανοίξτε την Παλέτα Εντολών του VS Code (`Ctrl+Shift+P` ή `Cmd+Shift+P`)
|
|
|
2. Εκτελέστε "Python: Select Interpreter"
|
|
|
3. Επιλέξτε τον σωστό interpreter Python (εικονικό περιβάλλον αν χρησιμοποιείτε)
|
|
|
4. Ανανέωση του παραθύρου του VS Code
|
|
|
|
|
|
#### Πρόβλημα: Το VS Code δεν εντοπίζει το εικονικό περιβάλλον
|
|
|
**Συμπτώματα:** Επιλέγεται λάθος Python interpreter
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Βεβαιωθείτε ότι έχετε ενεργοποιήσει το εικονικό περιβάλλον στο τερματικό
|
|
|
2. Ανοίξτε την Παλέτα Εντολών και εκτελέστε "Python: Select Interpreter"
|
|
|
3. Επιλέξτε τον interpreter από τον φάκελο `.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. Ελέγξτε τη Διαχείριση Συσκευών (Windows) ή τρέξτε `ls /dev/tty*` (macOS/Linux)
|
|
|
3. Εγκαταστήστε ή ενημερώστε drivers USB
|
|
|
4. Δοκιμάστε διαφορετική θύρα USB
|
|
|
5. Κάντε γρήγορες διπλές κινήσεις στο διακόπτη τροφοδοσίας του Wio Terminal για να μπείτε σε bootloader mode
|
|
|
|
|
|
#### Πρόβλημα: Σφάλματα μεταγλώττισης στο 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 bus
|
|
|
4. Δοκιμάστε άλλο καλώδιο Grove
|
|
|
5. Βεβαιωθείτε ότι η Grove Base Hat είναι σωστά τοποθετημένη στις ακίδες GPIO του Raspberry Pi
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Υλικού
|
|
|
|
|
|
### Raspberry Pi
|
|
|
|
|
|
#### Πρόβλημα: Το Raspberry Pi δεν εκκινεί
|
|
|
**Συμπτώματα:** Δεν εμφανίζεται εικόνα, δεν ανάβουν LEDs ή εμφανίζεται οθόνη ουράνιου τόξου
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ελέγξτε το τροφοδοτικό:** Χρησιμοποιήστε επίσημο τροφοδοτικό 5V 3A USB-C για Pi 4
|
|
|
2. **Προβλήματα κάρτας SD:**
|
|
|
- Επαναφορμάρετε την κάρτα SD και επανεγκαταστήστε το Raspberry Pi OS
|
|
|
- Δοκιμάστε άλλη κάρτα SD (χρησιμοποιήστε συνιστώμενες μάρκες)
|
|
|
- Βεβαιωθείτε ότι η κάρτα SD είναι σωστά εισαγμένη
|
|
|
3. **Ελέγξτε τη σύνδεση HDMI:** Δοκιμάστε και τις δύο θύρες HDMI στο Pi 4, χρησιμοποιήστε τη θύρα HDMI πιο κοντά στο τροφοδοτικό
|
|
|
|
|
|
#### Πρόβλημα: Αδυναμία σύνδεσης SSH στο Raspberry Pi
|
|
|
**Συμπτώματα:** Άρνηση σύνδεσης ή χρονικό όριο
|
|
|
|
|
|
**Λύση:**
|
|
|
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. Ενεργοποιήστε το interface 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. Ενημερώστε το firmware του 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. **Ενημερώστε το firmware WiFi:** Ακολουθήστε τον οδηγό ενημέρωσης firmware WiFi του Wio Terminal στο [Seeed Wiki](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
|
|
|
2. **Ελέγξτε τα στοιχεία σύνδεσης WiFi:** Βεβαιωθείτε για ορθότητα SSID και κωδικού
|
|
|
3. **WiFi band:** Το Wio Terminal υποστηρίζει μόνο 2.4GHz WiFi (όχι 5GHz)
|
|
|
4. **Ισχύς σήματος:** Μετακινήστε πιο κοντά στο router
|
|
|
5. **Ρυθμίσεις router:** Ορισμένα εταιρικά δίκτυα/WPA-Enterprise ενδέχεται να μην λειτουργούν
|
|
|
|
|
|
#### Πρόβλημα: Το Wio Terminal δεν αναγνωρίζεται από τον υπολογιστή
|
|
|
**Συμπτώματα:** Η συσκευή USB δεν εντοπίζεται
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Δοκιμάστε διαφορετικό καλώδιο USB:** Χρησιμοποιήστε καλώδιο δεδομένων, όχι μόνο φόρτισης
|
|
|
2. **Μπείτε σε bootloader mode:** Μετακινήστε γρήγορα δύο φορές τον διακόπτη τροφοδοσίας προς τα κάτω
|
|
|
- Το μπλε LED θα αναβοσβήνει, η συσκευή θα εμφανίζεται ως "Arduino" στη Διαχείριση Συσκευών
|
|
|
3. **Εγκαταστήστε drivers (Windows):**
|
|
|
- Κατεβάστε και εγκαταστήστε τον [Seeed USB driver](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
|
|
|
4. **Δοκιμάστε διαφορετική θύρα USB:** Αποφύγετε USB hubs, χρησιμοποιήστε απευθείας σύνδεση
|
|
|
5. **Ενημερώστε τους drivers συστήματος για 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. Ελέγξτε το URL σύνδεσης στον κώδικα για να ταιριάζει με τη διεύθυνση CounterFit
|
|
|
3. Βεβαιωθείτε ότι το τείχος προστασίας δεν μπλοκάρει τη σύνδεση
|
|
|
4. Δοκιμάστε να κάνετε επανεκκίνηση της εφαρμογής CounterFit και του κώδικά σας
|
|
|
|
|
|
#### Πρόβλημα: Οι αισθητήρες δεν εμφανίζονται στο CounterFit
|
|
|
**Συμπτώματα:** Οι δημιουργημένοι αισθητήρες δεν εμφανίζονται στο UI του CounterFit
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Δημιουργήστε τους αισθητήρες στο UI του CounterFit πριν τρέξετε τον κώδικα
|
|
|
2. Ανανέωση της σελίδας του προγράμματος περιήγησης
|
|
|
3. Ελέγξτε αν ο τύπος του αισθητήρα ταιριάζει με τις προσδοκίες του κώδικα
|
|
|
4. Καθαρίστε την προσωρινή μνήμη του προγράμματος περιήγησης
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Συνδεσιμότητας
|
|
|
|
|
|
### Σύνδεση WiFi
|
|
|
|
|
|
#### Πρόβλημα: Η συσκευή δεν μπορεί να συνδεθεί στο WiFi
|
|
|
**Συμπτώματα:** Χρονικό όριο σύνδεσης, αποτυχία πιστοποίησης
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ελέγξτε SSID και κωδικό:** Βεβαιωθείτε ότι τα διαπιστευτήρια είναι σωστά
|
|
|
2. **WiFi band:** Οι περισσότερες συσκευές IoT υποστηρίζουν μόνο 2.4GHz (όχι 5GHz)
|
|
|
3. **Ρυθμίσεις δρομολογητή:**
|
|
|
- Απενεργοποιήστε το AP isolation αν είναι ενεργό
|
|
|
- Χρησιμοποιήστε WPA2-PSK ασφάλεια (αποφύγετε WPA3, WEP ή ανοιχτά δίκτυα)
|
|
|
- Βεβαιωθείτε ότι το DHCP είναι ενεργοποιημένο
|
|
|
4. **Κρυμένα δίκτυα:** Αν το SSID είναι κρυφό, ίσως χρειαστεί να το διαμορφώσετε ρητά
|
|
|
5. **Ισχύς σήματος:** Μετακινήστε τη συσκευή πιο κοντά στο router
|
|
|
6. **Παρεμβολές:** Άλλες συσκευές, φούρνοι μικροκυμάτων ή τοίχοι μπορούν να προκαλέσουν παρεμβολές
|
|
|
|
|
|
#### Πρόβλημα: Η σύνδεση WiFi αποσυνδέεται συχνά
|
|
|
**Συμπτώματα:** Διακοπτόμενη συνδεσιμότητα
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Ελέγξτε σταθερότητα δρομολογητή και σκεφτείτε επανεκκίνηση
|
|
|
2. Ενημερώστε το firmware της συσκευής
|
|
|
3. Χρησιμοποιήστε στατική IP αντί DHCP
|
|
|
4. Μειώστε την απόσταση από το router ή προσθέστε WiFi extender
|
|
|
5. Ελέγξτε για παρεμβολές από άλλες συσκευές
|
|
|
6. Βεβαιωθείτε ότι το τροφοδοτικό είναι επαρκές (ειδικά για Raspberry Pi)
|
|
|
|
|
|
### Υπηρεσίες Cloud
|
|
|
|
|
|
#### Πρόβλημα: Αδυναμία σύνδεσης στο Azure IoT Hub
|
|
|
**Σφάλμα:** Αποτυχία πιστοποίησης, άρνηση σύνδεσης
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Επαλήθευση διαπιστευτηρίων:**
|
|
|
- Ελέγξτε ότι η συμβολοσειρά σύνδεσης είναι σωστή
|
|
|
- Βεβαιωθείτε ότι δεν υπάρχουν περιττοί κενά ή αλλαγές γραμμής στη συμβολοσειρά σύνδεσης
|
|
|
2. **Ελέγξτε την εγγραφή της συσκευής:** Η συσκευή πρέπει να είναι καταχωρημένη στο IoT Hub
|
|
|
3. **Τείχος προστασίας / proxy:** Εξασφαλίστε ότι επιτρέπεται η εξερχόμενη κίνηση 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 Portal
|
|
|
4. Βεβαιωθείτε ότι το συμβατό endpoint Event Hub έχει ρυθμιστεί σωστά
|
|
|
5. Επαληθεύστε ότι η μορφή μηνύματος ταιριάζει με τις προσδοκίες της συνάρτησης
|
|
|
6. Ελέγξτε το σχέδιο υπηρεσίας της Function App (consumption έναντι dedicated)
|
|
|
|
|
|
### MQTT
|
|
|
#### Πρόβλημα: Η σύνδεση MQTT αποτυγχάνει
|
|
|
**Σφάλμα:** Απόρριψη σύνδεσης, αποτυχία αυθεντικοποίησης
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Διεύθυνση broker:** Επιβεβαιώστε ότι το URL/IP του broker είναι σωστό
|
|
|
2. **Θύρα:** Ελέγξτε τον αριθμό θύρας (1883 για μη κρυπτογραφημένη, 8883 για TLS)
|
|
|
3. **Αυθεντικοποίηση:** Επιβεβαιώστε όνομα χρήστη/κωδικό πρόσβασης αν απαιτείται
|
|
|
4. **TLS/SSL:** Βεβαιωθείτε ότι τα πιστοποιητικά είναι έγκυρα και αξιόπιστα
|
|
|
5. **Τείχος προστασίας:** Ελέγξτε ότι η θύρα δεν είναι μπλοκαρισμένη
|
|
|
6. **Δοκιμή με MQTT client:** Χρησιμοποιήστε MQTT Explorer ή mosquitto_pub/sub για δοκιμή
|
|
|
|
|
|
#### Πρόβλημα: Μηνύματα MQTT δεν λαμβάνονται
|
|
|
**Συμπτώματα:** Μηνύματα δημοσιεύονται αλλά δεν λαμβάνονται από συνδρομητές
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ονόματα θεμάτων:** Επιβεβαιώστε ότι το θέμα του συνδρομητή ταιριάζει ακριβώς με το θέμα του εκδότη
|
|
|
2. **Επίπεδο QoS:** Δοκιμάστε QoS 1 ή 2 αντί για 0
|
|
|
3. **Μπαλαντέρ:** Ελέγξτε ότι τα μπαλαντέρ χρησιμοποιούνται σωστά (`+` για ένα επίπεδο, `#` για πολλαπλά επίπεδα)
|
|
|
4. **Διατηρημένα μηνύματα:** Ο εκδότης μπορεί να ορίσει σημαία διατήρησης για να κρατήσει το τελευταίο μήνυμα
|
|
|
5. **Χρονισμός σύνδεσης:** Βεβαιωθείτε ότι ο συνδρομητής συνδέεται πριν δημοσιευτούν τα μηνύματα
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Αισθητήρων και Εκτελεστών
|
|
|
|
|
|
### Αισθητήρες Grove
|
|
|
|
|
|
#### Πρόβλημα: Ο αισθητήρας επιστρέφει λανθασμένες τιμές
|
|
|
**Συμπτώματα:** Οι ενδείξεις είναι 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
|
|
|
|
|
|
### Κάμερα
|
|
|
|
|
|
#### Πρόβλημα: Η κάμερα δεν ανιχνεύεται στο Raspberry Pi
|
|
|
**Σφάλμα:** `mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'`
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ενεργοποιήστε το interface της κάμερας:**
|
|
|
```bash
|
|
|
sudo raspi-config
|
|
|
```
|
|
|
Μεταβείτε σε Interface Options → Camera → Enable
|
|
|
2. **Ελέγξτε την καλωδίωση ribbon:** Βεβαιωθείτε ότι το καλώδιο κάμερας είναι σωστά εισαγμένο
|
|
|
- Το μπλε μέρος κοιτά τα USB ports στο Pi Zero
|
|
|
- Το μπλε μέρος κοιτά μακριά από τα USB ports στο Pi 4
|
|
|
3. **Ενημερώστε το firmware:**
|
|
|
```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. **Ενημερώστε το firmware:** Ορισμένες εκδόσεις Pi OS χρειάζονται ενημερώσεις οδηγών
|
|
|
4. **Ελέγξτε τη σύνδεση:** Βεβαιωθείτε ότι το hat είναι σωστά συνδεδεμένο στα GPIO pins
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Περιβάλλοντος Ανάπτυξης
|
|
|
|
|
|
### VS Code
|
|
|
|
|
|
#### Πρόβλημα: Το τερματικό δεν ενεργοποιεί αυτόματα το virtual environment
|
|
|
**Συμπτώματα:** Το τερματικό ανοίγει αλλά το venv δεν ενεργοποιείται
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ορίστε τον διερμηνέα Python:** Command Palette → "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 δεν δείχνει συναρτήσεις βιβλιοθήκης
|
|
|
**Συμπτώματα:** Δεν εμφανίζει αυτόματη συμπλήρωση για εισαγόμενα modules
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Βεβαιωθείτε ότι η βιβλιοθήκη είναι εγκατεστημένη στο τρέχον περιβάλλον
|
|
|
2. Κάντε επαναφόρτωση παραθύρου VS Code
|
|
|
3. Ελέγξτε ότι ο διερμηνέας Python είναι σωστός
|
|
|
4. Εγκαταστήστε type stubs αν υπάρχουν: `pip install types-<library-name>`
|
|
|
|
|
|
### Python Virtual Environments
|
|
|
|
|
|
#### Πρόβλημα: Δεν μπορεί να δημιουργηθεί virtual environment
|
|
|
**Σφάλμα:** `The virtual environment was not created successfully`
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Εγκαταστήστε το module venv:**
|
|
|
- Ubuntu/Debian: `sudo apt install python3-venv`
|
|
|
- macOS: Περιλαμβάνεται με την Python
|
|
|
- Windows: Επανεγκαταστήστε την Python με όλα τα components
|
|
|
2. **Ελέγξτε την εγκατάσταση Python:** Βεβαιωθείτε ότι η Python είναι σωστά εγκατεστημένη
|
|
|
3. **Χρησιμοποιήστε πλήρη διαδρομή:** Δοκιμάστε `python3 -m venv .venv` με ρητή κλήση python3
|
|
|
|
|
|
#### Πρόβλημα: Πακέτα εγκαθίστανται σε λάθος τοποθεσία
|
|
|
**Συμπτώματα:** Σφάλμα εισαγωγής μετά την εγκατάσταση πακέτου
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Επιβεβαιώστε ότι το venv είναι ενεργοποιημένο:** Το prompt πρέπει να δείχνει `(.venv)`
|
|
|
2. **Ελέγξτε τη θέση του pip:** `which pip` πρέπει να δείχνει σε `.venv/bin/pip`
|
|
|
3. **Επανεγκαταστήστε στο venv:** Ενεργοποιήστε το venv, μετά `pip install <package>`
|
|
|
4. **Μην χρησιμοποιείτε sudo με pip** μέσα σε virtual environment
|
|
|
|
|
|
#### Πρόβλημα: Το virtual environment δεν είναι φορητό
|
|
|
**Συμπτώματα:** Το venv δεν δουλεύει μετά τη μεταφορά ή σε άλλη υπολογιστή
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Μην μετακινείτε τα venv:** Διαγράψτε και ξαναδημιουργήστε σε νέα θέση
|
|
|
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 στα Windows
|
|
|
pip install -r requirements.txt
|
|
|
```
|
|
|
|
|
|
### Εξαρτήσεις
|
|
|
|
|
|
#### Πρόβλημα: Η εγκατάσταση πακέτου αποτυγχάνει
|
|
|
**Σφάλμα:** Διάφορα σφάλματα pip κατά την εγκατάσταση
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Ενημερώστε το pip:**
|
|
|
```bash
|
|
|
pip install --upgrade pip
|
|
|
```
|
|
|
2. **Εγκαταστήστε εργαλεία κατασκευής:**
|
|
|
- Ubuntu/Debian: `sudo apt install build-essential python3-dev`
|
|
|
- macOS: `xcode-select --install`
|
|
|
- Windows: Εγκαταστήστε 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. **Χρησιμοποιήστε καθαρό virtual environment** για κάθε έργο
|
|
|
2. **Ενημερώστε τα πακέτα:** `pip install --upgrade <package>`
|
|
|
3. **Ελέγξτε τις απαιτήσεις:** Χρησιμοποιείστε `pip check` για να βρείτε συγκρούσεις
|
|
|
4. **Εγκαταστήστε συμβατές εκδόσεις:** Ορίστε εύρος εκδόσεων στο requirements.txt
|
|
|
|
|
|
---
|
|
|
|
|
|
## Προβλήματα Απόδοσης
|
|
|
|
|
|
### Πρόβλημα: Ο κώδικας τρέχει αργά
|
|
|
**Συμπτώματα:** Καθυστερήσεις, timeout, αδράνεια
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Μειώστε τη συχνότητα ανάγνωσης αισθητήρα:** Μην διαβάζετε τους αισθητήρες πολύ συχνά
|
|
|
2. **Βελτιστοποιήστε βρόχους:** Αποφύγετε την πολυάσχολη αναμονή, χρησιμοποιήστε sleep() ή καθυστερήσεις
|
|
|
3. **Προβλήματα μνήμης:**
|
|
|
- Κλείστε μη απαραίτητες εφαρμογές
|
|
|
- Απελευθερώστε χώρο αποθήκευσης
|
|
|
- Παρακολουθήστε με `top` ή `htop` στο Pi
|
|
|
4. **Ταχύτητα κάρτας SD:** Χρησιμοποιήστε γρηγορότερη κάρτα SD ή SSD για Raspberry Pi
|
|
|
5. **Καθυστερήσεις δικτύου:** Χρησιμοποιήστε ασύγχρονες λειτουργίες για κλήσεις δικτύου
|
|
|
|
|
|
### Πρόβλημα: Σφάλματα έλλειψης μνήμης
|
|
|
**Σφάλμα:** `MemoryError` ή πάγωμα συστήματος
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Για Raspberry Pi:**
|
|
|
- Κλείστε μη απαραίτητες εφαρμογές
|
|
|
- Αυξήστε χώρο swap
|
|
|
- Χρησιμοποιήστε ελαφρύτερο λειτουργικό (Lite έκδοση)
|
|
|
- Αναβαθμίστε RAM (το Pi 4 διαθέτει επιλογές 2/4/8GB)
|
|
|
2. **Για Wio Terminal:**
|
|
|
- Μειώστε τα μεγέθη buffer
|
|
|
- Χρησιμοποιήστε μικρότερες εικόνες
|
|
|
- Βελτιώστε τη χρήση των strings
|
|
|
- Ελέγξτε για διαρροές μνήμης (μη απελευθερωμένη μνήμη)
|
|
|
|
|
|
### Πρόβλημα: Απώλεια ή καταστροφή δεδομένων
|
|
|
**Συμπτώματα:** Λείπουν μηνύματα, κατεστραμμένα αρχεία
|
|
|
|
|
|
**Λύση:**
|
|
|
1. **Προβλήματα κάρτας SD:**
|
|
|
- Χρησιμοποιήστε ποιοτικές κάρτες SD (αποφύγετε φτηνές/μαϊμού)
|
|
|
- Κάντε τακτικά backup
|
|
|
- Κλείσιμο με σωστό τρόπο (μην κόβετε την τροφοδοσία)
|
|
|
2. **Υπερχείλιση buffer:** Αυξήστε τα μεγέθη buffer στον κώδικα
|
|
|
3. **Αξιοπιστία δικτύου:** Υλοποιήστε λογική επανάληψης και διαχείριση σφαλμάτων
|
|
|
4. **Ποιότητα υπηρεσίας:** Χρησιμοποιήστε MQTT QoS 1 ή 2 για σημαντικά μηνύματα
|
|
|
|
|
|
---
|
|
|
|
|
|
## Συνηθισμένα Μηνύματα Σφάλματος
|
|
|
|
|
|
### `ModuleNotFoundError: No module named 'X'`
|
|
|
**Αιτία:** Το πακέτο δεν είναι εγκατεστημένο ή το virtual environment δεν είναι ενεργό
|
|
|
|
|
|
**Λύση:**
|
|
|
```bash
|
|
|
pip install X
|
|
|
```
|
|
|
Βεβαιωθείτε πρώτα ότι το virtual environment είναι ενεργοποιημένο.
|
|
|
|
|
|
### `Permission denied` σε Linux/macOS
|
|
|
**Αιτία:** Απαιτούνται αυξημένα δικαιώματα ή πρόβλημα δικαιωμάτων αρχείων
|
|
|
|
|
|
**Λύση:**
|
|
|
- Για λειτουργίες συστήματος: Χρησιμοποιήστε `sudo`
|
|
|
- Για pip: ΜΗΝ χρησιμοποιείτε sudo με venv, ενεργοποιήστε πρώτα 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`
|
|
|
**Αιτία:** Προβλήματα εσοχής Python (ανάμειξη tabs/κενών)
|
|
|
|
|
|
**Λύση:**
|
|
|
1. Χρησιμοποιήστε συνεπή εσοχή (4 κενά είναι το πρότυπο Python)
|
|
|
2. Ρυθμίστε τον επεξεργαστή για χρήση κενών αντί για tabs
|
|
|
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:** Ελέγξτε το [hardware.md](hardware.md) για πληροφορίες ειδικές για hardware
|
|
|
- **Wiki Seeed Studio:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) για στοιχεία Grove
|
|
|
|
|
|
### 2. Αναζητήστε Παρόμοια Προβλήματα
|
|
|
- **GitHub Issues:** Αναζητήστε [υφιστάμενα ζητήματα](https://github.com/microsoft/IoT-For-Beginners/issues)
|
|
|
- **Stack Overflow:** Αναζητήστε μηνύματα σφάλματος
|
|
|
- **Φόρουμ συσκευών:** Ελέγξτε φόρουμ Raspberry Pi ή Arduino
|
|
|
|
|
|
### 3. Δημιουργήστε ένα GitHub Issue
|
|
|
Αν δεν βρείτε λύση:
|
|
|
1. Μεταβείτε στο [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
|
|
|
2. Πατήστε "New Issue"
|
|
|
3. Παρέχετε:
|
|
|
- Καθαρή περιγραφή του προβλήματος
|
|
|
- Βήματα αναπαραγωγής
|
|
|
- Μηνύματα σφάλματος (πλήρες κείμενο)
|
|
|
- Εκδόσεις hardware/software
|
|
|
- Τι έχετε ήδη δοκιμάσει
|
|
|
- Στιγμιότυπα οθόνης αν σχετίζονται
|
|
|
|
|
|
### 4. Ενταχθείτε στην Κοινότητα
|
|
|
- **Discord:** [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
|
|
|
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-iot)
|
|
|
|
|
|
### 5. Παρέχετε Καλά Αναφορές Σφαλμάτων
|
|
|
Μια καλή αναφορά σφάλματος περιλαμβάνει:
|
|
|
- **Περιβάλλον:** Λειτουργικό σύστημα, έκδοση Python, χρησιμοποιούμενος εξοπλισμός
|
|
|
- **Βήματα αναπαραγωγής:** Ακριβή βήματα που προκαλούν το πρόβλημα
|
|
|
- **Αναμενόμενη συμπεριφορά:** Τι θα έπρεπε να συμβεί
|
|
|
- **Πραγματική συμπεριφορά:** Τι πραγματικά συμβαίνει
|
|
|
- **Μηνύματα σφάλματος:** Ολόκληρο το κείμενο σφάλματος, όχι στιγμιότυπα οθόνης
|
|
|
- **Κώδικας:** Ελάχιστο παράδειγμα κώδικα που αναπαράγει το πρόβλημα
|
|
|
|
|
|
---
|
|
|
|
|
|
## Συμβουλές για Πρόληψη
|
|
|
|
|
|
### Γενικές Καλές Πρακτικές
|
|
|
1. **Διατηρήστε αντίγραφα ασφαλείας:** Τακτικά αντίγραφα των λειτουργικών καρτών SD/κώδικα
|
|
|
2. **Καταγράψτε τις αλλαγές:** Σημειώστε τι λειτουργεί στα σχόλια
|
|
|
3. **Έλεγχος εκδόσεων:** Χρησιμοποιήστε το git για παρακολούθηση των αλλαγών στον κώδικα
|
|
|
4. **Δοκιμάζετε σταδιακά:** Δοκιμάστε μικρές αλλαγές πριν τις συνδυάσετε
|
|
|
5. **Διαβάστε τα μηνύματα σφάλματος:** Συχνά λένε ακριβώς τι δεν πάει καλά
|
|
|
6. **Ενημερώνετε τακτικά:** Κρατάτε το λογισμικό/firmware ενημερωμένο
|
|
|
7. **Χρησιμοποιείτε ποιοτικά εξαρτήματα:** Αποφύγετε φτηνά καλώδια/τροφοδοτικά
|
|
|
8. **Σταθερή τροφοδοσία:** Χρησιμοποιήστε κατάλληλη τροφοδοσία (ειδικά για Pi)
|
|
|
|
|
|
### Ροή Ανάπτυξης
|
|
|
1. **Ξεκινήστε απλά:** Αρχίστε με παράδειγμα κώδικα που λειτουργεί
|
|
|
2. **Μια αλλαγή τη φορά:** Διευκολύνει τον εντοπισμό του προβλήματος
|
|
|
3. **Δοκιμάζετε συχνά:** Εντοπίστε τα προβλήματα νωρίς
|
|
|
4. **Κρατήστε τον κώδικα καθαρό:** Οργανώστε αρχεία και κώδικα λογικά
|
|
|
5. **Κάντε σχόλια στον κώδικα:** Ο μελλοντικός εαυτός σας θα το εκτιμήσει
|
|
|
|
|
|
---
|
|
|
|
|
|
*Αυτός ο οδηγός αντιμετώπισης προβλημάτων συντηρείται από την κοινότητα. Αν βρείτε λύση σε κάποιο πρόβλημα που δεν αναφέρεται εδώ, παρακαλούμε σκεφτείτε να [συνεισφέρετε](CONTRIBUTING.md) για να βοηθήσετε και άλλους!*
|
|
|
|
|
|
---
|
|
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
|
**Αποποίηση ευθύνης**:
|
|
|
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις μπορεί να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |