28 KiB
Vodnik za odpravljanje težav
Ta vodnik vam pomaga rešiti pogoste težave pri delu s kurikulom IoT for Beginners. Težave so organizirane po kategorijah za lažjo navigacijo.
Kazalo vsebine
- Težave z namestitvijo
- Težave s strojno opremo
- Težave s povezljivostjo
- Težave s senzorji in aktuatorji
- Težave z razvojnim okoljem
- Težave z zmogljivostjo
- Pogoste napake
- Kako poiskati pomoč
Težave z namestitvijo
Namestitev Pythona
Težava: Verzija Pythona je prestara
Napaka: Zaželen je Python 3.6 ali novejši
Rešitev:
- Prenesite najnovejši Python 3 z python.org
- Med namestitvijo na Windows označite "Add Python to PATH"
- Preverite namestitev:
python3 --version
Težava: Več različic Pythona povzroča konflikte
Simptomi: Zažene se napačna verzija Pythona, paketi se nameščajo na napačno mesto
Rešitev:
- Windows: Uporabite
py -3namestopythonza eksplicitno uporabo Pythona 3 - macOS/Linux: Uporabite
python3namestopython - Vedno ustvarite in uporabljajte virtualna okolja za projekte
Težava: Ukaz pip ni najden
Napaka: 'pip' ni prepoznan kot notranji ali zunanji ukaz
Rešitev:
- Poskusite
pip3namestopip - Ali uporabite
python -m pipalipython3 -m pip - Poskrbite, da je Python dodan v PATH (ponovno namestite Python in izberite možnost)
VS Code in razširitve
Težava: Razširitev Pylance ne deluje
Simptomi: Ni Python IntelliSense, samodejnega dopolnjevanja kode ali preverjanja tipov
Rešitev:
- Odprite ukazno paleto VS Code (
Ctrl+Shift+PaliCmd+Shift+P) - Zaženite "Python: Select Interpreter"
- Izberite pravi Python interpreter (virtualno okolje, če ga uporabljate)
- Znova naložite okno VS Code
Težava: VS Code ne zazna virtualnega okolja
Simptomi: Izbran napačen Python interpreter
Rešitev:
- Poskrbite, da ste aktivirali virtualno okolje v terminalu
- Odprite ukazno paleto in zaženite "Python: Select Interpreter"
- Izberite interpreter iz mape
.venv - Preverite, da spodnji levi status bar prikazuje pravilno verzijo Pythona
PlatformIO (Wio Terminal)
Težava: Namestitev PlatformIO ne uspe
Napaka: Različne napake med namestitvijo PlatformIO
Rešitev:
- Poskrbite, da je VS Code posodobljen
- Najprej namestite C/C++ razširitev
- Po namestitvi PlatformIO znova zaženite VS Code
- Preverite internetno povezavo (PlatformIO prenaša velike datoteke)
Težava: PlatformIO ne zazna plošče
Simptomi: Ne morete prenesti kode na Wio Terminal
Rešitev:
- Poskusite z drugim USB kablom (nekateri kabli so samo za polnjenje)
- Preverite Upravitelja naprav (Windows) ali
ls /dev/tty*(macOS/Linux) - Namestite ali posodobite USB gonilnike
- Poskusite z drugim USB priključkom
- Hitro dvakrat povlecite gumb za vklop na Wio Terminalu v položaj bootloaderja
Težava: Napake pri prevajanju v PlatformIO
Napaka: fatal error: Arduino.h: No such file or directory
Rešitev:
- Izbrišite mapo
.piov vašem projektu - Iz ukazne palete poženite "PlatformIO: Rebuild"
- Poskrbite, da
platformio.inivsebuje pravilno konfiguracijo plošče:[env:seeed_wio_terminal] platform = atmelsam board = seeed_wio_terminal framework = arduino
Grove knjižnice
Težava: Uvoz Grove knjižnice ne uspe na Raspberry Pi
Napaka: ModuleNotFoundError: No module named 'grove'
Rešitev:
- Ponovno namestite Grove knjižnice:
cd ~ git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . - Če uporabljate virtualno okolje, boste morda morali knjižnice namestiti globalno ali kopirati
- Preverite, da je I2C omogočen:
sudo raspi-config nonint do_i2c 0
Težava: Grove senzor ni zaznan
Napaka: IOError: [Errno 121] Remote I/O error
Rešitev:
- Preverite fizične povezave (zagotovite, da je Grove kabel popolnoma vstavljen)
- Potrdite, da je senzor povezan na pravilen vhod (analogni, digitalni, I2C, UART)
- Zaženite
i2cdetect -y 1, da preverite, ali se naprava pojavi na I2C vodilu - Poskusite z drugim Grove kablom
- Preverite, da je Grove Base Hat pravilno nameščen na Raspberry Pi GPIO pinih
Težave s strojno opremo
Raspberry Pi
Težava: Raspberry Pi se ne zažene
Simptomi: Ni prikaza, ni aktivnosti LED, ali mavrični zaslon
Rešitev:
- Preverite napajanje: Uporabite uradni 5V 3A USB-C napajalnik za Pi 4
- Težave z SD kartico:
- Formatirajte SD kartico in ponovno namestite Raspberry Pi OS
- Poskusite z drugo SD kartico (uporabite priporočene znamke)
- Preverite, da je SD kartica pravilno vstavljena
- Preverite HDMI povezavo: Preizkusite oba HDMI priključka na Pi 4, uporabite HDMI priključek, ki je bližje napajanju
Težava: Ne morete se povezati preko SSH na Raspberry Pi
Simptomi: Povezava je zavrnjena ali poteče čas
Rešitev:
- Omogočite SSH:
- Pri pisanju SD kartice z Raspberry Pi Imagerjem konfigurirajte SSH v naprednih opcijah
- Ali ustvarite prazno datoteko z imenom
ssh(brez pripone) v zagonski particiji
- Poiščite IP naslov Pi-ja:
- Preverite naprave povezane na vaš usmerjevalnik
- Uporabite
ping raspberrypi.local(če deluje mDNS) - Uporabite orodja za skeniranje omrežja, kot so
nmapali Angry IP Scanner
- Preverite omrežje:
- Poskrbite, da je Pi na istem omrežju kot vaš računalnik
- Poskusite z ethernet povezavo namesto WiFi
- Preverite uporabniško ime in geslo (privzeto: uporabnik
pi, gesloraspberry)
Težava: Grove Base Hat ni zaznan
Simptomi: Senzorji ne delujejo, napake I2C
Rešitev:
- Poskrbite, da je Base Hat pravilno nameščen na vseh GPIO pinih
- Preverite za upognjene pine na Pi-ju ali Base Hat-u
- Omogočite I2C vmesnik:
sudo raspi-config nonint do_i2c 0 sudo reboot - Preverite, da I2C deluje:
i2cdetect -y 1
Težava: Raspberry Pi deluje počasi
Simptomi: Počasna uporabniška lupina, počasni odzivi
Rešitev:
- Preverite hitrost SD kartice (uporabite razred 10 ali boljšo, ali SSD preko USB)
- Oprostite diskovni prostor:
df -hza preverjanje, izbrišite nepotrebne datoteke - Zmanjšajte količino pomnilnika za GPU v
raspi-config, če ne uporabljate intenzivno kamere/zaslona - Zaprite nepotrebne aplikacije
- Razmislite o nadgradnji na Pi 4 z več RAM-a, če uporabljate Pi 3 ali starejši
Wio Terminal
Težava: Zaslon Wio Terminal ostane prazen
Simptomi: Ni prikaza po nalaganju kode
Rešitev:
- Preverite, ali koda inicializira zaslon (knjižnica TFT_eSPI)
- Posodobite firmware Wio Terminala iz Seeed Wiki
- Dodajte kodo za inicializacijo zaslona:
#include <TFT_eSPI.h> TFT_eSPI tft; tft.begin(); tft.fillScreen(TFT_BLACK); - Poskusite naložiti primer iz PlatformIO za test strojne opreme
Težava: WiFi ne deluje na Wio Terminalu
Simptomi: Ni mogoče vzpostaviti WiFi povezave, napake omrežja
Rešitev:
- Posodobite WiFi firmware: Sledite navodilu za posodobitev WiFi firmware Wio Terminal
- Preverite WiFi podatke za prijavo: Poskrbite, da sta SSID in geslo pravilna
- WiFi pas: Wio Terminal podpira samo 2.4GHz WiFi (ne 5GHz)
- Jakost signala: Premaknite se bližje usmerjevalniku
- Nastavitve usmerjevalnika: Nekatera podjetniška/WPA-Enterprise omrežja morda ne delujejo
Težava: Računalnik ne zazna Wio Terminala
Simptomi: USB naprava ni zaznana
Rešitev:
- Poskusite z drugim USB kablom: Uporabite podatkovni kabel, ne samo polnilnega
- Vstopite v način bootloaderja: Hitro povlecite gumb za vklop dvakrat navzdol
- Modra LED naj utripa, naprava se pojavi kot "Arduino" v Upravitelju naprav
- Namestite gonilnike (Windows):
- Prenesite in namestite Seeed USB gonilnik
- Poskusite z drugim USB priključkom: Izogibajte se USB stikalom, uporabite neposredno povezavo
- Posodobite sistemske USB gonilnike
Težava: Senzorji na Wio Terminalu ne delujejo
Simptomi: Grove senzorji ne beležijo podatkov
Rešitev:
- Preverite povezave Grove kabla
- Preverite, da uporabljate pravilen Grove vhod (levo ali desno)
- Vključite ustrezne knjižnice za senzor
- Preverite zahteve napajanja senzorja
- Testirajte senzor s primerom kode iz knjižnice
Virtualna naprava (CounterFit)
Težava: Aplikacija CounterFit se ne zažene
Napaka: Različne Python napake ob zagonu CounterFit
Rešitev:
- Poskrbite, da je virtualno okolje aktivirano
- Namestite/ponovno namestite CounterFit:
pip install CounterFit - Preverite, da vrata 5000 niso že v uporabi:
- Windows:
netstat -ano | findstr :5000 - macOS/Linux:
lsof -i :5000
- Windows:
- Ubijte proces, ki uporablja vrata 5000, ali uporabite druga vrata:
counterfit --port 5001
Težava: Povezava do CounterFit iz kode ne uspe
Napaka: Povezava zavrnjena ali potekel čas
Rešitev:
- Preverite, da CounterFit teče: Odprite brskalnik na
http://127.0.0.1:5000 - Preverite, da URL povezave v kodi ustreza naslovu CounterFit
- Preverite, da požarni zid ne blokira povezave
- Poskusite znova zagnati tako CounterFit aplikacijo kot vašo kodo
Težava: Senzorji se ne prikažejo v CounterFit
Simptomi: Ustvarjeni senzorji se ne prikažejo v uporabniškem vmesniku CounterFit
Rešitev:
- Ustvarite senzorje v uporabniškem vmesniku CounterFit pred zagonom kode
- Osvežite stran brskalnika
- Preverite, da tip senzorja ustreza temu, kar pričakuje koda
- Počistite predpomnilnik brskalnika
Težave s povezljivostjo
WiFi povezava
Težava: Naprava se ne more povezati z WiFi
Simptomi: Povezava poteče, preverjanje pristnosti ni uspelo
Rešitev:
- Preverite SSID in geslo: Preverite, da so podatki za prijavo pravilni
- WiFi pas: Večina IoT naprav podpira samo 2.4GHz (ne 5GHz)
- Nastavitve usmerjevalnika:
- Onemogočite AP izolacijo, če je omogočena
- Uporabite WPA2-PSK varnost (izogibajte se WPA3, WEP ali odprtim omrežjem)
- Poskrbite, da je DHCP omogočen
- Skrito omrežje: Če je SSID skrit, boste morda morali eksplicitno nastaviti omrežje
- Jakost signala: Premaknite napravo bližje usmerjevalniku
- Motnje: Druge naprave, mikrovalovne pečice ali stene lahko povzročajo motnje
Težava: WiFi povezava pogosto pade
Simptomi: Prekinjena povezava
Rešitev:
- Preverite stabilnost usmerjevalnika in razmislite o ponovnem zagonu
- Posodobite firmware naprave
- Uporabljajte statični IP namesto DHCP
- Zmanjšajte razdaljo do usmerjevalnika ali dodajte WiFi ojačevalnik
- Preverite, ali motijo druge naprave
- Preverite, da je napajanje ustrezno (še posebej za Raspberry Pi)
Oblačne storitve
Težava: Ni mogoče povezati se do Azure IoT Hub
Napaka: Preverjanje pristnosti ni uspelo, povezava zavrnjena
Rešitev:
- Preverite poverilnice:
- Preverite, da je povezovalni niz pravilen
- Poskrbite, da ni dodatnih presledkov ali prelomov vrstic v povezovalnem nizu
- Preverite registracijo naprave: Naprava mora biti registrirana v IoT Hub-u
- Požarni zid/proxy: Poskrbite, da je dovoljen odhodni promet MQTT (vrata 8883) ali HTTPS (vrata 443)
- Regija IoT Huba: Poskrbite, da IoT Hub obratovalno deluje in ni v drugi regiji, ki povzroča zakasnitve
- Omejitve količine: Preverite, ali so prekoračene omejitve brezplačne stopnje
- Preizkus povezave:
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
Težava: Azure Functions se ne sproži
Simptomi: Sporočila so poslana, funkcija pa ni izvršena
Rešitev:
- Preverite, da applika funkcij deluje (ni ustavljena)
- Preverite povezovalni niz v nastavitvah Azure Functions
- Preverite dnevniške zapise funkcije v Azure portalu
- Preverite, da je konfiguriran združljiv endpoint Event Huba
- Preverite, da oblika sporočila ustreza pričakovanjem funkcije
- Preverite načrt storitve Azure Functions (poraba ali namenski načrt)
MQTT
Težava: Povezava MQTT ne uspe
Napaka: Povezava zavrnjena, preverjanje pristnosti spodletelo
Rešitev:
- Naslov posrednika: Preverite, ali je URL/IP posrednika pravilen
- Vrata: Preverite številko vrat (1883 za nešifrirano, 8883 za TLS)
- Preverjanje pristnosti: Preverite uporabniško ime/geslo, če je zahtevano
- TLS/SSL: Zagotovite, da so certifikati veljavni in zaupanja vredni
- Požarni zid: Preverite, da vrata niso blokirana
- Test z MQTT odjemalcem: Uporabite MQTT Explorer ali mosquitto_pub/sub za testiranje
Težava: Sporočila MQTT niso prejeta
Simptomi: Sporočila so bila objavljena, vendar jih naročniki niso prejeli
Rešitev:
- Imena tem: Preverite, da se tema naročnika natančno ujema s temo založnika
- Raven QoS: Poskusite QoS 1 ali 2 namesto 0
- Divje karte: Preverite pravilno uporabo tematskih divjih kart (
+za eno raven,#za več ravni) - Zadržana sporočila: Založnik lahko nastavi zastavico za zadrževanje, da ohrani zadnje sporočilo
- Čas povezave: Zagotovite, da se naročnik poveže pred objavo sporočil
Težave s senzorji in aktuatorji
Grove Senzorji
Težava: Senzor vrača nepravilne vrednosti
Simptomi: Meritve so 0, -1 ali nesmiselne vrednosti
Rešitev:
- Preverite povezave: Zagotovite, da je senzor pravilno povezan
- Prava vrata: Preverite, da je senzor na pravem tipu vrat:
- Analogni senzorji → Analogna vrata (A0, A2, A4)
- Digitalni senzorji → Digitalna vrata (D5, D16, D18, itd.)
- I2C senzorji → I2C vrata
- Kalibracija: Nekateri senzorji potrebujejo kalibracijo (vlaga v tleh, svetloba)
- Ponovni zagon: Odklopite in ponovno priklopite senzor
- Datasheet senzorja: Preverite specifikacije in zahteve senzorja
Težava: Kapacitivni senzor vlage v tleh vedno meri mokro
Simptomi: Senzor meri visoko vlažnost tudi, ko je suho
Rešitev:
- Potrebna kalibracija: Senzorji za zemeljsko vlago zahtevajo kalibracijo:
- Meritev v zraku (suh referenčni nivo)
- Meritev v vodi (mokri referenčni nivo)
- Preslikava meritve med tema vrednostma
- Preverite zaščito senzorja: Vlažni senzorji se lahko poslabšajo, če je prevleka poškodovana
- Postavitev: Zagotovite, da je senzor popolnoma vstavljen v tla
Težava: Meritve temperature/vlage so nepravilne
Simptomi: DHT11/DHT22 prikazuje napačno temperaturo ali vlago
Rešitev:
- Postavitev senzorja: Izogibajte se neposredni sončni svetlobi, virom toplote ali pretoku zraka
- Čas segrevanja: Senzorju dovolite 2 sekundi po vklopu, preden berete
- Pogostost merjenja: DHT senzorji potrebujejo čas med meritvami (vsaj 2 sekundi)
- Preverite kondenzacijo: Lahko vpliva na meritve
- Kakovost senzorja: DHT11 je manj natančen kot DHT22
Kamera
Težava: Kamera ni zaznana na Raspberry Pi
Napaka: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'
Rešitev:
- Omogočite vmesnik kamere:
Pojdite na Interface Options → Camera → Enablesudo raspi-config - Preverite trak kabla: Zagotovite, da je kabel kamere pravilno vstavljen
- Modra stran gleda proti USB priključkom na Pi Zero
- Modra stran gleda stran od USB priključkov na Pi 4
- Posodobite firmware:
sudo apt update sudo apt full-upgrade sudo reboot - Preizkusite kamero:
raspistill -o test.jpg
Težava: Slike iz kamere so nizke kakovosti
Simptomi: Zamegljene, temne ali izprane slike
Rešitev:
- Fokus: Odstranite zaščitno folijo s leče, prilagodite fokus, če je nastavljiv
- Osvetlitev: Zagotovite ustrezno osvetlitev
- Nastavitve kamere: Prilagodite osvetlitev, ISO, bel balans v kodi
- Stabilnost: Držite kamero mirno, uporabite stojalo, če je potrebno
- Ločljivost: Ne presežite največje ločljivosti kamere
Mikrofon in zvočnik
Težava: Ni avdio vhoda/izhoda
Simptomi: Mikrofon ne snema, zvočnik ne predvaja
Rešitev:
- Preverite povezave: Preverite, ali so avdio naprave pravilno priključene
- Test strojne opreme:
- Zvočnik:
speaker-test -t wav -c 2 - Mikrofon:
arecord -lza seznam,arecord test.wavza snemanje
- Zvočnik:
- Nastavitve glasnosti: Preverite in prilagodite glasnost:
alsamixer - Izberite avdio napravo: V kodi navedite pravilno avdio napravo
- Težave z gonilniki: Posodobite ALSA ali ponovno namestite avdio gonilnike
Težava: ReSpeaker hat ne deluje
Simptomi: Avdio naprava ni zaznana
Rešitev:
- Namestite gonilnike:
git clone https://github.com/HinTak/seeed-voicecard cd seeed-voicecard sudo ./install.sh sudo reboot - Preverite namestitev:
arecord -lbi moral našteti ReSpeaker - Posodobite firmware: Nekatere različice Pi OS potrebujejo posodobitve gonilnikov
- Preverite priklop: Zagotovite, da je hat pravilno priključen na GPIO pin-e
Težave z razvojnim okoljem
VS Code
Težava: Terminal se ne aktivira samodejno v virtualnem okolju
Simptomi: Terminal se odpre, vendar virtualno okolje ni aktivirano
Rešitev:
- Nastavite Python interpreter: Command Palette → "Python: Select Interpreter" → Izberite venv
- Ponovno zaženite VS Code po izbiri interpreterja
- Preverite nastavitve: V
settings.jsondodajte:"python.terminal.activateEnvironment": true
Težava: Koda ne teče na napravi
Simptomi: Koda teče, a na napravi se nič ne zgodi
Rešitev:
- Preverite, da je koda shranjena (preverite piko na zavihku datoteke)
- Preverite, kateri Python teče:
which pythonaliwhere python - Za Wio Terminal: Zagotovite nalaganje kode preko PlatformIO (kliknite gumb za nalaganje)
- Za Raspberry Pi: Prijavite se prek SSH na Pi in tam zaženite kodo
- Preverite okno z izhodom za napake
Težava: IntelliSense ne prikazuje funkcij knjižnice
Simptomi: Ni samodejnega dopolnjevanja za uvožene module
Rešitev:
- Zagotovite, da je knjižnica nameščena v tekočem okolju
- Ponovno naložite okno VS Code
- Preverite, da je Python interpreter pravilen
- Namestite type stube, če so na voljo:
pip install types-<ime-knjižnice>
Python virtualna okolja
Težava: Ne morem ustvariti virtualnega okolja
Napaka: The virtual environment was not created successfully
Rešitev:
- Namestite venv modul:
- Ubuntu/Debian:
sudo apt install python3-venv - macOS: Vključen v Python
- Windows: Znova namestite Python z vsemi komponentami
- Ubuntu/Debian:
- Preverite namestitev Pythona: Zagotovite, da je Python pravilno nameščen
- Uporabite polno pot: Poskusite
python3 -m venv .venvz izrecnim klicem python3
Težava: Paketi nameščeni na napačnem mestu
Simptomi: Napaka pri uvozu po namestitvi paketa
Rešitev:
- Preverite aktivacijo venv: Ukazna vrstica naj kaže
(.venv) - Preverite lokacijo pip:
which pipnaj kaže na.venv/bin/pip - Ponovno namestite v venv: Aktivirajte venv, nato
pip install <package> - Ne uporabljajte sudo s pip v virtualnem okolju
Težava: Virtualno okolje ni prenosljivo
Simptomi: Venv ne deluje po premiku ali na drugem računalniku
Rešitev:
- Ne premikajte venv: Izbrišite ga in ustvarite novega na novi lokaciji
- Uporabite requirements.txt:
pip freeze > requirements.txt pip install -r requirements.txt - Znova ustvarite venv:
python3 -m venv .venv source .venv/bin/activate # ali activate.bat na Windows pip install -r requirements.txt
Odvisnosti
Težava: Namestitev paketa ne uspe
Napaka: Različne napake pip med namestitvijo
Rešitev:
- Posodobite pip:
pip install --upgrade pip - Namestite orodja za gradnjo:
- Ubuntu/Debian:
sudo apt install build-essential python3-dev - macOS:
xcode-select --install - Windows: Namestite Visual Studio Build Tools
- Ubuntu/Debian:
- Preverite povezavo z internetom
- Poskusite drug repozitorij paketov:
pip install --index-url https://pypi.org/simple/ <package> - Namestite specifično različico:
pip install <package>==<version>
Težava: Konflikti odvisnosti
Napaka: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed
Rešitev:
- Uporabite sveže virtualno okolje za vsak projekt
- Posodobite pakete:
pip install --upgrade <package> - Preverite zahteve: Uporabite
pip checkza iskanje konfliktov - Namestite združljive različice: V zahtevah določite razpon različic v requirements.txt
Težave s hitrostjo
Težava: Koda teče počasi
Simptomi: Zamude, prekinitve, neodzivno vedenje
Rešitev:
- Zmanjšajte frekvenco branja senzorjev: Ne berite senzorjev preveč pogosto
- Optimizirajte zanke: Izogibajte se čakanju, uporabite sleep() ali zakasnitve
- Težave z pomnilnikom:
- Zaprite nepotrebne aplikacije
- Oprostite prostor na disku
- Spremljajte z
topalihtopna Pi
- Hitrost SD kartice: Uporabite hitrejšo SD kartico ali SSD za Raspberry Pi
- Odzivnost omrežja: Uporabljajte asinhrone operacije za omrežne klice
Težava: Napake zaradi pomanjkanja pomnilnika
Napaka: MemoryError ali zamrznitev sistema
Rešitev:
- Za Raspberry Pi:
- Zaprite nepotrebne aplikacije
- Povečajte swap prostor
- Uporabite lažjo različico OS (Lite verzija)
- Nadgradite RAM (Pi 4 ima 2/4/8GB opcije)
- Za Wio Terminal:
- Zmanjšajte velikosti predpomnilnikov
- Uporabljajte manjše slike
- Optimizirajte uporabo nizov
- Preverite puščanje pomnilnika (neprostejen pomnilnik)
Težava: Izguba ali korupcija podatkov
Simptomi: Manjkajoča sporočila, poškodovane datoteke
Rešitev:
- Težave s SD kartico:
- Uporabljajte kakovostne SD kartice (izogibajte se poceni/ponarejenim)
- Redni varnostni prenosi
- Čisto zaustavitev (ne izključujte napajanja nenadoma)
- Prelivanje predpomnilnika: Povečajte velikosti predpomnilnikov v kodi
- Zanesljivost omrežja: Uvedite logiko ponovnih poskusov in obdelavo napak
- Kakovost storitve: Za pomembna sporočila uporabite MQTT QoS 1 ali 2
Pogoste napake
ModuleNotFoundError: No module named 'X'
Vzrok: Paket ni nameščen ali virtualno okolje ni aktivirano
Rešitev:
pip install X
Najprej zagotovite aktivacijo virtualnega okolja.
Permission denied na Linux/macOS
Vzrok: Potrebna so povišana dovoljenja ali težave z dovoljenji datotek
Rešitev:
- Za sistemske operacije: uporabite
sudo - Za pip: NE uporabljajte sudo z venv, najprej aktivirajte venv
- Za serijski port: Dodajte uporabnika v skupino dialout:
sudo usermod -a -G dialout $USER, nato odjavite/prijavite se
OSError: [Errno 98] Address already in use
Vzrok: Vrata že uporablja drug proces
Rešitev:
- Poiščite proces, ki uporablja vrata:
lsof -i :<port>alinetstat -ano | findstr :<port> - Ubijte proces ali v kodi uporabite drugačna vrata
SSL: CERTIFICATE_VERIFY_FAILED
Vzrok: Neuspešna preveritev SSL certifikata
Rešitev:
- Posodobite certifikate:
pip install --upgrade certifi - Preverite pravilen čas sistema:
date - Samo za razvoj (ne produkcija): Onemogočite preverjanje v kodi
IndentationError: unexpected indent
Vzrok: Težave z zamiki v Pythonu (mešanje tabulatorjev in presledkov)
Rešitev:
- Uporabite dosledne zamike (4 presledki so standard v Pythonu)
- Nastavite urejevalnik, da uporablja presledke namesto tabulatorjev
- VS Code: Nastavite
"editor.insertSpaces": truein"editor.tabSize": 4
UnicodeDecodeError ali UnicodeEncodeError
Vzrok: Težave s kodiranjem znakov
Rešitev:
# Med branjem datotek
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
# Med pisanjem datotek
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(content)
Iskanje pomoči
Če ste poskusili te korake za odpravljanje težav in še vedno imate težave:
1. Preverite obstoječe vire
- Dokumentacija: Preglejte README in navodila za lekcije
- Vodiči za strojno opremo: Preverite hardware.md za informacije, specifične za strojno opremo
- Seeed Studio Wiki: Seeed Studio Wiki za Grove komponente
2. Iščite podobne težave
- GitHub Issues: Iščite obstoječe težave
- Stack Overflow: Iščite po sporočilih o napakah
- Forumi za naprave: Preverite forume Raspberry Pi ali Arduino
3. Ustvarite GitHub issue
Če ne najdete rešitve:
- Pojdite na GitHub Issues
- Kliknite "New Issue"
- Navedite:
- Jasno opis težave
- Korake za ponovitev težave
- Sporočila o napakah (celotno besedilo)
- Verzije strojne/ programske opreme
- Kaj ste že poskusili
- Posnetke zaslona, če so pomembni
4. Pridružite se skupnosti
- Discord: Microsoft Foundry Discord
- Microsoft Learn: Microsoft Learn IoT
5. Zagotovite dobre bug report-e
Dober bug report vsebuje:
- Okolje: OS, različica Pythona, uporabljena strojna oprema
- Koraki za ponovitev: Natančni koraki, ki povzročijo težavo
- Pričakovano vedenje: Kaj bi se moralo zgoditi
- Dejansko vedenje: Kaj se dejansko zgodi
- Sporočila o napakah: Celotno besedilo napake, brez posnetkov zaslona
- Koda: Minimalen primer kode, ki reproducira težavo
Nasveti za preprečevanje
Splošne dobre prakse
- Varnostne kopije: Redno varnostno kopirajte delujoče SD kartice/kodo
- Dokumentirajte spremembe: Zapišite, kaj deluje v komentarjih
- Nadzor različic: Uporabljajte git za sledenje spremembam kode
- Testirajte postopoma: Preizkušajte manjše spremembe pred združevanjem
- Berite sporočila o napakah: Pogosto povedo natanko, kaj je narobe
- Redno posodabljajte: Ohranjajte programsko opremo/firmware posodobljeno
- Uporabljajte kakovostne komponente: Izogibajte se poceni kablom/napajalnikom
- Stabilna napetost: Uporabljajte primerno napajanje (še posebej Pi)
Razvojni potek dela
- Začnite preprosto: Začnite z delujočo vzorčno kodo
- Po ena sprememba naenkrat: Lažje je odkriti, kaj povzroča napako
- Pogosto testirajte: Težave odpravite zgodaj
- Ohranite red: Logično organizirajte datoteke in kodo
- Komentirajte kodo: Vaša prihodnost vam bo hvaležna
Ta vodič za odpravljanje težav vzdržuje skupnost. Če najdete rešitev za težavo, ki tukaj ni navedena, razmislite o tem, da prispevate in pomagate drugim!
Omejitev odgovornosti: Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas opozarjamo, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Originalni dokument v njegovem izvirnem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni človeški prevod. Nismo odgovorni za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.