30 KiB
Trikčių šalinimo vadovas
Šis vadovas padės jums išspręsti dažniausias problemas dirbant su IoT for Beginners mokymosi medžiaga. Problemų kategorijos suskirstytos patogiam naršymui.
Turinys
- Įdiegimo problemos
- Techninės įrangos problemos
- Ryšio problemos
- Jutiklių ir aktuatorių problemos
- Kūrimo aplinkos problemos
- Veikimo problemos
- Dažnos klaidų žinutės
- Pagalbos gavimas
Įdiegimo problemos
Python įdiegimas
Problema: Python versija per sena
Klaida: Reikalinga Python 3.6 arba naujesnė versija
Sprendimas:
- Atsisiųskite naujausią Python 3 versiją iš python.org
- Įdiegimo metu Windows sistemoje pažymėkite „Add Python to PATH“
- Patikrinkite įdiegimą:
python3 --version
Problema: kelios Python versijos kelia konfliktų
Simptomai: Paleidžiama netinkama Python versija, paketai įdiegiami netikroje vietoje
Sprendimas:
- Windows: naudokite
py -3vietojepython, kad aiškiai paleisti Python 3 - macOS/Linux: naudokite
python3vietojepython - Visada kurkite ir naudokite virtualias aplinkas projektams
Problema: nėra pip komandos
Klaida: 'pip' nėra atpažinta kaip vidinė ar išorinė komanda
Sprendimas:
- Pabandykite vietoje
pipnaudotipip3 - Arba naudokite
python -m piparbapython3 -m pip - Įsitikinkite, kad Python yra pridėtas prie PATH (perkurdami Python ir pažymėdami parinktį)
VS Code ir plėtiniai
Problema: neveikia Pylance plėtinys
Simptomai: nėra Python IntelliSense, kodo užbaigimo ar tipų tikrinimo
Sprendimas:
- Atidarykite VS Code komandų paletę (
Ctrl+Shift+ParbaCmd+Shift+P) - Vykdykite „Python: Select Interpreter“
- Pasirinkite tinkamą Python interpretatorių (virtualią aplinką, jei naudojate)
- Perkraukite VS Code langą
Problema: VS Code nemato virtualios aplinkos
Simptomai: pasirinktas netinkamas Python interpretatorius
Sprendimas:
- Įsitikinkite, kad terminale suaktyvinote virtualią aplinką
- Atidarykite komandų paletę ir įvykdykite „Python: Select Interpreter“
- Pasirinkite interpretatorių iš
.venvaplanko - Patikrinkite, ar būsenos juostoje (apatinėje kairėje) rodoma tinkama Python versija
PlatformIO (Wio Terminal)
Problema: nepavyksta įdiegti PlatformIO
Klaida: įvairios klaidos įdiegimo metu
Sprendimas:
- Įsitikinkite, kad VS Code yra atnaujintas
- Pirmiausia įdiekite C/C++ plėtinį
- Po PlatformIO diegimo perkraukite VS Code
- Patikrinkite interneto ryšį (PlatformIO atsisiunčia didelius failus)
Problema: PlatformIO nemato plokštės
Simptomai: negalima įkelti kodo į Wio Terminal
Sprendimas:
- Išbandykite kitą USB laidą (kai kurie laidai tik įkrovimui)
- Patikrinkite Įrenginių tvarkytuvę (Windows) arba
ls /dev/tty*(macOS/Linux) - Įdiekite arba atnaujinkite USB tvarkykles
- Išbandykite kitą USB lizdą
- Du kartus greitai perstumkite Wio Terminal įjungimo jungiklį, kad įeinant į bootloader režimą
Problema: PlatformIO kompiliavimo klaidos
Klaida: fatal error: Arduino.h: No such file or directory
Sprendimas:
- Ištrinkite
.pioaplanką projekte - Vykdykite „PlatformIO: Rebuild“ komandą per komandų paletę
- Įsitikinkite, kad
platformio.inituri teisingą plokštės konfigūraciją:[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino
Grove bibliotekos
Problema: Grove bibliotekos importas nepavyksta Raspberry Pi
Klaida: ModuleNotFoundError: No module named 'grove'
Sprendimas:
- Perinstaliuokite Grove bibliotekas:
cd ~ git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . - Jei naudojate virtualią aplinką, gali prireikti įdiegti globaliai arba nukopijuoti bibliotekas
- Įsitikinkite, kad I2C įjungtas:
sudo raspi-config nonint do_i2c 0
Problema: Grove jutiklis neaptinkamas
Klaida: IOError: [Errno 121] Remote I/O error
Sprendimas:
- Patikrinkite fizinius ryšius (įsitikinkite, kad Grove laidas pilnai įkištas)
- Įsitikinkite, kad jutiklis prijungtas prie teisingo prievado (analoginio, skaitmeninio, I2C, UART)
- Vykdykite
i2cdetect -y 1, kad pamatytumėte ar prietaisas rodomas I2C autobuse - Išbandykite kitą Grove laidą
- Įsitikinkite, kad Grove Base Hat tinkamai sėdi ant Raspberry Pi GPIO jungčių
Techninės įrangos problemos
Raspberry Pi
Problema: Raspberry Pi neužsikrauna
Simptomai: nėra vaizdo, LED neveikia arba rodomas vaivorykštės ekranas
Sprendimas:
- Patikrinkite maitinimą: naudokite oficialų 5V 3A USB-C maitinimo šaltinį Pi 4 modeliui
- SD kortelės problemos:
- Performatuokite SD kortelę ir iš naujo įdiekite Raspberry Pi OS
- Išbandykite kitą SD kortelę (naudokite rekomenduojamas markes)
- Įsitikinkite, kad SD kortelė tinkamai įstatyta
- Patikrinkite HDMI ryšį: išbandykite abu HDMI lizdus Pi 4, naudokite lizdą arčiau maitinimo
Problema: negalima prisijungti prie Raspberry Pi per SSH
Simptomai: atmetimas arba laiko limitas
Sprendimas:
- Įjunkite SSH:
- Naudodami Raspberry Pi Imager, konfigūruokite SSH papildomuose nustatymuose
- Arba sukurkite tuščią failą pavadinimu
ssh(be plėtinio) įkrovos skaidinyje
- Suraskite Pi IP adresą:
- Patikrinkite maršrutizatoriaus prijungtų įrenginių sąrašą
- Vykdykite
ping raspberrypi.local(jei veikia mDNS) - Naudokite tinklo skaitymo įrankius, pvz.,
nmaparba Angry IP Scanner
- Patikrinkite tinklą:
- Įsitikinkite, kad Pi ir jūsų kompiuteris yra tame pačiame tinkle
- Išbandykite laidinį ryšį vietoje WiFi
- Patikrinkite vartotojo vardą ir slaptažodį (numatytasis: vartotojas
pi, slaptažodisraspberry)
Problema: Grove Base Hat neatpažįstamas
Simptomai: jutikliai neveikia, I2C klaidos
Sprendimas:
- Įsitikinkite, kad Base Hat tinkamai pritvirtintas prie visų GPIO kontaktų
- Patikrinkite ar nėra sulenktų kontaktų ant Pi arba Base Hat
- Įjunkite I2C sąsają:
sudo raspi-config nonint do_i2c 0 sudo reboot - Patikrinkite, ar I2C veikia:
i2cdetect -y 1
Problema: Raspberry Pi veikia lėtai
Simptomai: sąsaja stringa, lėtas atsakas
Sprendimas:
- Patikrinkite SD kortelės greitį (naudokite Class 10 ar greitesnę, arba SSD per USB)
- Atlaisvinkite vietos diske: naudokite
df -h, ištrinkite nereikalingus failus - Sumažinkite GPU atmintį per
raspi-config, jei nenaudojate daug kameros/vaizdo - Uždarykite nereikalingas programas
- Jei naudojate Pi 3 ar senesnį, apsvarstykite atnaujinimą į Pi 4 su didesne atmintimi
Wio Terminal
Problema: Wio Terminal ekranas lieka tuščias
Simptomai: nėra vaizdo po kodo įkėlimo
Sprendimas:
- Patikrinkite, ar kodas inicijuoja ekraną (TFT_eSPI biblioteka)
- Atnaujinkite Wio Terminal programinę įrangą iš Seeed Wiki
- Pridėkite ekrano inicijavimo kodą:
#include <TFT_eSPI.h> TFT_eSPI tft; tft.begin(); tft.fillScreen(TFT_BLACK); - Išbandykite pavyzdinį sketch'ą iš PlatformIO, kad patikrintumėte aparatūrą
Problema: Wio Terminal neveikia WiFi
Simptomai: negalima prisijungti prie WiFi, tinklo klaidos
Sprendimas:
- Atnaujinkite WiFi programinę įrangą: vadovaukitės Wio Terminal WiFi programinės įrangos atnaujinimo gidu
- Patikrinkite WiFi prisijungimo duomenis: įsitikinkite, kad SSID ir slaptažodis teisingi
- WiFi dažnis: Wio Terminal palaiko tik 2.4GHz WiFi (ne 5GHz)
- Signalio stiprumas: priartinkite prie maršrutizatoriaus
- Maršrutizatoriaus nustatymai: kai kurios įmonių/WPA-Enterprise tinklai gali neveikti
Problema: Kompiuteris neaptinka Wio Terminal
Simptomai: USB įrenginio nemato
Sprendimas:
- Išbandykite kitą USB laidą: naudokite duomenų kabelį, ne tik įkrovimui skirtą
- Įjunkite bootloader režimą: greitai perstumkite maitinimo jungiklį žemyn du kartus
- Mėlyna LED turėtų pulsoti, įrenginys matomas kaip „Arduino“ Įrenginių tvarkytuvėje
- Įdiekite tvarkykles (Windows):
- Atsisiųskite ir įdiekite Seeed USB tvarkyklę
- Pabandykite kitą USB lizdą: venkite USB šakotuvų, naudokite tiesioginį ryšį
- Atnaujinkite sistemos USB tvarkykles
Problema: Wio Terminal jutikliai neveikia
Simptomai: Grove jutikliai nepateikia duomenų
Sprendimas:
- Patikrinkite Grove laido jungtis
- Įsitikinkite, kad naudojate tinkamą Grove prievadą (kairį arba dešinį)
- Įtraukite tinkamas jutiklio bibliotekas
- Patikrinkite jutiklio maitinimo reikalavimus
- Testuokite jutiklį su pavyzdiniu bibliotekos kodu
Virtualus įrenginys (CounterFit)
Problema: negalima paleisti CounterFit programėlės
Klaida: įvairios Python klaidos paleidimo metu
Sprendimas:
- Įsitikinkite, kad virtuali aplinka suaktyvinta
- Įdiekite arba perinstaliuokite CounterFit:
pip install CounterFit - Patikrinkite, ar prievadas 5000 nėra jau naudojamas:
- Windows:
netstat -ano | findstr :5000 - macOS/Linux:
lsof -i :5000
- Windows:
- Nutraukite procesą, naudojantį prievadą 5000 arba naudokite kitą prievadą:
counterfit --port 5001
Problema: negalima prisijungti prie CounterFit iš kodo
Klaida: prisijungimas užblokuotas arba laiko limitas
Sprendimas:
- Patikrinkite, ar CounterFit veikia: atidarykite naršyklę
http://127.0.0.1:5000 - Patikrinkite, ar kodo URL atitinka CounterFit adresą
- Įsitikinkite, kad ugniasienė neužblokuoja ryšio
- Pabandykite paleisti iš naujo tiek CounterFit programėlę, tiek savo kodą
Problema: sensoriai nepasirodo CounterFit
Simptomai: sukurti sensoriai nerodomi CounterFit sąsajoje
Sprendimas:
- Sukurkite sensorius CounterFit vartotojo sąsajoje prieš paleidžiant kodą
- Atnaujinkite naršyklės puslapį
- Patikrinkite, ar sensoriaus tipas atitinka kodo lūkesčius
- Išvalykite naršyklės talpyklą
Ryšio problemos
WiFi ryšys
Problema: įrenginys negali prisijungti prie WiFi
Simptomai: prisijungimo laiko limitas, autentifikacijos klaida
Sprendimas:
- Patikrinkite SSID ir slaptažodį: įsitikinkite, kad prisijungimo duomenys teisingi
- WiFi dažnis: dauguma IoT įrenginių palaiko tik 2.4GHz (ne 5GHz)
- Maršrutizatoriaus nustatymai:
- Jei įjungta, išjunkite AP izoliuotumą
- Naudokite WPA2-PSK saugumą (venkite WPA3, WEP ar atvirų tinklų)
- Įsitikinkite, kad DHCP įjungtas
- Paslėpti tinklai: jei SSID paslėptas, gali reikėti jį aiškiai sukonfigūruoti
- Signalo stiprumas: priartinkite įrenginį prie maršrutizatoriaus
- Trukdžiai: kiti įrenginiai, mikrobangų krosnelės ar sienos gali trukdyti
Problema: WiFi ryšys dažnai nutrūksta
Simptomai: nepastovus ryšys
Sprendimas:
- Patikrinkite maršrutizatoriaus stabilumą, apsvarstykite perkrovimą
- Atnaujinkite įrenginio programinę įrangą
- Naudokite statinį IP vietoje DHCP
- Sumažinkite atstumą iki maršrutizatoriaus arba įdiekite WiFi kartotuvą
- Patikrinkite trukdžius iš kitų įrenginių
- Įsitikinkite, kad maitinimas tinkamas (ypač Raspberry Pi)
Debesų paslaugos
Problema: negalima prisijungti prie Azure IoT Hub
Klaida: autentifikacija nepavyko, prisijungimas atmestas
Sprendimas:
- Patikrinkite prisijungimo duomenis:
- Įsitikinkite, kad prisijungimo eilutė teisinga
- Įsitikinkite, kad nėra papildomų tarpų ar eilučių pertraukų prisijungimo eilutėje
- Patikrinkite įrenginio registraciją: įrenginys turi būti užregistruotas IoT Hub
- Ugniasienė/proxy: įsitikinkite, kad išeinantis MQTT (prievadas 8883) arba HTTPS (prievadas 443) ryšys leidžiamas
- IoT Hub regionas: įsitikinkite, kad IoT Hub veikia ir nėra kitame regione, kuris gali sukelti vėlavimus
- Kvotų ribos: patikrinkite, ar nemokamo plano apribojimai neviršyti
- Patikrinkite ryšį:
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
Problema: Azure Functions nesugeba paleisti funkcijos
Simptomai: žinutės siunčiamos, bet funkcija neįvykdoma
Sprendimas:
- Patikrinkite, ar Function App veikia (nenustatyta sustabdyta)
- Patikrinkite prisijungimo eilutę Function App nustatymuose
- Peržiūrėkite funkcijų žurnalus Azure portale
- Įsitikinkite, kad Event Hub suderinamas galutinis taškas yra teisingai sukonfigūruotas
- Patikrinkite, ar žinutės formatas atitinka funkcijos lūkesčius
- Patikrinkite Function App paslaugų planą (vartojimo arba dedikuotą)
MQTT
Problema: MQTT ryšys nepavyksta
Klaida: Prisijungimas atmestas, autentifikacija nepavyko
Sprendimas:
- Brokerio adresas: Patikrinkite, ar brokerio URL/IP yra teisingas
- Prievadas: Patikrinkite prievado numerį (1883 šifravimui nešifruotam, 8883 TLS)
- Autentifikacija: Patikrinkite vartotojo vardą/slaptažodį, jei reikia
- TLS/SSL: Įsitikinkite, kad sertifikatai yra galiojantys ir patikimi
- Ugnies siena: Patikrinkite, ar prievadas nėra užblokuotas
- Bandymas su MQTT klientu: Naudokite MQTT Explorer arba mosquitto_pub/sub bandymams
Problema: MQTT žinutės negaunamos
Simptomai: Žinutės paskelbtos, bet prenumeratoriai jų negauna
Sprendimas:
- Temų pavadinimai: Patikrinkite, ar prenumeratoriaus tema tiksliai atitinka leidėjo temą
- QoS lygis: Pabandykite QoS 1 arba 2 vietoje 0
- Džokeriai: Patikrinkite, ar temų džokeriai naudojami teisingai (
+vienam lygiui,#daugeliui lygių) - Laikomos žinutės: Leidėjas gali nustatyti išlaikymo žymą, kad išlaikytų paskutinę žinutę
- Ryšio laikas: Įsitikinkite, kad prenumeratorius prisijungia prieš paskelbiant žinutes
Jutiklių ir veiksmų įrenginių problemos
Grove jutikliai
Problema: Jutiklis grąžina neteisingas reikšmes
Simptomai: Skaitymai yra 0, -1 ar nesąmoningi
Sprendimas:
- Patikrinkite jungtis: Įsitikinkite, kad jutiklis tinkamai prijungtas
- Tinkamas prievadas: Patikrinkite, ar jutiklis prijungtas prie tinkamo prievado tipo:
- Analoginiai jutikliai → Analoginiai prievadai (A0, A2, A4)
- Skaitmeniniai jutikliai → Skaitmeniniai prievadai (D5, D16, D18 ir kt.)
- I2C jutikliai → I2C prievadai
- Kalibracija: Kai kurie jutikliai reikalinga kalibracija (dirvožemio drėgmės, šviesos)
- Perkrovimas: Atjunkite ir vėl prijunkite jutiklį
- Jutiklio dokumentacija: Patikrinkite jutiklio specifikacijas ir reikalavimus
Problema: Kapacinis dirvožemio drėgmės jutiklis visada rodo drėgną
Simptomai: Jutiklis rodo didelę drėgmę net kai yra sausas
Sprendimas:
- Reikia kalibracijos: Dirvožemio jutikliams reikalinga kalibracija:
- Nuskaitomas reikšmė ore (sausas pagrindas)
- Nuskaitomas reikšmė vandenyje (drėgnas pagrindas)
- Skaitymai priskiriami tarp šių verčių
- Patikrinkite jutiklio dangą: Drėgmės jutikliai gali gesti, jei danga pažeista
- Vieta: Įsitikinkite, kad jutiklis visiškai įstatytas į dirvą
Problema: Temperatūros/drėgmės jutiklio skaitymai netikslūs
Simptomai: DHT11/DHT22 rodo neteisingą temperatūrą ar drėgmę
Sprendimas:
- Jutiklio padėtis: Venkite tiesioginių saulės spindulių, šilumos šaltinių ar oro srauto
- Įšilimo laikas: Leiskite jutikliui 2 sekundes įšilti po įjungimo prieš skaitymą
- Skaitymo dažnis: DHT jutikliams reikia laiko tarp skaitymų (bent 2 sekundės)
- Patikrinkite kondensaciją: Gali paveikti skaitymus
- Jutiklio kokybė: DHT11 mažiau tikslus nei DHT22
Kamera
Problema: Kamera nerandama Raspberry Pi
Klaida: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'
Sprendimas:
- Įjunkite kameros sąsają:
Eikite į Interface Options → Camera → Enablesudo raspi-config - Patikrinkite plokščią kabelį: Įsitikinkite, kad kameros kabelis tinkamai įdėtas
- Mėlyna pusė žiūri į USB prievadus ant Pi Zero
- Mėlyna pusė žiūri nuo USB prievadų ant Pi 4
- Atnaujinkite programinę įrangą:
sudo apt update sudo apt full-upgrade sudo reboot - Išbandykite kamerą:
raspistill -o test.jpg
Problema: Kameros nuotraukos prastos kokybės
Simptomai: Neryškios, tamsios arba išplautos nuotraukos
Sprendimas:
- Fokusas: Nuimkite apsauginę plėvelę nuo objektyvo, reguliuokite fokusą jei įmanoma
- Apšvietimas: Užtikrinkite pakankamą apšvietimą
- Kameros nustatymai: Reguliuokite ekspoziciją, ISO, baltos spalvos balansą programoje
- Stabilumas: Laikykite kamerą stabiliai, naudokite trikojį jei reikia
- Rezoliucija: Nepersijunkite į aukštesnę negu kameros maksimalus rezoliucijos lygį
Mikrofonas ir garsiakalbis
Problema: Garsas neveikia įvesti/išvesti
Simptomai: Mikrofonas neregiistruoja, garsiakalbis negarsina
Sprendimas:
- Patikrinkite jungtis: Įsitikinkite, kad garso įrenginiai tinkamai prijungti
- Bandykite aparatūrą:
- Garsiakalbis:
speaker-test -t wav -c 2 - Mikrofonas:
arecord -lsąrašui,arecord test.wavįrašymui
- Garsiakalbis:
- Garso nustatymai: Patikrinkite ir reguliuokite garsumą:
alsamixer - Pasirinkite garso įrenginį: Nustatykite tinkamą garso įrenginį programoje
- Tvarkyklių problemos: Atnaujinkite ALSA arba perinstaliuokite garso tvarkykles
Problema: ReSpeaker hat neveikia
Simptomai: Garso įrenginys nerandamas
Sprendimas:
- Įdiekite tvarkykles:
git clone https://github.com/HinTak/seeed-voicecard cd seeed-voicecard sudo ./install.sh sudo reboot - Patikrinkite įdiegimą:
arecord -lturėtų rodyti ReSpeaker - Atnaujinkite programinę įrangą: Kai kurios Pi OS versijos reikalauja tvarkyklių atnaujinimų
- Patikrinkite tvirtumą: Įsitikinkite, kad hat yra tinkamai prijungtas prie GPIO
Kūrimo aplinkos problemos
VS Code
Problema: Terminalas automatiškai neaktyvuoja virtualios aplinkos
Simptomai: Terminalas atsidaro, bet venv neaktyvuotas
Sprendimas:
- Nustatykite Python interpretatorių: Command Palette → "Python: Select Interpreter" → Pasirinkite venv
- Perkraukite VS Code po interpretatoriaus pasirinkimo
- Patikrinkite nustatymus: Pridėkite į
settings.json:"python.terminal.activateEnvironment": true
Problema: Kodo aplinkoje nepaleidžiamas įrenginyje
Simptomai: Kodas paleidžiamas, bet įrenginys nereaguoja
Sprendimas:
- Įsitikinkite, kad kodas išsaugotas (patikrinkite tašką ant failo skirtuko)
- Patikrinkite, kuri Python versija veikia:
which pythonarbawhere python - Wio Terminal naudojimas: Įkelkite kodą per PlatformIO (spauskite įkėlimo mygtuką)
- Raspberry Pi: Prisijunkite per SSH į Pi ir paleiskite kodą ten
- Patikrinkite išvesties langą dėl klaidų
Problema: IntelliSense nerodo bibliotekų funkcijų
Simptomai: Nėra automatinio užbaigimo importuotoms modulėms
Sprendimas:
- Įsitikinkite, kad biblioteka įdiegta dabartinėje aplinkoje
- Perkraukite VS Code langą
- Patikrinkite, ar teisingas Python interpretatorius
- Įdiekite tipų aprašų paketus jei yra:
pip install types-<library-name>
Python virtualios aplinkos
Problema: Nepavyksta sukurti virtualios aplinkos
Klaida: The virtual environment was not created successfully
Sprendimas:
- Įdiekite venv modulį:
- Ubuntu/Debian:
sudo apt install python3-venv - macOS: Tai turėtų būti įtraukta į Python
- Windows: Perinstaliuokite Python su visais komponentais
- Ubuntu/Debian:
- Patikrinkite Python diegimą: Įsitikinkite, kad Python yra tinkamai įdiegtas
- Naudokite pilną kelią: Išbandykite
python3 -m venv .venvsu aiškiu python3 kvietimu
Problema: Paketai įdiegti netinkamoje vietoje
Simptomai: Importavimo klaida po paketo įdiegimo
Sprendimas:
- Įsitikinkite, kad venv yra aktyvuota: Komandinė eilutė turi rodyti
(.venv) - Patikrinkite pip vietą:
which pipturėtų rodyti.venv/bin/pip - Perinstaliuokite venv aplinkoje: Aktyvuokite venv, tada
pip install <package> - Nenaudokite sudo su pip virtualioje aplinkoje
Problema: Virtuali aplinka neperkeliamas
Simptomai: Venv neveikia po perkelimo arba kitame kompiuteryje
Sprendimas:
- Nekelkite venv aplinkų: Ištrinkite ir sukurkite iš naujo naujoje vietoje
- Naudokite requirements.txt:
pip freeze > requirements.txt pip install -r requirements.txt - Sukurkite venv iš naujo:
python3 -m venv .venv source .venv/bin/activate # arba activate.bat Windows operacinėje sistemoje pip install -r requirements.txt
Priklausomybės
Problema: Paketo diegimas nepavyksta
Klaida: Įvairios pip klaidos diegimo metu
Sprendimas:
- Atnaujinkite pip:
pip install --upgrade pip - Įdiekite kūrimo įrankius:
- Ubuntu/Debian:
sudo apt install build-essential python3-dev - macOS:
xcode-select --install - Windows: Įdiekite Visual Studio Build Tools
- Ubuntu/Debian:
- Patikrinkite interneto ryšį
- Išbandykite kitą paketo indeksą:
pip install --index-url https://pypi.org/simple/ <package> - Įdiekite konkrečią versiją:
pip install <package>==<version>
Problema: Priklausomybių konfliktai
Klaida: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed
Sprendimas:
- Naudokite naują virtualią aplinką kiekvienam projektui
- Atnaujinkite paketus:
pip install --upgrade <package> - Patikrinkite priklausomybes: Naudokite
pip checkkonfliktams rasti - Įdiekite suderinamas versijas: Nurodykite versijų ribas requirements.txt
Veikimo problemos
Problema: Kodas veikia lėtai
Simptomai: Užlaikymas, laiko praleidimai, nereaguojantis elgesys
Sprendimas:
- Sumažinkite jutiklių skaitymo dažnį: Neskaitykite jutiklių per dažnai
- Optimizuokite ciklus: Venkite užimtumo laukimo, naudokite sleep() arba uždelsimus
- Atminties problemos:
- Uždarykite nereikalingas programas
- Atlaisvinkite saugojimo vietą
- Stebėkite su
toparbahtopant Pi
- SD kortelės greitis: Naudokite greitesnę SD kortelę arba SSD Raspberry Pi
- Tinklo atsilikimai: Naudokite asinchroninius veiksmus tinklo skambučiams
Problema: Trūksta atminties klaidos
Klaida: MemoryError arba sistemos užšalimas
Sprendimas:
- Raspberry Pi atveju:
- Uždarykite nereikalingas programas
- Padidinkite mainų (swap) vietą
- Naudokite lengvesnę OS (Lite versiją)
- Atnaujinkite RAM (Pi 4 turi 2/4/8GB variantus)
- Wio Terminal:
- Mažinkite buferių dydžius
- Naudokite mažesnes nuotraukas
- Optimizuokite tekstų naudojimą
- Patikrinkite atminties nutekėjimą (neatlaisvintos atminties)
Problema: Duomenų praradimas arba sugadinimas
Simptomai: Trūksta žinučių, sugadinti failai
Sprendimas:
- SD kortelės problemos:
- Naudokite kokybiškas SD korteles (venkite pigias/padlapiuotas)
- Reguliarios atsarginės kopijos
- Tvarkingas išjungimas (nenutraukite maitinimo)
- Buferio perpildymas: Padidinkite buferio dydžius kode
- Tinklo patikimumas: Įgyvendinkite pakartojimo logiką ir klaidų apdorojimą
- Paslaugų kokybė: Naudokite MQTT QoS 1 arba 2 svarbioms žinutėms
Dažniausios klaidų žinutės
ModuleNotFoundError: No module named 'X'
Priežastis: Paketas neįdiegtas arba virtuali aplinka neaktyvuota
Sprendimas:
pip install X
Pirmiausia įsitikinkite, kad virtuali aplinka aktyvuota.
Permission denied Linux/macOS
Priežastis: Reikia aukštesnių teisių arba failų leidimų problema
Sprendimas:
- Sistemos operacijoms: naudokite
sudo - Pip: NESINAUDOKITE sudo su venv, pirmiausia aktyvinkite venv
- Serijiniam prievadui: pridėkite vartotoją į dialout grupę:
sudo usermod -a -G dialout $USER, po to atsijunkite/prisijunkite iš naujo
OSError: [Errno 98] Address already in use
Priežastis: Prievadas jau naudojamas kitų procesų
Sprendimas:
- Suraskite procesą, naudojantį prievadą:
lsof -i :<port>arbanetstat -ano | findstr :<port> - Nutraukite procesą arba naudokite kitą prievadą savo kode
SSL: CERTIFICATE_VERIFY_FAILED
Priežastis: SSL sertifikato patvirtinimas nepavyko
Sprendimas:
- Atnaujinkite sertifikatus:
pip install --upgrade certifi - Patikrinkite, ar sistemos laikas teisingas:
date - Tik kūrimui (ne gamybai): išjunkite patvirtinimą kode
IndentationError: unexpected indent
Priežastis: Python įtraukimo klaidos (mišinys tabuliavimo ir tarpų)
Sprendimas:
- Naudokite nuoseklų įtraukimą (4 tarpai yra Python standartas)
- Konfigūruokite redaktorių naudoti tarpus vietoje tabuliavimo
- VS Code: Nustatykite
"editor.insertSpaces": trueir"editor.tabSize": 4
UnicodeDecodeError arba UnicodeEncodeError
Priežastis: Simbolių kodavimo problemos
Sprendimas:
# Kai skaitomi failai
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
# Kai rašomi failai
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(content)
Pagalbos gavimas
Jei išbandėte šiuos trikčių šalinimo veiksmus ir vis dar turite problemų:
1. Patikrinkite esamus išteklius
- Dokumentacija: Peržiūrėkite README ir pamokos instrukcijas
- Aparatūros vadovai: Patikrinkite hardware.md dėl specifinės aparatūros informacijos
- Seeed Studio Wiki: Seeed Studio Wiki Grove komponentams
2. Ieškokite panašių problemų
- GitHub Issues: Ieškokite esamų problemų
- Stack Overflow: Ieškokite klaidų žinučių
- Įrenginių forumai: Patikrinkite Raspberry Pi arba Arduino forumus
3. Sukurkite GitHub problemą (issue)
Jei negalite rasti sprendimo:
- Eikite į GitHub Issues
- Spauskite „New Issue“
- Nurodykite:
- Aiškų problemos aprašymą
- Veiksmus, kaip problemą atkartoja
- Klaidos pranešimus (pilnas tekstas)
- Aparatūros/programinės įrangos versijas
- Ką jau bandėte
- Jei įmanoma, ekrano kopijas
4. Prisijunkite prie bendruomenės
- Discord: Microsoft Foundry Discord
- Microsoft Learn: Microsoft Learn IoT
5. Pateikite gerus klaidų pranešimus
Geras klaidų pranešimas apima:
- Aplinka: OS, Python versija, naudojama įranga
- Veiksmai reprodukcijai: Tikslios problemą sukeliančios veiksmų eilės
- Laukiama elgsena: Kas turėtų įvykti
- Faktinė elgsena: Kas iš tikrųjų vyksta
- Klaidos pranešimai: Pilnas klaidos tekstas, ne ekrano nuotraukos
- Kodas: Minimalus kodo pavyzdys, kuris atkuria problemą
Patarimai prevencijai
Bendrosios geros praktikos
- Laikykite atsargines kopijas: Reguliarios veikiančių SD kortelių/kodo atsarginės kopijos
- Dokumentuokite pakeitimus: Užfiksuokite komentarais, kas veikia
- Versijų kontrolė: Naudokite git kode pokyčių sekimui
- Testuokite palaipsniui: Išbandykite smulkius pakeitimus prieš juos apjungiant
- Skaitykite klaidos pranešimus: Dažnai jie tiksliai nurodo, kas negerai
- Reguliariai atnaujinkite: Laikykite programinę įrangą/firmware atnaujintą
- Naudokite kokybiškas dalis: Venkite pigių kabelių/maitinimo šaltinių
- Stabilus maitinimas: Naudokite tinkamą maitinimo šaltinį (ypač Pi)
Kūrimo darbo eiga
- Pradėkite paprastai: Pradėkite nuo veikiančio pavyzdinio kodo
- Vienas pakeitimas vienu metu: Lengviau rasti, kas sukelia klaidą
- Dažnai testuokite: Anksti pastebėkite problemas
- Laikykite tvarką: Logiškai organizuokite failus ir kodą
- Komentuokite kodą: Ateities Jūs tai įvertinsite
Ši trikčių šalinimo vadovė yra bendruomenės prižiūrima. Jei radote sprendimą problemai, kurios čia nėra, prašome apsvarstyti galimybę prisidėti, kad padėtumėte kitiems!
Atsakomybės apribojimas: Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors stengiamės užtikrinti tikslumą, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas gimtąja kalba turėtų būti laikomas pagrindiniu ir autoritetingu šaltiniu. Svarbiai informacijai rekomenduojamas profesionalus vertimas žmogiškuoju būdu. Mes neatsakome už bet kokius nesusipratimus ar klaidingą interpretavimą, kilusį dėl šio vertimo naudojimo.