47 KiB
Οδηγός Επίλυσης Προβλημάτων
Αυτός ο οδηγός σας βοηθά να λύσετε κοινά προβλήματα κατά την εργασία με το πρόγραμμα σπουδών IoT για Αρχάριους. Τα ζητήματα οργανώνονται κατά κατηγορία για εύκολη περιήγηση.
Πίνακας Περιεχομένων
- Προβλήματα Εγκατάστασης
- Προβλήματα Υλικού
- Προβλήματα Συνδεσιμότητας
- Προβλήματα Αισθητήρων και Ενεργοποιητών
- Προβλήματα Αναπτυξιακού Περιβάλλοντος
- Προβλήματα Απόδοσης
- Συχνά Μηνύματα Σφάλματος
- Ζήτηση Βοήθειας
Προβλήματα Εγκατάστασης
Εγκατάσταση Python
Πρόβλημα: Η έκδοση Python είναι παρωχημένη
Σφάλμα: Απαιτείται Python 3.6 ή νεότερη
Λύση:
- Κατεβάστε την πιο πρόσφατη έκδοση Python 3 από το python.org
- Κατά την εγκατάσταση στα Windows, επιλέξτε "Add Python to PATH"
- Επαληθεύστε την εγκατάσταση:
python3 --version
Πρόβλημα: Πολλαπλές εκδόσεις Python προκαλούν συγκρούσεις
Συμπτώματα: Εκτελείται λάθος έκδοση Python, πακέτα εγκαθίστανται σε λάθος τοποθεσία
Λύση:
- Windows: Χρησιμοποιήστε
py -3αντί γιαpythonγια να κληθεί ρητά η Python 3 - macOS/Linux: Χρησιμοποιήστε
python3αντί γιαpython - Πάντα να δημιουργείτε και να χρησιμοποιείτε εικονικά περιβάλλοντα για τα έργα
Πρόβλημα: Η εντολή pip δεν βρέθηκε
Σφάλμα: 'pip' δεν αναγνωρίζεται ως εσωτερική ή εξωτερική εντολή
Λύση:
- Δοκιμάστε
pip3αντί γιαpip - Ή χρησιμοποιήστε
python -m pipήpython3 -m pip - Βεβαιωθείτε ότι η Python έχει προστεθεί στο PATH (επαναεγκαταστήστε την και επιλέξτε την επιλογή)
VS Code και Επεκτάσεις
Πρόβλημα: Η επέκταση Pylance δεν λειτουργεί
Συμπτώματα: Δεν υπάρχει IntelliSense για Python, αυτόματη συμπλήρωση κώδικα ή έλεγχος τύπων
Λύση:
- Ανοίξτε την Παλέτα Εντολών του VS Code (
Ctrl+Shift+PήCmd+Shift+P) - Εκτελέστε "Python: Select Interpreter"
- Επιλέξτε τον σωστό interpreter Python (εικονικό περιβάλλον αν χρησιμοποιείτε)
- Ανανέωση του παραθύρου του VS Code
Πρόβλημα: Το VS Code δεν εντοπίζει το εικονικό περιβάλλον
Συμπτώματα: Επιλέγεται λάθος Python interpreter
Λύση:
- Βεβαιωθείτε ότι έχετε ενεργοποιήσει το εικονικό περιβάλλον στο τερματικό
- Ανοίξτε την Παλέτα Εντολών και εκτελέστε "Python: Select Interpreter"
- Επιλέξτε τον interpreter από τον φάκελο
.venv - Ελέγξτε ότι η γραμμή κατάστασης (κάτω αριστερά) δείχνει τη σωστή έκδοση Python
PlatformIO (Wio Terminal)
Πρόβλημα: Η εγκατάσταση του PlatformIO αποτυγχάνει
Σφάλμα: Διάφορα σφάλματα κατά την εγκατάσταση του PlatformIO
Λύση:
- Βεβαιωθείτε ότι το VS Code είναι ενημερωμένο
- Εγκαταστήστε πρώτα την επέκταση C/C++
- Επανεκκινήστε το VS Code μετά την εγκατάσταση του PlatformIO
- Ελέγξτε τη σύνδεση στο διαδίκτυο (το PlatformIO κατεβάζει μεγάλα αρχεία)
Πρόβλημα: Η πλακέτα δεν εντοπίζεται από το PlatformIO
Συμπτώματα: Δεν μπορεί να ανέβει κώδικας στο Wio Terminal
Λύση:
- Δοκιμάστε διαφορετικό καλώδιο USB (μερικά καλώδια είναι μόνο για φόρτιση)
- Ελέγξτε τη Διαχείριση Συσκευών (Windows) ή τρέξτε
ls /dev/tty*(macOS/Linux) - Εγκαταστήστε ή ενημερώστε drivers USB
- Δοκιμάστε διαφορετική θύρα USB
- Κάντε γρήγορες διπλές κινήσεις στο διακόπτη τροφοδοσίας του Wio Terminal για να μπείτε σε bootloader mode
Πρόβλημα: Σφάλματα μεταγλώττισης στο PlatformIO
Σφάλμα: fatal error: Arduino.h: No such file or directory
Λύση:
- Διαγράψτε το φάκελο
.pioστο έργο σας - Εκτελέστε "PlatformIO: Rebuild" από την Παλέτα Εντολών
- Βεβαιωθείτε ότι το
platformio.iniέχει τη σωστή διαμόρφωση για την πλακέτα:[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino
Βιβλιοθήκες Grove
Πρόβλημα: Αποτυχία εισαγωγής βιβλιοθήκης Grove στο Raspberry Pi
Σφάλμα: ModuleNotFoundError: No module named 'grove'
Λύση:
- Επανεγκαταστήστε τις βιβλιοθήκες Grove:
cd ~ git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . - Αν χρησιμοποιείτε εικονικό περιβάλλον, ίσως χρειαστεί να τις εγκαταστήσετε παγκοσμίως ή να αντιγράψετε τις βιβλιοθήκες
- Επαληθεύστε ότι το I2C είναι ενεργοποιημένο:
sudo raspi-config nonint do_i2c 0
Πρόβλημα: Ο αισθητήρας Grove δεν ανιχνεύεται
Σφάλμα: IOError: [Errno 121] Remote I/O error
Λύση:
- Ελέγξτε τις φυσικές συνδέσεις (βεβαιωθείτε ότι το καλώδιο Grove είναι πλήρως εισαγμένο)
- Βεβαιωθείτε ότι ο αισθητήρας είναι συνδεδεμένος στη σωστή θύρα (αναλογική, ψηφιακή, I2C, UART)
- Εκτελέστε
i2cdetect -y 1για να δείτε αν η συσκευή εμφανίζεται στο I2C bus - Δοκιμάστε άλλο καλώδιο Grove
- Βεβαιωθείτε ότι η Grove Base Hat είναι σωστά τοποθετημένη στις ακίδες GPIO του Raspberry Pi
Προβλήματα Υλικού
Raspberry Pi
Πρόβλημα: Το Raspberry Pi δεν εκκινεί
Συμπτώματα: Δεν εμφανίζεται εικόνα, δεν ανάβουν LEDs ή εμφανίζεται οθόνη ουράνιου τόξου
Λύση:
- Ελέγξτε το τροφοδοτικό: Χρησιμοποιήστε επίσημο τροφοδοτικό 5V 3A USB-C για Pi 4
- Προβλήματα κάρτας SD:
- Επαναφορμάρετε την κάρτα SD και επανεγκαταστήστε το Raspberry Pi OS
- Δοκιμάστε άλλη κάρτα SD (χρησιμοποιήστε συνιστώμενες μάρκες)
- Βεβαιωθείτε ότι η κάρτα SD είναι σωστά εισαγμένη
- Ελέγξτε τη σύνδεση HDMI: Δοκιμάστε και τις δύο θύρες HDMI στο Pi 4, χρησιμοποιήστε τη θύρα HDMI πιο κοντά στο τροφοδοτικό
Πρόβλημα: Αδυναμία σύνδεσης SSH στο Raspberry Pi
Συμπτώματα: Άρνηση σύνδεσης ή χρονικό όριο
Λύση:
- Ενεργοποιήστε το SSH:
- Κατά τη δημιουργία της κάρτας SD με το Raspberry Pi Imager, ενεργοποιήστε το SSH στις προχωρημένες επιλογές
- Ή δημιουργήστε ένα κενό αρχείο με όνομα
ssh(χωρίς επέκταση) στην κατάτμηση εκκίνησης
- Βρείτε τη διεύθυνση IP του Pi:
- Ελέγξτε τις συνδεδεμένες συσκευές στον δρομολογητή σας
- Χρησιμοποιήστε
ping raspberrypi.local(αν λειτουργεί mDNS) - Χρησιμοποιήστε εργαλεία σάρωσης δικτύου όπως
nmapή Angry IP Scanner
- Ελέγξτε το δίκτυο:
- Βεβαιωθείτε ότι το Pi είναι στο ίδιο δίκτυο με τον υπολογιστή σας
- Δοκιμάστε σύνδεση ethernet αντί WiFi
- Επαληθεύστε όνομα χρήστη / κωδικό πρόσβασης (προεπιλογή: όνομα χρήστη
pi, κωδικόςraspberry)
Πρόβλημα: Η Grove Base Hat δεν αναγνωρίζεται
Συμπτώματα: Οι αισθητήρες δεν λειτουργούν, σφάλματα I2C
Λύση:
- Βεβαιωθείτε ότι η Base Hat είναι σωστά τοποθετημένη σε όλες τις ακίδες GPIO
- Ελέγξτε για στραβές ακίδες στο Pi ή τη Base Hat
- Ενεργοποιήστε το interface I2C:
sudo raspi-config nonint do_i2c 0 sudo reboot - Επαληθεύστε ότι το I2C λειτουργεί:
i2cdetect -y 1
Πρόβλημα: Το Raspberry Pi λειτουργεί αργά
Συμπτώματα: Καθυστέρηση περιβάλλοντος, αργή απόκριση
Λύση:
- Ελέγξτε την ταχύτητα κάρτας SD (χρησιμοποιήστε Class 10 ή καλύτερη, ή SSD μέσω USB)
- Απελευθερώστε χώρο στον δίσκο:
df -hγια έλεγχο, διαγράψτε περιττά αρχεία - Μειώστε τη μνήμη GPU μέσω
raspi-configαν δεν χρησιμοποιείτε εκτενώς κάμερα/οθόνη - Κλείστε περιττές εφαρμογές
- Σκεφτείτε αναβάθμιση σε Pi 4 με περισσότερη RAM αν χρησιμοποιείτε Pi 3 ή παλαιότερο
Wio Terminal
Πρόβλημα: Η οθόνη του Wio Terminal παραμένει κενή
Συμπτώματα: Δεν εμφανίζεται εικόνα μετά το ανέβασμα κώδικα
Λύση:
- Ελέγξτε αν ο κώδικας αρχικοποιεί την οθόνη (βιβλιοθήκη TFT_eSPI)
- Ενημερώστε το firmware του Wio Terminal από το Seeed Wiki
- Προσθέστε κώδικα αρχικοποίησης οθόνης:
#include <TFT_eSPI.h> TFT_eSPI tft; tft.begin(); tft.fillScreen(TFT_BLACK); - Δοκιμάστε ανέβασμα δείγματος έργου από το PlatformIO για έλεγχο υλικού
Πρόβλημα: Το WiFi δεν λειτουργεί στο Wio Terminal
Συμπτώματα: Αδυναμία σύνδεσης WiFi, σφάλματα δικτύου
Λύση:
- Ενημερώστε το firmware WiFi: Ακολουθήστε τον οδηγό ενημέρωσης firmware WiFi του Wio Terminal στο Seeed Wiki
- Ελέγξτε τα στοιχεία σύνδεσης WiFi: Βεβαιωθείτε για ορθότητα SSID και κωδικού
- WiFi band: Το Wio Terminal υποστηρίζει μόνο 2.4GHz WiFi (όχι 5GHz)
- Ισχύς σήματος: Μετακινήστε πιο κοντά στο router
- Ρυθμίσεις router: Ορισμένα εταιρικά δίκτυα/WPA-Enterprise ενδέχεται να μην λειτουργούν
Πρόβλημα: Το Wio Terminal δεν αναγνωρίζεται από τον υπολογιστή
Συμπτώματα: Η συσκευή USB δεν εντοπίζεται
Λύση:
- Δοκιμάστε διαφορετικό καλώδιο USB: Χρησιμοποιήστε καλώδιο δεδομένων, όχι μόνο φόρτισης
- Μπείτε σε bootloader mode: Μετακινήστε γρήγορα δύο φορές τον διακόπτη τροφοδοσίας προς τα κάτω
- Το μπλε LED θα αναβοσβήνει, η συσκευή θα εμφανίζεται ως "Arduino" στη Διαχείριση Συσκευών
- Εγκαταστήστε drivers (Windows):
- Κατεβάστε και εγκαταστήστε τον Seeed USB driver
- Δοκιμάστε διαφορετική θύρα USB: Αποφύγετε USB hubs, χρησιμοποιήστε απευθείας σύνδεση
- Ενημερώστε τους drivers συστήματος για USB
Πρόβλημα: Οι αισθητήρες δεν λειτουργούν στο Wio Terminal
Συμπτώματα: Οι αισθητήρες Grove δεν διαβάζουν δεδομένα
Λύση:
- Ελέγξτε τις συνδέσεις καλωδίων Grove
- Βεβαιωθείτε ότι χρησιμοποιείτε σωστή θύρα Grove (αριστερή ή δεξιά)
- Συμπεριλάβετε τις σωστές βιβλιοθήκες για τον αισθητήρα
- Ελέγξτε τις απαιτήσεις τροφοδοσίας του αισθητήρα
- Δοκιμάστε τον αισθητήρα με παράδειγμα κώδικα από τη βιβλιοθήκη
Εικονική Συσκευή (CounterFit)
Πρόβλημα: Η εφαρμογή CounterFit δεν ξεκινάει
Σφάλμα: Διάφορα σφάλματα Python κατά την εκκίνηση του CounterFit
Λύση:
- Βεβαιωθείτε ότι το εικονικό περιβάλλον είναι ενεργοποιημένο
- Εγκαταστήστε / επανεγκαταστήστε το CounterFit:
pip install CounterFit - Ελέγξτε αν η θύρα 5000 δεν χρησιμοποιείται ήδη:
- Windows:
netstat -ano | findstr :5000 - macOS/Linux:
lsof -i :5000
- Windows:
- Τερματίστε τη διαδικασία που χρησιμοποιεί τη θύρα 5000 ή χρησιμοποιήστε άλλη θύρα:
counterfit --port 5001
Πρόβλημα: Αδυναμία σύνδεσης με CounterFit από κώδικα
Σφάλμα: Απόρριψη σύνδεσης ή χρονικό όριο
Λύση:
- Βεβαιωθείτε ότι τρέχει το CounterFit: Ανοίξτε το πρόγραμμα περιήγησης στη διεύθυνση
http://127.0.0.1:5000 - Ελέγξτε το URL σύνδεσης στον κώδικα για να ταιριάζει με τη διεύθυνση CounterFit
- Βεβαιωθείτε ότι το τείχος προστασίας δεν μπλοκάρει τη σύνδεση
- Δοκιμάστε να κάνετε επανεκκίνηση της εφαρμογής CounterFit και του κώδικά σας
Πρόβλημα: Οι αισθητήρες δεν εμφανίζονται στο CounterFit
Συμπτώματα: Οι δημιουργημένοι αισθητήρες δεν εμφανίζονται στο UI του CounterFit
Λύση:
- Δημιουργήστε τους αισθητήρες στο UI του CounterFit πριν τρέξετε τον κώδικα
- Ανανέωση της σελίδας του προγράμματος περιήγησης
- Ελέγξτε αν ο τύπος του αισθητήρα ταιριάζει με τις προσδοκίες του κώδικα
- Καθαρίστε την προσωρινή μνήμη του προγράμματος περιήγησης
Προβλήματα Συνδεσιμότητας
Σύνδεση WiFi
Πρόβλημα: Η συσκευή δεν μπορεί να συνδεθεί στο WiFi
Συμπτώματα: Χρονικό όριο σύνδεσης, αποτυχία πιστοποίησης
Λύση:
- Ελέγξτε SSID και κωδικό: Βεβαιωθείτε ότι τα διαπιστευτήρια είναι σωστά
- WiFi band: Οι περισσότερες συσκευές IoT υποστηρίζουν μόνο 2.4GHz (όχι 5GHz)
- Ρυθμίσεις δρομολογητή:
- Απενεργοποιήστε το AP isolation αν είναι ενεργό
- Χρησιμοποιήστε WPA2-PSK ασφάλεια (αποφύγετε WPA3, WEP ή ανοιχτά δίκτυα)
- Βεβαιωθείτε ότι το DHCP είναι ενεργοποιημένο
- Κρυμένα δίκτυα: Αν το SSID είναι κρυφό, ίσως χρειαστεί να το διαμορφώσετε ρητά
- Ισχύς σήματος: Μετακινήστε τη συσκευή πιο κοντά στο router
- Παρεμβολές: Άλλες συσκευές, φούρνοι μικροκυμάτων ή τοίχοι μπορούν να προκαλέσουν παρεμβολές
Πρόβλημα: Η σύνδεση WiFi αποσυνδέεται συχνά
Συμπτώματα: Διακοπτόμενη συνδεσιμότητα
Λύση:
- Ελέγξτε σταθερότητα δρομολογητή και σκεφτείτε επανεκκίνηση
- Ενημερώστε το firmware της συσκευής
- Χρησιμοποιήστε στατική IP αντί DHCP
- Μειώστε την απόσταση από το router ή προσθέστε WiFi extender
- Ελέγξτε για παρεμβολές από άλλες συσκευές
- Βεβαιωθείτε ότι το τροφοδοτικό είναι επαρκές (ειδικά για Raspberry Pi)
Υπηρεσίες Cloud
Πρόβλημα: Αδυναμία σύνδεσης στο Azure IoT Hub
Σφάλμα: Αποτυχία πιστοποίησης, άρνηση σύνδεσης
Λύση:
- Επαλήθευση διαπιστευτηρίων:
- Ελέγξτε ότι η συμβολοσειρά σύνδεσης είναι σωστή
- Βεβαιωθείτε ότι δεν υπάρχουν περιττοί κενά ή αλλαγές γραμμής στη συμβολοσειρά σύνδεσης
- Ελέγξτε την εγγραφή της συσκευής: Η συσκευή πρέπει να είναι καταχωρημένη στο IoT Hub
- Τείχος προστασίας / proxy: Εξασφαλίστε ότι επιτρέπεται η εξερχόμενη κίνηση MQTT (θύρα 8883) ή HTTPS (θύρα 443)
- Περιοχή IoT Hub: Βεβαιωθείτε ότι το IoT Hub λειτουργεί και δεν βρίσκεται σε διαφορετική περιοχή που προκαλεί καθυστερήσεις
- Όρια ποσόστωσης: Ελέγξτε αν έχουν ξεπεραστεί τα όρια της δωρεάν βαθμίδας
- Δοκιμή σύνδεσης:
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
Πρόβλημα: Οι Azure Functions δεν ενεργοποιούνται
Συμπτώματα: Αποστολή μηνυμάτων αλλά η συνάρτηση δεν εκτελείται
Λύση:
- Ελέγξτε ότι η Function App τρέχει (δεν είναι σταματημένη)
- Επαληθεύστε τη συμβολοσειρά σύνδεσης στις ρυθμίσεις της Function App
- Ελέγξτε τα αρχεία καταγραφής συναρτήσεων στο Azure Portal
- Βεβαιωθείτε ότι το συμβατό endpoint Event Hub έχει ρυθμιστεί σωστά
- Επαληθεύστε ότι η μορφή μηνύματος ταιριάζει με τις προσδοκίες της συνάρτησης
- Ελέγξτε το σχέδιο υπηρεσίας της Function App (consumption έναντι dedicated)
MQTT
Πρόβλημα: Η σύνδεση MQTT αποτυγχάνει
Σφάλμα: Απόρριψη σύνδεσης, αποτυχία αυθεντικοποίησης
Λύση:
- Διεύθυνση broker: Επιβεβαιώστε ότι το URL/IP του broker είναι σωστό
- Θύρα: Ελέγξτε τον αριθμό θύρας (1883 για μη κρυπτογραφημένη, 8883 για TLS)
- Αυθεντικοποίηση: Επιβεβαιώστε όνομα χρήστη/κωδικό πρόσβασης αν απαιτείται
- TLS/SSL: Βεβαιωθείτε ότι τα πιστοποιητικά είναι έγκυρα και αξιόπιστα
- Τείχος προστασίας: Ελέγξτε ότι η θύρα δεν είναι μπλοκαρισμένη
- Δοκιμή με MQTT client: Χρησιμοποιήστε MQTT Explorer ή mosquitto_pub/sub για δοκιμή
Πρόβλημα: Μηνύματα MQTT δεν λαμβάνονται
Συμπτώματα: Μηνύματα δημοσιεύονται αλλά δεν λαμβάνονται από συνδρομητές
Λύση:
- Ονόματα θεμάτων: Επιβεβαιώστε ότι το θέμα του συνδρομητή ταιριάζει ακριβώς με το θέμα του εκδότη
- Επίπεδο QoS: Δοκιμάστε QoS 1 ή 2 αντί για 0
- Μπαλαντέρ: Ελέγξτε ότι τα μπαλαντέρ χρησιμοποιούνται σωστά (
+για ένα επίπεδο,#για πολλαπλά επίπεδα) - Διατηρημένα μηνύματα: Ο εκδότης μπορεί να ορίσει σημαία διατήρησης για να κρατήσει το τελευταίο μήνυμα
- Χρονισμός σύνδεσης: Βεβαιωθείτε ότι ο συνδρομητής συνδέεται πριν δημοσιευτούν τα μηνύματα
Προβλήματα Αισθητήρων και Εκτελεστών
Αισθητήρες Grove
Πρόβλημα: Ο αισθητήρας επιστρέφει λανθασμένες τιμές
Συμπτώματα: Οι ενδείξεις είναι 0, -1 ή παράλογες τιμές
Λύση:
- Ελέγξτε τις συνδέσεις: Βεβαιωθείτε ότι ο αισθητήρας είναι σωστά συνδεδεμένος
- Σωστή θύρα: Επιβεβαιώστε ότι ο αισθητήρας είναι στην σωστή θύρα:
- Αναλογικοί αισθητήρες → Αναλογικές θύρες (A0, A2, A4)
- Ψηφιακοί αισθητήρες → Ψηφιακές θύρες (D5, D16, D18, κ.α.)
- I2C αισθητήρες → Θύρες I2C
- Βαθμονόμηση: Κάποιοι αισθητήρες χρειάζονται βαθμονόμηση (υγρασία εδάφους, φως)
- Επανεκκίνηση τροφοδοσίας: Αποσυνδέστε και ξανασυνδέστε τον αισθητήρα
- Δελτίο τεχνικών στοιχείων: Ελέγξτε προδιαγραφές και απαιτήσεις αισθητήρα
Πρόβλημα: Αισθητήρας χωρητικής υγρασίας εδάφους δείχνει πάντα υγρό
Συμπτώματα: Ο αισθητήρας δείχνει υψηλή υγρασία ακόμα και όταν είναι στεγνό
Λύση:
- Απαιτείται βαθμονόμηση: Οι αισθητήρες εδάφους χρειάζονται βαθμονόμηση:
- Μετρήστε τιμή στον αέρα (στεγνή βάση)
- Μετρήστε τιμή στο νερό (βρεγμένη βάση)
- Χαρτογραφήστε τις μετρήσεις μεταξύ αυτών των τιμών
- Ελέγξτε την επίστρωση: Οι αισθητήρες υγρασίας μπορεί να φθαρούν αν η επίστρωση καταστραφεί
- Τοποθέτηση: Βεβαιωθείτε ότι ο αισθητήρας είναι πλήρως τοποθετημένος στο έδαφος
Πρόβλημα: Λανθασμένες μετρήσεις θερμοκρασίας/υγρασίας
Συμπτώματα: DHT11/DHT22 δείχνει λάθος θερμοκρασία ή υγρασία
Λύση:
- Τοποθέτηση αισθητήρα: Αποφύγετε άμεσο ηλιακό φως, πηγές θερμότητας ή ρεύματα αέρα
- Χρόνος ζέστασης: Επιτρέψτε στον αισθητήρα 2 δευτερόλεπτα μετά το άνοιγμα πριν τη μέτρηση
- Συχνότητα ανάγνωσης: Οι αισθητήρες DHT χρειάζονται χρόνο μεταξύ των αναγνώσεων (τουλάχιστον 2 δευτερόλεπτα)
- Ελέγξτε για συμπύκνωση: Μπορεί να επηρεάζει τις ενδείξεις
- Ποιότητα αισθητήρα: Ο DHT11 είναι λιγότερο ακριβής από τον DHT22
Κάμερα
Πρόβλημα: Η κάμερα δεν ανιχνεύεται στο Raspberry Pi
Σφάλμα: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'
Λύση:
- Ενεργοποιήστε το interface της κάμερας:
Μεταβείτε σε Interface Options → Camera → Enablesudo raspi-config - Ελέγξτε την καλωδίωση ribbon: Βεβαιωθείτε ότι το καλώδιο κάμερας είναι σωστά εισαγμένο
- Το μπλε μέρος κοιτά τα USB ports στο Pi Zero
- Το μπλε μέρος κοιτά μακριά από τα USB ports στο Pi 4
- Ενημερώστε το firmware:
sudo apt update sudo apt full-upgrade sudo reboot - Δοκιμάστε την κάμερα:
raspistill -o test.jpg
Πρόβλημα: Οι εικόνες της κάμερας έχουν κακή ποιότητα
Συμπτώματα: Θολές, σκοτεινές ή ξεθωριασμένες εικόνες
Λύση:
- Εστίαση: Αφαιρέστε το προστατευτικό φιλμ από τον φακό, ρυθμίστε την εστίαση αν είναι δυνατόν
- Φωτισμός: Διασφαλίστε επαρκή φωτισμό
- Ρυθμίσεις κάμερας: Προσαρμόστε έκθεση, ISO, ισορροπία λευκού στον κώδικα
- Σταθερότητα: Κρατήστε την κάμερα ακίνητη, χρησιμοποιήστε τρίποδο αν χρειάζεται
- Ανάλυση: Μην ξεπερνάτε τη μέγιστη ανάλυση της κάμερας
Μικρόφωνο και Ηχείο
Πρόβλημα: Καμία είσοδος/έξοδος ήχου
Συμπτώματα: Το μικρόφωνο δεν καταγράφει, το ηχείο δεν παίζει
Λύση:
- Ελέγξτε τις συνδέσεις: Βεβαιωθείτε ότι οι συσκευές ήχου είναι σωστά συνδεδεμένες
- Δοκιμάστε το υλικό:
- Ηχείο:
speaker-test -t wav -c 2 - Μικρόφωνο:
arecord -lγια λίστα,arecord test.wavγια εγγραφή
- Ηχείο:
- Ρυθμίσεις έντασης: Ελέγξτε και προσαρμόστε την ένταση:
alsamixer - Επιλέξτε συσκευή ήχου: Καθορίστε τη σωστή συσκευή στον κώδικα
- Προβλήματα οδηγών: Ενημερώστε ALSA ή εγκαταστήστε ξανά τους οδηγούς ήχου
Πρόβλημα: Το ReSpeaker hat δεν λειτουργεί
Συμπτώματα: Η συσκευή ήχου δεν ανιχνεύεται
Λύση:
- Εγκαταστήστε οδηγούς:
git clone https://github.com/HinTak/seeed-voicecard cd seeed-voicecard sudo ./install.sh sudo reboot - Ελέγξτε την εγκατάσταση:
arecord -lπρέπει να εμφανίζει το ReSpeaker - Ενημερώστε το firmware: Ορισμένες εκδόσεις Pi OS χρειάζονται ενημερώσεις οδηγών
- Ελέγξτε τη σύνδεση: Βεβαιωθείτε ότι το hat είναι σωστά συνδεδεμένο στα GPIO pins
Προβλήματα Περιβάλλοντος Ανάπτυξης
VS Code
Πρόβλημα: Το τερματικό δεν ενεργοποιεί αυτόματα το virtual environment
Συμπτώματα: Το τερματικό ανοίγει αλλά το venv δεν ενεργοποιείται
Λύση:
- Ορίστε τον διερμηνέα Python: Command Palette → "Python: Select Interpreter" → Επιλέξτε το venv
- Επανεκκινήστε το VS Code μετά την επιλογή του διερμηνέα
- Ελέγξτε τις ρυθμίσεις: Στο
settings.json, προσθέστε:"python.terminal.activateEnvironment": true
Πρόβλημα: Ο κώδικας δεν τρέχει στη συσκευή
Συμπτώματα: Ο κώδικας τρέχει αλλά δεν συμβαίνει τίποτα στη συσκευή
Λύση:
- Επιβεβαιώστε ότι ο κώδικας έχει αποθηκευτεί (ελέγξτε την κουκκίδα στην καρτέλα αρχείου)
- Ελέγξτε ποια Python τρέχει:
which pythonήwhere python - Για Wio Terminal: Βεβαιωθείτε ότι ο κώδικας ανέβηκε μέσω PlatformIO (πατήστε κουμπί μεταφόρτωσης)
- Για Raspberry Pi: Συνδεθείτε με SSH στο Pi και τρέξτε εκεί τον κώδικα
- Ελέγξτε το παράθυρο εξόδου για σφάλματα
Πρόβλημα: Το IntelliSense δεν δείχνει συναρτήσεις βιβλιοθήκης
Συμπτώματα: Δεν εμφανίζει αυτόματη συμπλήρωση για εισαγόμενα modules
Λύση:
- Βεβαιωθείτε ότι η βιβλιοθήκη είναι εγκατεστημένη στο τρέχον περιβάλλον
- Κάντε επαναφόρτωση παραθύρου VS Code
- Ελέγξτε ότι ο διερμηνέας Python είναι σωστός
- Εγκαταστήστε type stubs αν υπάρχουν:
pip install types-<library-name>
Python Virtual Environments
Πρόβλημα: Δεν μπορεί να δημιουργηθεί virtual environment
Σφάλμα: The virtual environment was not created successfully
Λύση:
- Εγκαταστήστε το module venv:
- Ubuntu/Debian:
sudo apt install python3-venv - macOS: Περιλαμβάνεται με την Python
- Windows: Επανεγκαταστήστε την Python με όλα τα components
- Ubuntu/Debian:
- Ελέγξτε την εγκατάσταση Python: Βεβαιωθείτε ότι η Python είναι σωστά εγκατεστημένη
- Χρησιμοποιήστε πλήρη διαδρομή: Δοκιμάστε
python3 -m venv .venvμε ρητή κλήση python3
Πρόβλημα: Πακέτα εγκαθίστανται σε λάθος τοποθεσία
Συμπτώματα: Σφάλμα εισαγωγής μετά την εγκατάσταση πακέτου
Λύση:
- Επιβεβαιώστε ότι το venv είναι ενεργοποιημένο: Το prompt πρέπει να δείχνει
(.venv) - Ελέγξτε τη θέση του pip:
which pipπρέπει να δείχνει σε.venv/bin/pip - Επανεγκαταστήστε στο venv: Ενεργοποιήστε το venv, μετά
pip install <package> - Μην χρησιμοποιείτε sudo με pip μέσα σε virtual environment
Πρόβλημα: Το virtual environment δεν είναι φορητό
Συμπτώματα: Το venv δεν δουλεύει μετά τη μεταφορά ή σε άλλη υπολογιστή
Λύση:
- Μην μετακινείτε τα venv: Διαγράψτε και ξαναδημιουργήστε σε νέα θέση
- Χρησιμοποιήστε requirements.txt:
pip freeze > requirements.txt pip install -r requirements.txt - Επαναδημιουργήστε το venv:
python3 -m venv .venv source .venv/bin/activate # ή activate.bat στα Windows pip install -r requirements.txt
Εξαρτήσεις
Πρόβλημα: Η εγκατάσταση πακέτου αποτυγχάνει
Σφάλμα: Διάφορα σφάλματα pip κατά την εγκατάσταση
Λύση:
- Ενημερώστε το pip:
pip install --upgrade pip - Εγκαταστήστε εργαλεία κατασκευής:
- Ubuntu/Debian:
sudo apt install build-essential python3-dev - macOS:
xcode-select --install - Windows: Εγκαταστήστε Visual Studio Build Tools
- Ubuntu/Debian:
- Ελέγξτε τη σύνδεση στο διαδίκτυο
- Δοκιμάστε διαφορετικό δείκτη πακέτων:
pip install --index-url https://pypi.org/simple/ <package> - Εγκαταστήστε συγκεκριμένη έκδοση:
pip install <package>==<version>
Πρόβλημα: Σύγκρουση εξαρτήσεων
Σφάλμα: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed
Λύση:
- Χρησιμοποιήστε καθαρό virtual environment για κάθε έργο
- Ενημερώστε τα πακέτα:
pip install --upgrade <package> - Ελέγξτε τις απαιτήσεις: Χρησιμοποιείστε
pip checkγια να βρείτε συγκρούσεις - Εγκαταστήστε συμβατές εκδόσεις: Ορίστε εύρος εκδόσεων στο requirements.txt
Προβλήματα Απόδοσης
Πρόβλημα: Ο κώδικας τρέχει αργά
Συμπτώματα: Καθυστερήσεις, timeout, αδράνεια
Λύση:
- Μειώστε τη συχνότητα ανάγνωσης αισθητήρα: Μην διαβάζετε τους αισθητήρες πολύ συχνά
- Βελτιστοποιήστε βρόχους: Αποφύγετε την πολυάσχολη αναμονή, χρησιμοποιήστε sleep() ή καθυστερήσεις
- Προβλήματα μνήμης:
- Κλείστε μη απαραίτητες εφαρμογές
- Απελευθερώστε χώρο αποθήκευσης
- Παρακολουθήστε με
topήhtopστο Pi
- Ταχύτητα κάρτας SD: Χρησιμοποιήστε γρηγορότερη κάρτα SD ή SSD για Raspberry Pi
- Καθυστερήσεις δικτύου: Χρησιμοποιήστε ασύγχρονες λειτουργίες για κλήσεις δικτύου
Πρόβλημα: Σφάλματα έλλειψης μνήμης
Σφάλμα: MemoryError ή πάγωμα συστήματος
Λύση:
- Για Raspberry Pi:
- Κλείστε μη απαραίτητες εφαρμογές
- Αυξήστε χώρο swap
- Χρησιμοποιήστε ελαφρύτερο λειτουργικό (Lite έκδοση)
- Αναβαθμίστε RAM (το Pi 4 διαθέτει επιλογές 2/4/8GB)
- Για Wio Terminal:
- Μειώστε τα μεγέθη buffer
- Χρησιμοποιήστε μικρότερες εικόνες
- Βελτιώστε τη χρήση των strings
- Ελέγξτε για διαρροές μνήμης (μη απελευθερωμένη μνήμη)
Πρόβλημα: Απώλεια ή καταστροφή δεδομένων
Συμπτώματα: Λείπουν μηνύματα, κατεστραμμένα αρχεία
Λύση:
- Προβλήματα κάρτας SD:
- Χρησιμοποιήστε ποιοτικές κάρτες SD (αποφύγετε φτηνές/μαϊμού)
- Κάντε τακτικά backup
- Κλείσιμο με σωστό τρόπο (μην κόβετε την τροφοδοσία)
- Υπερχείλιση buffer: Αυξήστε τα μεγέθη buffer στον κώδικα
- Αξιοπιστία δικτύου: Υλοποιήστε λογική επανάληψης και διαχείριση σφαλμάτων
- Ποιότητα υπηρεσίας: Χρησιμοποιήστε MQTT QoS 1 ή 2 για σημαντικά μηνύματα
Συνηθισμένα Μηνύματα Σφάλματος
ModuleNotFoundError: No module named 'X'
Αιτία: Το πακέτο δεν είναι εγκατεστημένο ή το virtual environment δεν είναι ενεργό
Λύση:
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
Αιτία: Η θύρα χρησιμοποιείται ήδη από άλλη διεργασία
Λύση:
- Βρείτε τη διεργασία που χρησιμοποιεί τη θύρα:
lsof -i :<port>ήnetstat -ano | findstr :<port> - Τερματίστε τη διεργασία ή χρησιμοποιήστε άλλη θύρα στον κώδικά σας
SSL: CERTIFICATE_VERIFY_FAILED
Αιτία: Η επαλήθευση του πιστοποιητικού SSL αποτυγχάνει
Λύση:
- Ενημερώστε τα πιστοποιητικά:
pip install --upgrade certifi - Ελέγξτε ότι η ώρα συστήματος είναι σωστή:
date - Μόνο για ανάπτυξη (όχι παραγωγή): Απενεργοποιήστε την επαλήθευση στον κώδικα
IndentationError: unexpected indent
Αιτία: Προβλήματα εσοχής Python (ανάμειξη tabs/κενών)
Λύση:
- Χρησιμοποιήστε συνεπή εσοχή (4 κενά είναι το πρότυπο Python)
- Ρυθμίστε τον επεξεργαστή για χρήση κενών αντί για tabs
- 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: Ελέγξτε το hardware.md για πληροφορίες ειδικές για hardware
- Wiki Seeed Studio: Seeed Studio Wiki για στοιχεία Grove
2. Αναζητήστε Παρόμοια Προβλήματα
- GitHub Issues: Αναζητήστε υφιστάμενα ζητήματα
- Stack Overflow: Αναζητήστε μηνύματα σφάλματος
- Φόρουμ συσκευών: Ελέγξτε φόρουμ Raspberry Pi ή Arduino
3. Δημιουργήστε ένα GitHub Issue
Αν δεν βρείτε λύση:
- Μεταβείτε στο GitHub Issues
- Πατήστε "New Issue"
- Παρέχετε:
- Καθαρή περιγραφή του προβλήματος
- Βήματα αναπαραγωγής
- Μηνύματα σφάλματος (πλήρες κείμενο)
- Εκδόσεις hardware/software
- Τι έχετε ήδη δοκιμάσει
- Στιγμιότυπα οθόνης αν σχετίζονται
4. Ενταχθείτε στην Κοινότητα
- Discord: Microsoft Foundry Discord
- Microsoft Learn: Microsoft Learn IoT
5. Παρέχετε Καλά Αναφορές Σφαλμάτων
Μια καλή αναφορά σφάλματος περιλαμβάνει:
- Περιβάλλον: Λειτουργικό σύστημα, έκδοση Python, χρησιμοποιούμενος εξοπλισμός
- Βήματα αναπαραγωγής: Ακριβή βήματα που προκαλούν το πρόβλημα
- Αναμενόμενη συμπεριφορά: Τι θα έπρεπε να συμβεί
- Πραγματική συμπεριφορά: Τι πραγματικά συμβαίνει
- Μηνύματα σφάλματος: Ολόκληρο το κείμενο σφάλματος, όχι στιγμιότυπα οθόνης
- Κώδικας: Ελάχιστο παράδειγμα κώδικα που αναπαράγει το πρόβλημα
Συμβουλές για Πρόληψη
Γενικές Καλές Πρακτικές
- Διατηρήστε αντίγραφα ασφαλείας: Τακτικά αντίγραφα των λειτουργικών καρτών SD/κώδικα
- Καταγράψτε τις αλλαγές: Σημειώστε τι λειτουργεί στα σχόλια
- Έλεγχος εκδόσεων: Χρησιμοποιήστε το git για παρακολούθηση των αλλαγών στον κώδικα
- Δοκιμάζετε σταδιακά: Δοκιμάστε μικρές αλλαγές πριν τις συνδυάσετε
- Διαβάστε τα μηνύματα σφάλματος: Συχνά λένε ακριβώς τι δεν πάει καλά
- Ενημερώνετε τακτικά: Κρατάτε το λογισμικό/firmware ενημερωμένο
- Χρησιμοποιείτε ποιοτικά εξαρτήματα: Αποφύγετε φτηνά καλώδια/τροφοδοτικά
- Σταθερή τροφοδοσία: Χρησιμοποιήστε κατάλληλη τροφοδοσία (ειδικά για Pi)
Ροή Ανάπτυξης
- Ξεκινήστε απλά: Αρχίστε με παράδειγμα κώδικα που λειτουργεί
- Μια αλλαγή τη φορά: Διευκολύνει τον εντοπισμό του προβλήματος
- Δοκιμάζετε συχνά: Εντοπίστε τα προβλήματα νωρίς
- Κρατήστε τον κώδικα καθαρό: Οργανώστε αρχεία και κώδικα λογικά
- Κάντε σχόλια στον κώδικα: Ο μελλοντικός εαυτός σας θα το εκτιμήσει
Αυτός ο οδηγός αντιμετώπισης προβλημάτων συντηρείται από την κοινότητα. Αν βρείτε λύση σε κάποιο πρόβλημα που δεν αναφέρεται εδώ, παρακαλούμε σκεφτείτε να συνεισφέρετε για να βοηθήσετε και άλλους!
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI Co-op Translator. Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις μπορεί να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.