You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sl/TROUBLESHOOTING.md

752 lines
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](../..)
- [Namestitev Pythona](../..)
- [VS Code in razširitve](../..)
- [PlatformIO (Wio Terminal)](../..)
- [Grove knjižnice](../..)
- [Težave s strojno opremo](../..)
- [Raspberry Pi](../..)
- [Wio Terminal](../..)
- [Virtualna naprava (CounterFit)](../..)
- [Težave s povezljivostjo](../..)
- [WiFi povezava](../..)
- [Oblačne storitve](../..)
- [MQTT](../..)
- [Težave s senzorji in aktuatorji](../..)
- [Grove senzorji](../..)
- [Kamera](../..)
- [Mikrofon in zvočnik](../..)
- [Težave z razvojnim okoljem](../..)
- [VS Code](../..)
- [Python virtualna okolja](../..)
- [Odvisnosti](../..)
- [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:**
1. Prenesite najnovejši Python 3 z [python.org](https://www.python.org/downloads/)
2. Med namestitvijo na Windows označite "Add Python to PATH"
3. Preverite namestitev:
```bash
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 -3` namesto `python` za eksplicitno uporabo Pythona 3
- **macOS/Linux:** Uporabite `python3` namesto `python`
- 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:**
1. Poskusite `pip3` namesto `pip`
2. Ali uporabite `python -m pip` ali `python3 -m pip`
3. 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:**
1. Odprite ukazno paleto VS Code (`Ctrl+Shift+P` ali `Cmd+Shift+P`)
2. Zaženite "Python: Select Interpreter"
3. Izberite pravi Python interpreter (virtualno okolje, če ga uporabljate)
4. Znova naložite okno VS Code
#### Težava: VS Code ne zazna virtualnega okolja
**Simptomi:** Izbran napačen Python interpreter
**Rešitev:**
1. Poskrbite, da ste aktivirali virtualno okolje v terminalu
2. Odprite ukazno paleto in zaženite "Python: Select Interpreter"
3. Izberite interpreter iz mape `.venv`
4. 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:**
1. Poskrbite, da je VS Code posodobljen
2. Najprej namestite C/C++ razširitev
3. Po namestitvi PlatformIO znova zaženite VS Code
4. 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:**
1. Poskusite z drugim USB kablom (nekateri kabli so samo za polnjenje)
2. Preverite Upravitelja naprav (Windows) ali `ls /dev/tty*` (macOS/Linux)
3. Namestite ali posodobite USB gonilnike
4. Poskusite z drugim USB priključkom
5. 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:**
1. Izbrišite mapo `.pio` v vašem projektu
2. Iz ukazne palete poženite "PlatformIO: Rebuild"
3. Poskrbite, da `platformio.ini` vsebuje pravilno konfiguracijo plošče:
```ini
[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:**
1. Ponovno namestite Grove knjižnice:
```bash
cd ~
git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo pip3 install .
```
2. Če uporabljate virtualno okolje, boste morda morali knjižnice namestiti globalno ali kopirati
3. 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:**
1. Preverite fizične povezave (zagotovite, da je Grove kabel popolnoma vstavljen)
2. Potrdite, da je senzor povezan na pravilen vhod (analogni, digitalni, I2C, UART)
3. Zaženite `i2cdetect -y 1`, da preverite, ali se naprava pojavi na I2C vodilu
4. Poskusite z drugim Grove kablom
5. 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:**
1. **Preverite napajanje:** Uporabite uradni 5V 3A USB-C napajalnik za Pi 4
2. **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
3. **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:**
1. 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
2. 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 `nmap` ali Angry IP Scanner
3. Preverite omrežje:
- Poskrbite, da je Pi na istem omrežju kot vaš računalnik
- Poskusite z ethernet povezavo namesto WiFi
4. Preverite uporabniško ime in geslo (privzeto: uporabnik `pi`, geslo `raspberry`)
#### Težava: Grove Base Hat ni zaznan
**Simptomi:** Senzorji ne delujejo, napake I2C
**Rešitev:**
1. Poskrbite, da je Base Hat pravilno nameščen na vseh GPIO pinih
2. Preverite za upognjene pine na Pi-ju ali Base Hat-u
3. Omogočite I2C vmesnik:
```bash
sudo raspi-config nonint do_i2c 0
sudo reboot
```
4. 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:**
1. Preverite hitrost SD kartice (uporabite razred 10 ali boljšo, ali SSD preko USB)
2. Oprostite diskovni prostor: `df -h` za preverjanje, izbrišite nepotrebne datoteke
3. Zmanjšajte količino pomnilnika za GPU v `raspi-config`, če ne uporabljate intenzivno kamere/zaslona
4. Zaprite nepotrebne aplikacije
5. 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:**
1. Preverite, ali koda inicializira zaslon (knjižnica TFT_eSPI)
2. Posodobite firmware Wio Terminala iz [Seeed Wiki](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)
3. Dodajte kodo za inicializacijo zaslona:
```cpp
#include <TFT_eSPI.h>
TFT_eSPI tft;
tft.begin();
tft.fillScreen(TFT_BLACK);
```
4. 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:**
1. **Posodobite WiFi firmware:** Sledite [navodilu za posodobitev WiFi firmware Wio Terminal](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
2. **Preverite WiFi podatke za prijavo:** Poskrbite, da sta SSID in geslo pravilna
3. **WiFi pas:** Wio Terminal podpira samo 2.4GHz WiFi (ne 5GHz)
4. **Jakost signala:** Premaknite se bližje usmerjevalniku
5. **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:**
1. **Poskusite z drugim USB kablom:** Uporabite podatkovni kabel, ne samo polnilnega
2. **Vstopite v način bootloaderja:** Hitro povlecite gumb za vklop dvakrat navzdol
- Modra LED naj utripa, naprava se pojavi kot "Arduino" v Upravitelju naprav
3. **Namestite gonilnike (Windows):**
- Prenesite in namestite [Seeed USB gonilnik](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
4. **Poskusite z drugim USB priključkom:** Izogibajte se USB stikalom, uporabite neposredno povezavo
5. **Posodobite sistemske USB gonilnike**
#### Težava: Senzorji na Wio Terminalu ne delujejo
**Simptomi:** Grove senzorji ne beležijo podatkov
**Rešitev:**
1. Preverite povezave Grove kabla
2. Preverite, da uporabljate pravilen Grove vhod (levo ali desno)
3. Vključite ustrezne knjižnice za senzor
4. Preverite zahteve napajanja senzorja
5. 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:**
1. Poskrbite, da je virtualno okolje aktivirano
2. Namestite/ponovno namestite CounterFit:
```bash
pip install CounterFit
```
3. Preverite, da vrata 5000 niso že v uporabi:
- Windows: `netstat -ano | findstr :5000`
- macOS/Linux: `lsof -i :5000`
4. Ubijte proces, ki uporablja vrata 5000, ali uporabite druga vrata:
```bash
counterfit --port 5001
```
#### Težava: Povezava do CounterFit iz kode ne uspe
**Napaka:** Povezava zavrnjena ali potekel čas
**Rešitev:**
1. Preverite, da CounterFit teče: Odprite brskalnik na `http://127.0.0.1:5000`
2. Preverite, da URL povezave v kodi ustreza naslovu CounterFit
3. Preverite, da požarni zid ne blokira povezave
4. 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:**
1. Ustvarite senzorje v uporabniškem vmesniku CounterFit pred zagonom kode
2. Osvežite stran brskalnika
3. Preverite, da tip senzorja ustreza temu, kar pričakuje koda
4. 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:**
1. **Preverite SSID in geslo:** Preverite, da so podatki za prijavo pravilni
2. **WiFi pas:** Večina IoT naprav podpira samo 2.4GHz (ne 5GHz)
3. **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
4. **Skrito omrežje:** Če je SSID skrit, boste morda morali eksplicitno nastaviti omrežje
5. **Jakost signala:** Premaknite napravo bližje usmerjevalniku
6. **Motnje:** Druge naprave, mikrovalovne pečice ali stene lahko povzročajo motnje
#### Težava: WiFi povezava pogosto pade
**Simptomi:** Prekinjena povezava
**Rešitev:**
1. Preverite stabilnost usmerjevalnika in razmislite o ponovnem zagonu
2. Posodobite firmware naprave
3. Uporabljajte statični IP namesto DHCP
4. Zmanjšajte razdaljo do usmerjevalnika ali dodajte WiFi ojačevalnik
5. Preverite, ali motijo druge naprave
6. 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:**
1. **Preverite poverilnice:**
- Preverite, da je povezovalni niz pravilen
- Poskrbite, da ni dodatnih presledkov ali prelomov vrstic v povezovalnem nizu
2. **Preverite registracijo naprave:** Naprava mora biti registrirana v IoT Hub-u
3. **Požarni zid/proxy:** Poskrbite, da je dovoljen odhodni promet MQTT (vrata 8883) ali HTTPS (vrata 443)
4. **Regija IoT Huba:** Poskrbite, da IoT Hub obratovalno deluje in ni v drugi regiji, ki povzroča zakasnitve
5. **Omejitve količine:** Preverite, ali so prekoračene omejitve brezplačne stopnje
6. **Preizkus povezave:**
```bash
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:**
1. Preverite, da applika funkcij deluje (ni ustavljena)
2. Preverite povezovalni niz v nastavitvah Azure Functions
3. Preverite dnevniške zapise funkcije v Azure portalu
4. Preverite, da je konfiguriran združljiv endpoint Event Huba
5. Preverite, da oblika sporočila ustreza pričakovanjem funkcije
6. 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:**
1. **Naslov posrednika:** Preverite, ali je URL/IP posrednika pravilen
2. **Vrata:** Preverite številko vrat (1883 za nešifrirano, 8883 za TLS)
3. **Preverjanje pristnosti:** Preverite uporabniško ime/geslo, če je zahtevano
4. **TLS/SSL:** Zagotovite, da so certifikati veljavni in zaupanja vredni
5. **Požarni zid:** Preverite, da vrata niso blokirana
6. **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:**
1. **Imena tem:** Preverite, da se tema naročnika natančno ujema s temo založnika
2. **Raven QoS:** Poskusite QoS 1 ali 2 namesto 0
3. **Divje karte:** Preverite pravilno uporabo tematskih divjih kart (`+` za eno raven, `#` za več ravni)
4. **Zadržana sporočila:** Založnik lahko nastavi zastavico za zadrževanje, da ohrani zadnje sporočilo
5. **Č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:**
1. **Preverite povezave:** Zagotovite, da je senzor pravilno povezan
2. **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
3. **Kalibracija:** Nekateri senzorji potrebujejo kalibracijo (vlaga v tleh, svetloba)
4. **Ponovni zagon:** Odklopite in ponovno priklopite senzor
5. **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:**
1. **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
2. **Preverite zaščito senzorja:** Vlažni senzorji se lahko poslabšajo, če je prevleka poškodovana
3. **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:**
1. **Postavitev senzorja:** Izogibajte se neposredni sončni svetlobi, virom toplote ali pretoku zraka
2. **Čas segrevanja:** Senzorju dovolite 2 sekundi po vklopu, preden berete
3. **Pogostost merjenja:** DHT senzorji potrebujejo čas med meritvami (vsaj 2 sekundi)
4. **Preverite kondenzacijo:** Lahko vpliva na meritve
5. **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:**
1. **Omogočite vmesnik kamere:**
```bash
sudo raspi-config
```
Pojdite na Interface Options → Camera → Enable
2. **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
3. **Posodobite firmware:**
```bash
sudo apt update
sudo apt full-upgrade
sudo reboot
```
4. **Preizkusite kamero:**
```bash
raspistill -o test.jpg
```
#### Težava: Slike iz kamere so nizke kakovosti
**Simptomi:** Zamegljene, temne ali izprane slike
**Rešitev:**
1. **Fokus:** Odstranite zaščitno folijo s leče, prilagodite fokus, če je nastavljiv
2. **Osvetlitev:** Zagotovite ustrezno osvetlitev
3. **Nastavitve kamere:** Prilagodite osvetlitev, ISO, bel balans v kodi
4. **Stabilnost:** Držite kamero mirno, uporabite stojalo, če je potrebno
5. **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:**
1. **Preverite povezave:** Preverite, ali so avdio naprave pravilno priključene
2. **Test strojne opreme:**
- Zvočnik: `speaker-test -t wav -c 2`
- Mikrofon: `arecord -l` za seznam, `arecord test.wav` za snemanje
3. **Nastavitve glasnosti:** Preverite in prilagodite glasnost:
```bash
alsamixer
```
4. **Izberite avdio napravo:** V kodi navedite pravilno avdio napravo
5. **Težave z gonilniki:** Posodobite ALSA ali ponovno namestite avdio gonilnike
#### Težava: ReSpeaker hat ne deluje
**Simptomi:** Avdio naprava ni zaznana
**Rešitev:**
1. **Namestite gonilnike:**
```bash
git clone https://github.com/HinTak/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot
```
2. **Preverite namestitev:** `arecord -l` bi moral našteti ReSpeaker
3. **Posodobite firmware:** Nekatere različice Pi OS potrebujejo posodobitve gonilnikov
4. **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:**
1. **Nastavite Python interpreter:** Command Palette → "Python: Select Interpreter" → Izberite venv
2. **Ponovno zaženite VS Code** po izbiri interpreterja
3. **Preverite nastavitve:** V `settings.json` dodajte:
```json
"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:**
1. **Preverite, da je koda shranjena** (preverite piko na zavihku datoteke)
2. **Preverite, kateri Python teče:** `which python` ali `where python`
3. **Za Wio Terminal:** Zagotovite nalaganje kode preko PlatformIO (kliknite gumb za nalaganje)
4. **Za Raspberry Pi:** Prijavite se prek SSH na Pi in tam zaženite kodo
5. **Preverite okno z izhodom** za napake
#### Težava: IntelliSense ne prikazuje funkcij knjižnice
**Simptomi:** Ni samodejnega dopolnjevanja za uvožene module
**Rešitev:**
1. Zagotovite, da je knjižnica nameščena v tekočem okolju
2. Ponovno naložite okno VS Code
3. Preverite, da je Python interpreter pravilen
4. 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:**
1. **Namestite venv modul:**
- Ubuntu/Debian: `sudo apt install python3-venv`
- macOS: Vključen v Python
- Windows: Znova namestite Python z vsemi komponentami
2. **Preverite namestitev Pythona:** Zagotovite, da je Python pravilno nameščen
3. **Uporabite polno pot:** Poskusite `python3 -m venv .venv` z izrecnim klicem python3
#### Težava: Paketi nameščeni na napačnem mestu
**Simptomi:** Napaka pri uvozu po namestitvi paketa
**Rešitev:**
1. **Preverite aktivacijo venv:** Ukazna vrstica naj kaže `(.venv)`
2. **Preverite lokacijo pip:** `which pip` naj kaže na `.venv/bin/pip`
3. **Ponovno namestite v venv:** Aktivirajte venv, nato `pip install <package>`
4. **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:**
1. **Ne premikajte venv:** Izbrišite ga in ustvarite novega na novi lokaciji
2. **Uporabite requirements.txt:**
```bash
pip freeze > requirements.txt
pip install -r requirements.txt
```
3. **Znova ustvarite venv:**
```bash
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:**
1. **Posodobite pip:**
```bash
pip install --upgrade pip
```
2. **Namestite orodja za gradnjo:**
- Ubuntu/Debian: `sudo apt install build-essential python3-dev`
- macOS: `xcode-select --install`
- Windows: Namestite Visual Studio Build Tools
3. **Preverite povezavo z internetom**
4. **Poskusite drug repozitorij paketov:** `pip install --index-url https://pypi.org/simple/ <package>`
5. **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:**
1. **Uporabite sveže virtualno okolje** za vsak projekt
2. **Posodobite pakete:** `pip install --upgrade <package>`
3. **Preverite zahteve:** Uporabite `pip check` za iskanje konfliktov
4. **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:**
1. **Zmanjšajte frekvenco branja senzorjev:** Ne berite senzorjev preveč pogosto
2. **Optimizirajte zanke:** Izogibajte se čakanju, uporabite sleep() ali zakasnitve
3. **Težave z pomnilnikom:**
- Zaprite nepotrebne aplikacije
- Oprostite prostor na disku
- Spremljajte z `top` ali `htop` na Pi
4. **Hitrost SD kartice:** Uporabite hitrejšo SD kartico ali SSD za Raspberry Pi
5. **Odzivnost omrežja:** Uporabljajte asinhrone operacije za omrežne klice
### Težava: Napake zaradi pomanjkanja pomnilnika
**Napaka:** `MemoryError` ali zamrznitev sistema
**Rešitev:**
1. **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)
2. **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:**
1. **Težave s SD kartico:**
- Uporabljajte kakovostne SD kartice (izogibajte se poceni/ponarejenim)
- Redni varnostni prenosi
- Čisto zaustavitev (ne izključujte napajanja nenadoma)
2. **Prelivanje predpomnilnika:** Povečajte velikosti predpomnilnikov v kodi
3. **Zanesljivost omrežja:** Uvedite logiko ponovnih poskusov in obdelavo napak
4. **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:**
```bash
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:**
1. Poiščite proces, ki uporablja vrata: `lsof -i :<port>` ali `netstat -ano | findstr :<port>`
2. Ubijte proces ali v kodi uporabite drugačna vrata
### `SSL: CERTIFICATE_VERIFY_FAILED`
**Vzrok:** Neuspešna preveritev SSL certifikata
**Rešitev:**
1. Posodobite certifikate: `pip install --upgrade certifi`
2. Preverite pravilen čas sistema: `date`
3. 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:**
1. Uporabite dosledne zamike (4 presledki so standard v Pythonu)
2. Nastavite urejevalnik, da uporablja presledke namesto tabulatorjev
3. VS Code: Nastavite `"editor.insertSpaces": true` in `"editor.tabSize": 4`
### `UnicodeDecodeError` ali `UnicodeEncodeError`
**Vzrok:** Težave s kodiranjem znakov
**Rešitev:**
```python
# 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](README.md) in navodila za lekcije
- **Vodiči za strojno opremo:** Preverite [hardware.md](hardware.md) za informacije, specifične za strojno opremo
- **Seeed Studio Wiki:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) za Grove komponente
### 2. Iščite podobne težave
- **GitHub Issues:** Iščite [obstoječe težave](https://github.com/microsoft/IoT-For-Beginners/issues)
- **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:
1. Pojdite na [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
2. Kliknite "New Issue"
3. 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](https://discord.gg/nTYy5BXMWG)
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-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
1. **Varnostne kopije:** Redno varnostno kopirajte delujoče SD kartice/kodo
2. **Dokumentirajte spremembe:** Zapišite, kaj deluje v komentarjih
3. **Nadzor različic:** Uporabljajte git za sledenje spremembam kode
4. **Testirajte postopoma:** Preizkušajte manjše spremembe pred združevanjem
5. **Berite sporočila o napakah:** Pogosto povedo natanko, kaj je narobe
6. **Redno posodabljajte:** Ohranjajte programsko opremo/firmware posodobljeno
7. **Uporabljajte kakovostne komponente:** Izogibajte se poceni kablom/napajalnikom
8. **Stabilna napetost:** Uporabljajte primerno napajanje (še posebej Pi)
### Razvojni potek dela
1. **Začnite preprosto:** Začnite z delujočo vzorčno kodo
2. **Po ena sprememba naenkrat:** Lažje je odkriti, kaj povzroča napako
3. **Pogosto testirajte:** Težave odpravite zgodaj
4. **Ohranite red:** Logično organizirajte datoteke in kodo
5. **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](CONTRIBUTING.md) in pomagate drugim!*
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Omejitev odgovornosti**:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco [Co-op Translator](https://github.com/Azure/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.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->