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/pl/TROUBLESHOOTING.md

30 KiB

Przewodnik rozwiązywania problemów

Ten przewodnik pomoże Ci rozwiązać typowe problemy podczas pracy z kursem IoT for Beginners. Problemy są uporządkowane według kategorii, aby ułatwić nawigację.

Spis treści


Problemy z instalacją

Instalacja Pythona

Problem: Wersja Pythona jest zbyt stara

Błąd: Python 3.6 lub wyższy jest wymagany

Rozwiązanie:

  1. Pobierz najnowszą wersję Pythona 3 z python.org
  2. Podczas instalacji na Windows zaznacz opcję „Add Python to PATH”
  3. Zweryfikuj instalację:
    python3 --version
    

Problem: Konflikty związane z wieloma wersjami Pythona

Objawy: Uruchamiana jest niewłaściwa wersja Pythona, pakiety instalują się w złym miejscu

Rozwiązanie:

  • Windows: Używaj py -3 zamiast python aby jawnie wywołać Python 3
  • macOS/Linux: Używaj python3 zamiast python
  • Zawsze twórz i używaj wirtualnych środowisk dla projektów

Problem: Nie znaleziono polecenia pip

Błąd: 'pip' nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne

Rozwiązanie:

  1. Spróbuj zamiast pip użyć pip3
  2. Lub użyj python -m pip albo python3 -m pip
  3. Upewnij się, że Python został dodany do PATH (przeinstaluj Pythona i zaznacz tę opcję)

VS Code i rozszerzenia

Problem: Rozszerzenie Pylance nie działa

Objawy: Brak IntelliSense, uzupełniania kodu lub sprawdzania typów w Pythonie

Rozwiązanie:

  1. Otwórz paletę poleceń VS Code (Ctrl+Shift+P lub Cmd+Shift+P)
  2. Wpisz „Python: Select Interpreter”
  3. Wybierz właściwy interpreter Pythona (wirtualne środowisko jeśli używasz)
  4. Przeładuj okno VS Code

Problem: VS Code nie wykrywa wirtualnego środowiska

Objawy: Wybrano niewłaściwy interpreter Pythona

Rozwiązanie:

  1. Upewnij się, że aktywowałeś wirtualne środowisko w terminalu
  2. Otwórz paletę poleceń i uruchom „Python: Select Interpreter”
  3. Wybierz interpreter z folderu .venv
  4. Sprawdź, czy pasek stanu (lewy dolny róg) pokazuje właściwą wersję Pythona

PlatformIO (Wio Terminal)

Problem: Instalacja PlatformIO nie powiodła się

Błąd: Różne błędy podczas instalacji PlatformIO

Rozwiązanie:

  1. Upewnij się, że VS Code jest aktualny
  2. Najpierw zainstaluj rozszerzenie C/C++
  3. Uruchom ponownie VS Code po instalacji PlatformIO
  4. Sprawdź połączenie internetowe (PlatformIO pobiera duże pliki)

Problem: PlatformIO nie wykrywa płytki

Objawy: Nie można wgrać kodu do Wio Terminal

Rozwiązanie:

  1. Wypróbuj inny kabel USB (niektóre kable służą tylko do ładowania)
  2. Sprawdź Menedżera urządzeń (Windows) lub ls /dev/tty* (macOS/Linux)
  3. Zainstaluj lub zaktualizuj sterowniki USB
  4. Wypróbuj inny port USB
  5. Przesuń przełącznik zasilania na Wio Terminal szybko dwa razy, aby wejść w tryb bootloadera

Problem: Błędy kompilacji w PlatformIO

Błąd: fatal error: Arduino.h: No such file or directory

Rozwiązanie:

  1. Usuń folder .pio w projekcie
  2. Uruchom „PlatformIO: Rebuild” z palety poleceń
  3. Upewnij się, że plik platformio.ini zawiera poprawną konfigurację płyty:
    [env:seeed_wio_terminal]
    platform = atmelsam
    board = seeed_wio_terminal
    framework = arduino
    

Biblioteki Grove

Problem: Import biblioteki Grove nie działa na Raspberry Pi

Błąd: ModuleNotFoundError: No module named 'grove'

Rozwiązanie:

  1. Ponownie zainstaluj biblioteki Grove:
    cd ~
    git clone https://github.com/Seeed-Studio/grove.py
    cd grove.py
    sudo pip3 install .
    
  2. Jeśli używasz wirtualnego środowiska, może być konieczna globalna instalacja lub skopiowanie bibliotek
  3. Sprawdź, czy I2C jest włączone: sudo raspi-config nonint do_i2c 0

Problem: Czujnik Grove nie jest wykrywany

Błąd: IOError: [Errno 121] Remote I/O error

Rozwiązanie:

  1. Sprawdź połączenia fizyczne (upewnij się, że kabel Grove jest całkowicie wsunięty)
  2. Zweryfikuj, czy czujnik podłączony jest do właściwego portu (analogowy, cyfrowy, I2C, UART)
  3. Uruchom i2cdetect -y 1 aby zobaczyć, czy urządzenie pojawia się na magistrali I2C
  4. Wypróbuj inny kabel Grove
  5. Upewnij się, że Grove Base Hat jest poprawnie osadzony na pinach GPIO Raspberry Pi

Problemy sprzętowe

Raspberry Pi

Problem: Raspberry Pi nie uruchamia się

Objawy: Brak obrazu, brak aktywności diod LED lub wyświetla się tęczowy ekran

Rozwiązanie:

  1. Sprawdź zasilacz: Użyj oficjalnego zasilacza 5V 3A USB-C dla Pi 4
  2. Problemy z kartą SD:
    • Sformatuj kartę SD i ponownie zainstaluj Raspberry Pi OS
    • Wypróbuj inną kartę SD (używaj polecanych marek)
    • Upewnij się, że karta SD jest prawidłowo włożona
  3. Sprawdź połączenie HDMI: Spróbuj obu portów HDMI na Pi 4, użyj portu HDMI bliższego zasilaniu

Problem: Nie można połączyć się z Raspberry Pi przez SSH

Objawy: Połączenie odrzucone lub brak odpowiedzi

Rozwiązanie:

  1. Włącz SSH:
    • Podczas nagrywania SD karti za pomocą Raspberry Pi Imager, skonfiguruj SSH w zaawansowanych opcjach
    • Lub utwórz pusty plik o nazwie ssh (bez rozszerzenia) w partycji boot
  2. Znajdź adres IP Pi:
    • Sprawdź urządzenia podłączone do routera
    • Użyj ping raspberrypi.local (jeśli działa mDNS)
    • Użyj narzędzi do skanowania sieci, takich jak nmap lub Angry IP Scanner
  3. Sprawdź sieć:
    • Upewnij się, że Pi jest w tej samej sieci co komputer
    • Spróbuj połączenia przez Ethernet zamiast WiFi
  4. Zweryfikuj nazwę użytkownika/hasło (domyślnie: użytkownik pi, hasło raspberry)

Problem: Grove Base Hat nie jest rozpoznany

Objawy: Czujniki nie działają, błędy I2C

Rozwiązanie:

  1. Upewnij się, że Base Hat jest poprawnie osadzony na wszystkich pinach GPIO
  2. Sprawdź, czy nie ma wygiętych pinów na Pi lub Base Hat
  3. Włącz interfejs I2C:
    sudo raspi-config nonint do_i2c 0
    sudo reboot
    
  4. Zweryfikuj działanie I2C: i2cdetect -y 1

Problem: Raspberry Pi działa wolno

Objawy: Interfejs opóźnia się, powolna reakcja

Rozwiązanie:

  1. Sprawdź szybkość karty SD (używaj klasy 10 lub lepszej, lub SSD przez USB)
  2. Zwolnij miejsce na dysku: df -h do sprawdzenia, usuń niepotrzebne pliki
  3. Zmniejsz pamięć GPU w raspi-config, jeśli nie używasz intensywnie kamery/wyświetlacza
  4. Zamknij zbędne aplikacje
  5. Rozważ aktualizację do Pi 4 z większą ilością RAM, jeśli masz Pi 3 lub starszy

Wio Terminal

Problem: Ekran Wio Terminal pozostaje czarny

Objawy: Brak wyświetlania po wgraniu kodu

Rozwiązanie:

  1. Sprawdź, czy kod inicjalizuje wyświetlacz (biblioteka TFT_eSPI)
  2. Zaktualizuj firmware Wio Terminal z Seeed Wiki
  3. Dodaj kod inicjalizujący wyświetlacz:
    #include <TFT_eSPI.h>
    TFT_eSPI tft;
    tft.begin();
    tft.fillScreen(TFT_BLACK);
    
  4. Spróbuj wgrać przykładowy szkic z PlatformIO, aby przetestować sprzęt

Problem: WiFi nie działa na Wio Terminal

Objawy: Nie można połączyć się z WiFi, błędy sieciowe

Rozwiązanie:

  1. Zaktualizuj firmware WiFi: Postępuj według instrukcji aktualizacji WiFi Wio Terminal
  2. Sprawdź dane uwierzytelniające WiFi: Upewnij się, że SSID i hasło są poprawne
  3. Pasmo WiFi: Wio Terminal obsługuje tylko WiFi 2.4GHz (nie 5GHz)
  4. Siła sygnału: Przesuń urządzenie bliżej routera
  5. Ustawienia routera: Niektóre sieci enterprise/WPA-Enterprise mogą nie działać

Problem: Wio Terminal nie jest rozpoznawany przez komputer

Objawy: Urządzenie USB nie jest wykrywane

Rozwiązanie:

  1. Wypróbuj inny kabel USB: Używaj kabla danych, a nie tylko do ładowania
  2. Wejdź w tryb bootloadera: Przesuń wyłącznik zasilania dwa razy szybko w dół
    • Niechbieska dioda LED powinna pulsować, urządzenie pojawi się jako „Arduino” w Menedżerze urządzeń
  3. Zainstaluj sterowniki (Windows):
  4. Wypróbuj inny port USB: Unikaj hubów USB, używaj bezpośredniego połączenia
  5. Zaktualizuj sterowniki USB systemu

Problem: Czujniki nie działają na Wio Terminal

Objawy: Czujniki Grove nie odczytują danych

Rozwiązanie:

  1. Sprawdź połączenia kabla Grove
  2. Zweryfikuj, że używasz właściwego portu Grove (lewy lub prawy)
  3. Dołącz odpowiednie biblioteki dla czujnika
  4. Sprawdź wymagania zasilania czujnika
  5. Przetestuj czujnik przykładowym kodem z biblioteki

Wirtualne urządzenie (CounterFit)

Problem: Aplikacja CounterFit nie uruchamia się

Błąd: Różne błędy Pythona podczas uruchamiania CounterFit

Rozwiązanie:

  1. Upewnij się, że wirtualne środowisko jest aktywne
  2. Zainstaluj/ponownie zainstaluj CounterFit:
    pip install CounterFit
    
  3. Sprawdź, czy port 5000 nie jest już zajęty:
    • Windows: netstat -ano | findstr :5000
    • macOS/Linux: lsof -i :5000
  4. Zakończ proces korzystający z portu 5000 lub użyj innego portu:
    counterfit --port 5001
    

Problem: Nie można połączyć się z CounterFit z kodu

Błąd: Połączenie odrzucone lub brak odpowiedzi

Rozwiązanie:

  1. Zweryfikuj, że CounterFit działa: otwórz przeglądarkę i wpisz http://127.0.0.1:5000
  2. Sprawdź, czy adres URL połączenia w kodzie odpowiada adresowi CounterFit
  3. Upewnij się, że zapora sieciowa nie blokuje połączenia
  4. Spróbuj ponownie uruchomić zarówno aplikację CounterFit, jak i swój kod

Problem: Czujniki nie pojawiają się w CounterFit

Objawy: Utworzone czujniki nie wyświetlają się w interfejsie CounterFit

Rozwiązanie:

  1. Utwórz czujniki w interfejsie CounterFit przed uruchomieniem kodu
  2. Odśwież stronę w przeglądarce
  3. Sprawdź, czy typ czujnika odpowiada temu, czego oczekuje kod
  4. Wyczyść pamięć podręczną przeglądarki

Problemy z łącznością

Połączenie WiFi

Problem: Urządzenie nie może połączyć się z WiFi

Objawy: Przekroczenie czasu oczekiwania, uwierzytelnienie nie powiodło się

Rozwiązanie:

  1. Sprawdź SSID i hasło: Zweryfikuj, czy dane uwierzytelniające są poprawne
  2. Pasmo WiFi: Większość urządzeń IoT obsługuje tylko 2.4GHz (nie 5GHz)
  3. Ustawienia routera:
    • Wyłącz izolację AP, jeśli jest włączona
    • Używaj zabezpieczeń WPA2-PSK (unikaj WPA3, WEP lub otwartych sieci)
    • Upewnij się, że DHCP jest włączone
  4. Ukryte sieci: Jeśli SSID jest ukryte, być może trzeba je jawnie skonfigurować
  5. Siła sygnału: Przesuń urządzenie bliżej routera
  6. Zakłócenia: Inne urządzenia, kuchenka mikrofalowa lub ściany mogą powodować zakłócenia

Problem: Połączenie WiFi często zanika

Objawy: Przerywane połączenie

Rozwiązanie:

  1. Sprawdź stabilność routera i rozważ jego restart
  2. Zaktualizuj firmware urządzenia
  3. Użyj statycznego adresu IP zamiast DHCP
  4. Zmniejsz odległość od routera lub dodaj wzmacniacz sygnału WiFi
  5. Sprawdź zakłócenia od innych urządzeń
  6. Zweryfikuj, czy zasilanie jest wystarczające (zwłaszcza dla Raspberry Pi)

Usługi w chmurze

Problem: Nie można połączyć się z Azure IoT Hub

Błąd: Uwierzytelnianie nie powiodło się, połączenie odrzucone

Rozwiązanie:

  1. Zweryfikuj dane uwierzytelniające:
    • Sprawdź, czy ciąg połączeniowy jest poprawny
    • Upewnij się, że nie ma dodatkowych spacji lub znaków nowej linii w ciągu połączeniowym
  2. Sprawdź rejestrację urządzenia: Urządzenie musi być zarejestrowane w IoT Hub
  3. Zapora/proxy: Upewnij się, że dostęp wychodzący na MQTT (port 8883) lub HTTPS (port 443) jest dozwolony
  4. Region IoT Hub: Upewnij się, że IoT Hub działa i nie jest w innym regionie powodującym opóźnienia
  5. Limity kwot: Sprawdź, czy limity darmowego planu nie zostały przekroczone
  6. Testuj połączenie:
    az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
    

Problem: Funkcje Azure nie są wywoływane

Objawy: Wiadomości są wysyłane, ale funkcja nie jest uruchamiana

Rozwiązanie:

  1. Sprawdź, czy aplikacja funkcji działa (nie jest zatrzymana)
  2. Zweryfikuj ciąg połączeniowy w ustawieniach aplikacji funkcji
  3. Sprawdź logi funkcji w portalu Azure
  4. Upewnij się, że punkt końcowy kompatybilny z Event Hub jest poprawnie skonfigurowany
  5. Zweryfikuj, czy format wiadomości odpowiada oczekiwaniom funkcji
  6. Sprawdź plan usługi aplikacji funkcji (konsumpcyjny vs dedykowany)

MQTT

Problem: Połączenie MQTT nie powiodło się

Błąd: Połączenie odmówione, uwierzytelnianie nie powiodło się

Rozwiązanie:

  1. Adres brokera: Sprawdź, czy adres URL/IP brokera jest poprawny
  2. Port: Sprawdź numer portu (1883 dla nieszyfrowanego, 8883 dla TLS)
  3. Uwierzytelnianie: Zweryfikuj nazwę użytkownika/hasło, jeśli wymagane
  4. TLS/SSL: Upewnij się, że certyfikaty są ważne i zaufane
  5. Firewall: Sprawdź, czy port nie jest zablokowany
  6. Test za pomocą klienta MQTT: Użyj MQTT Explorer lub mosquitto_pub/sub do testu

Problem: Wiadomości MQTT nie są odbierane

Objawy: Wiadomości są publikowane, ale nie są odbierane przez subskrybentów

Rozwiązanie:

  1. Nazwy tematów: Zweryfikuj, czy temat subskrybenta dokładnie pasuje do tematu wydawcy
  2. Poziom QoS: Spróbuj QoS 1 lub 2 zamiast 0
  3. Wildcardy: Sprawdź, czy symbole wieloznaczne tematów są używane poprawnie (+ dla pojedynczego poziomu, # dla wielopoziomowego)
  4. Zachowane wiadomości: Wydawca może ustawić flagę retain, aby zachować ostatnią wiadomość
  5. Czas połączenia: Upewnij się, że subskrybent łączy się przed publikacją wiadomości

Problemy z czujnikami i aktuatorami

Czujniki Grove

Problem: Czujnik zwraca niepoprawne wartości

Objawy: Odczyty wynoszą 0, -1 lub są bezsensowne

Rozwiązanie:

  1. Sprawdź połączenia: Upewnij się, że czujnik jest poprawnie podłączony
  2. Prawidłowy port: Zweryfikuj, czy czujnik jest podłączony do odpowiedniego typu portu:
    • Czujniki analogowe → porty analogowe (A0, A2, A4)
    • Czujniki cyfrowe → porty cyfrowe (D5, D16, D18 itd.)
    • Czujniki I2C → porty I2C
  3. Kalibracja: Niektóre czujniki wymagają kalibracji (wilgotność gleby, światło)
  4. Restart: Odłącz i ponownie podłącz czujnik
  5. Karta katalogowa czujnika: Sprawdź specyfikacje i wymagania czujnika

Problem: Pojemnościowy czujnik wilgotności gleby zawsze wskazuje wilgotność

Objawy: Czujnik odczytuje wysoką wilgotność, nawet gdy gleba jest sucha

Rozwiązanie:

  1. Wymagana kalibracja: Czujniki gleby wymagają kalibracji:
    • Odczyt wartości na powietrzu (sucha baza)
    • Odczyt wartości w wodzie (mokra baza)
    • Mapuj odczyty pomiędzy tymi wartościami
  2. Sprawdź powłokę czujnika: Czujniki wilgotności mogą się pogorszyć, jeśli powłoka jest uszkodzona
  3. Miejsce instalacji: Upewnij się, że czujnik jest całkowicie umieszczony w glebie

Problem: Niepoprawne odczyty czujnika temperatury/wilgotności

Objawy: DHT11/DHT22 pokazuje błędną temperaturę lub wilgotność

Rozwiązanie:

  1. Umieszczenie czujnika: Unikaj bezpośredniego światła słonecznego, źródeł ciepła lub przepływu powietrza
  2. Czas rozgrzewania: Pozwól czujnikowi 2 sekundy po włączeniu zasilania przed odczytem
  3. Częstotliwość odczytu: Czujniki DHT potrzebują czasu pomiędzy odczytami (co najmniej 2 sekundy)
  4. Sprawdź kondensację: Może wpływać na odczyty
  5. Jakość czujnika: DHT11 jest mniej dokładny niż DHT22

Kamera

Problem: Kamera nie jest wykrywana na Raspberry Pi

Błąd: mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'

Rozwiązanie:

  1. Włącz interfejs kamery:
    sudo raspi-config
    
    Przejdź do Interface Options → Camera → Włącz
  2. Sprawdź taśmę: Upewnij się, że taśma kamery jest poprawnie włożona
    • Niebieska strona skierowana w stronę portów USB na Pi Zero
    • Niebieska strona skierowana od portów USB na Pi 4
  3. Aktualizacja firmware:
    sudo apt update
    sudo apt full-upgrade
    sudo reboot
    
  4. Test kamery:
    raspistill -o test.jpg
    

Problem: Zdjęcia z kamery są złej jakości

Objawy: Nieostre, ciemne lub wyblakłe obrazy

Rozwiązanie:

  1. Ostrość: Usuń ochronną folię z obiektywu, wyreguluj ostrość, jeśli jest regulowana
  2. Oświetlenie: Zapewnij odpowiednie oświetlenie
  3. Ustawienia kamery: Dostosuj ekspozycję, ISO, balans bieli w kodzie
  4. Stabilność: Trzymaj kamerę nieruchomo, użyj statywu jeśli potrzeba
  5. Rozdzielczość: Nie przekraczaj maksymalnej rozdzielczości kamery

Mikrofon i Głośnik

Problem: Brak dźwięku wejściowego/wyjściowego

Objawy: Mikrofon nie nagrywa, głośnik nie odtwarza dźwięku

Rozwiązanie:

  1. Sprawdź połączenia: Zweryfikuj, czy urządzenia audio są poprawnie podłączone
  2. Test sprzętu:
    • Głośnik: speaker-test -t wav -c 2
    • Mikrofon: arecord -l do listy, arecord test.wav do nagrania
  3. Ustawienia głośności: Sprawdź i dostosuj głośność:
    alsamixer
    
  4. Wybierz urządzenie audio: Określ poprawne urządzenie audio w kodzie
  5. Problemy ze sterownikami: Zaktualizuj ALSA lub ponownie zainstaluj sterowniki audio

Problem: Nakładka ReSpeaker nie działa

Objawy: Urządzenie audio nie jest wykrywane

Rozwiązanie:

  1. Zainstaluj sterowniki:
    git clone https://github.com/HinTak/seeed-voicecard
    cd seeed-voicecard
    sudo ./install.sh
    sudo reboot
    
  2. Sprawdź instalację: arecord -l powinno wykazać ReSpeaker
  3. Aktualizacja firmware: Niektóre wersje Pi OS wymagają aktualizacji sterowników
  4. Sprawdź montaże: Upewnij się, że nakładka jest poprawnie podłączona do pinów GPIO

Problemy z środowiskiem programistycznym

VS Code

Problem: Terminal nie aktywuje automatycznie środowiska wirtualnego

Objawy: Terminal się otwiera, ale venv nie jest aktywowany

Rozwiązanie:

  1. Ustaw interpreter Pythona: Paleta poleceń → "Python: Select Interpreter" → Wybierz venv
  2. Uruchom ponownie VS Code po wybraniu interpretera
  3. Sprawdź ustawienia: W settings.json dodaj:
    "python.terminal.activateEnvironment": true
    

Problem: Kod nie działa na urządzeniu

Objawy: Kod działa, ale nic się nie dzieje na urządzeniu

Rozwiązanie:

  1. Zweryfikuj, czy kod jest zapisany (sprawdź kropkę na zakładce pliku)
  2. Sprawdź, który Python działa: which python lub where python
  3. Dla Wio Terminal: Upewnij się, że kod jest przesłany przez PlatformIO (kliknij przycisk upload)
  4. Dla Raspberry Pi: Połącz się przez SSH i uruchom kod tam
  5. Sprawdź okno wyjścia pod kątem błędów

Problem: IntelliSense nie pokazuje funkcji biblioteki

Objawy: Brak autouzupełniania dla importowanych modułów

Rozwiązanie:

  1. Upewnij się, że biblioteka jest zainstalowana w bieżącym środowisku
  2. Przeładuj okno VS Code
  3. Sprawdź, czy interpreter Pythona jest poprawny
  4. Zainstaluj typy (type stubs), jeśli są dostępne: pip install types-<library-name>

Środowiska wirtualne Pythona

Problem: Nie można utworzyć środowiska wirtualnego

Błąd: The virtual environment was not created successfully

Rozwiązanie:

  1. Zainstaluj moduł venv:
    • Ubuntu/Debian: sudo apt install python3-venv
    • macOS: Powinien być dołączony do Pythona
    • Windows: Zainstaluj ponownie Pythona ze wszystkimi składnikami
  2. Sprawdź instalację Pythona: Zweryfikuj, czy Python jest poprawnie zainstalowany
  3. Użyj pełnej ścieżki: Spróbuj python3 -m venv .venv z explicite wywołaniem python3

Problem: Pakiety instalowane w niewłaściwej lokalizacji

Objawy: Błąd importu po instalacji pakietu

Rozwiązanie:

  1. Zweryfikuj, czy venv jest aktywowany: Wiersz poleceń powinien pokazywać (.venv)
  2. Sprawdź lokalizację pip: which pip powinno wskazywać .venv/bin/pip
  3. Zainstaluj ponownie w venv: Aktywuj venv, następnie pip install <package>
  4. Nie używaj sudo z pip w środowisku wirtualnym

Problem: Środowisko wirtualne nie jest przenośne

Objawy: Venv nie działa po przeniesieniu lub na innym komputerze

Rozwiązanie:

  1. Nie przenoś venv: Usuń i utwórz ponownie w nowym miejscu
  2. Używaj requirements.txt:
    pip freeze > requirements.txt
    pip install -r requirements.txt
    
  3. Utwórz ponownie venv:
    python3 -m venv .venv
    source .venv/bin/activate  # lub activate.bat w systemie Windows
    pip install -r requirements.txt
    

Zależności

Problem: Błąd instalacji pakietu

Błąd: Różne błędy pip podczas instalacji

Rozwiązanie:

  1. Zaktualizuj pip:
    pip install --upgrade pip
    
  2. Zainstaluj narzędzia build:
    • Ubuntu/Debian: sudo apt install build-essential python3-dev
    • macOS: xcode-select --install
    • Windows: Zainstaluj Visual Studio Build Tools
  3. Sprawdź połączenie internetowe
  4. Próbuj innego indeksu pakietów: pip install --index-url https://pypi.org/simple/ <package>
  5. Zainstaluj konkretną wersję: pip install <package>==<version>

Problem: Konflikty zależności

Błąd: ERROR: pip's dependency resolver does not currently take into account all the packages that are installed

Rozwiązanie:

  1. Używaj świeżego środowiska wirtualnego dla każdego projektu
  2. Aktualizuj pakiety: pip install --upgrade <package>
  3. Sprawdź wymagania: Użyj pip check do wykrywania konfliktów
  4. Instaluj zgodne wersje: Określ zakres wersji w requirements.txt

Problemy z wydajnością

Problem: Kod działa wolno

Objawy: Opóźnienia, timeouty, brak reakcji

Rozwiązanie:

  1. Zmniejsz częstotliwość odczytów czujników: Nie odczytuj czujników zbyt często
  2. Optymalizuj pętle: Unikaj aktywnego oczekiwania, używaj sleep() lub opóźnień
  3. Problemy z pamięcią:
    • Zamknij niepotrzebne aplikacje
    • Zwolnij miejsce na dysku
    • Monitoruj za pomocą top lub htop na Pi
  4. Szybkość karty SD: Użyj szybszej karty SD lub SSD dla Raspberry Pi
  5. Opóźnienia sieciowe: Używaj operacji asynchronicznych dla wywołań sieciowych

Problem: Błędy braku pamięci

Błąd: MemoryError lub zawieszanie się systemu

Rozwiązanie:

  1. Dla Raspberry Pi:
    • Zamknij niepotrzebne aplikacje
    • Zwiększ przestrzeń wymiany (swap)
    • Używaj lżejszego systemu (wersja Lite)
    • Zwiększ RAM (Pi 4 ma opcje 2/4/8GB)
  2. Dla Wio Terminal:
    • Zmniejsz rozmiary buforów
    • Używaj mniejszych obrazów
    • Optymalizuj użycie łańcuchów znaków
    • Sprawdź wycieki pamięci (niezwolniona pamięć)

Problem: Utrata lub uszkodzenie danych

Objawy: Brakujące wiadomości, uszkodzone pliki

Rozwiązanie:

  1. Problemy z kartą SD:
    • Używaj jakościowych kart SD (unikaj tanich/podróbek)
    • Regularne kopie zapasowe
    • Bezpieczne wyłączanie (nie odcinaj zasilania)
  2. Przepełnienie bufora: Zwiększ rozmiary buforów w kodzie
  3. Niezawodność sieci: Wprowadź logikę powtórzeń i obsługę błędów
  4. Jakość usług: Używaj MQTT QoS 1 lub 2 dla ważnych wiadomości

Najczęstsze komunikaty błędów

ModuleNotFoundError: No module named 'X'

Przyczyna: Pakiet nie jest zainstalowany lub środowisko wirtualne nie jest aktywowane

Rozwiązanie:

pip install X

Najpierw upewnij się, że środowisko wirtualne jest aktywowane.

Permission denied na Linux/macOS

Przyczyna: Wymagane są podwyższone uprawnienia lub problem z uprawnieniami do pliku

Rozwiązanie:

  • Dla operacji systemowych: Użyj sudo
  • Dla pip: NIE używaj sudo z venv, najpierw aktywuj venv
  • Dla portu szeregowego: Dodaj użytkownika do grupy dialout: sudo usermod -a -G dialout $USER, potem wyloguj się i zaloguj ponownie

OSError: [Errno 98] Address already in use

Przyczyna: Port jest już używany przez inny proces

Rozwiązanie:

  1. Znajdź proces korzystający z portu: lsof -i :<port> lub netstat -ano | findstr :<port>
  2. Zabij proces lub użyj innego portu w swoim kodzie

SSL: CERTIFICATE_VERIFY_FAILED

Przyczyna: Błąd walidacji certyfikatu SSL

Rozwiązanie:

  1. Zaktualizuj certyfikaty: pip install --upgrade certifi
  2. Sprawdź, czy czas systemowy jest poprawny: date
  3. Tylko do celów rozwojowych (nie produkcyjnych): Wyłącz weryfikację w kodzie

IndentationError: unexpected indent

Przyczyna: Problemy z wcięciami w Pythonie (mieszanie tabulatorów i spacji)

Rozwiązanie:

  1. Używaj spójnych wcięć (standardem jest 4 spacje)
  2. Skonfiguruj edytor, aby używał spacji zamiast tabulatorów
  3. VS Code: Ustaw "editor.insertSpaces": true oraz "editor.tabSize": 4

UnicodeDecodeError lub UnicodeEncodeError

Przyczyna: Problemy z kodowaniem znaków

Rozwiązanie:

# Podczas odczytu plików
with open('file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# Podczas zapisywania plików
with open('file.txt', 'w', encoding='utf-8') as f:
    f.write(content)

Uzyskiwanie pomocy

Jeśli wypróbowałeś te kroki rozwiązywania problemów i nadal masz problemy:

1. Sprawdź istniejące zasoby

  • Dokumentacja: Przejrzyj README i instrukcje lekcji
  • Przewodniki sprzętowe: Sprawdź hardware.md dla informacji specyficznych dla sprzętu
  • Seeed Studio Wiki: Seeed Studio Wiki dla komponentów Grove

2. Szukaj podobnych problemów

  • GitHub Issues: Szukaj istniejących zgłoszeń
  • Stack Overflow: Szukaj komunikatów błędów
  • Fora urządzeń: Sprawdź fora Raspberry Pi lub Arduino

3. Utwórz zgłoszenie na GitHub

Jeśli nie możesz znaleźć rozwiązania:

  1. Wejdź na GitHub Issues
  2. Kliknij "New Issue"
  3. Podaj:
    • Jasny opis problemu
    • Kroki do odtworzenia
    • Komunikaty błędów (pełny tekst)
    • Wersje sprzętu/oprogramowania
    • Co już próbowałeś
    • Zrzuty ekranu, jeśli są istotne

4. Dołącz do społeczności

5. Dostarczaj dobre raporty błędów

Dobry raport błędu zawiera:

  • Środowisko: system operacyjny, wersja Pythona, używany sprzęt
  • Kroki do odtworzenia: dokładne kroki wywołujące problem
  • Oczekiwane zachowanie: co powinno się zdarzyć
  • Rzeczywiste zachowanie: co faktycznie się dzieje
  • Komunikaty o błędach: pełny tekst błędu, nie zrzuty ekranu
  • Kod: minimalny przykład kodu reprodukujący problem

Wskazówki dotyczące zapobiegania

Ogólne najlepsze praktyki

  1. Rób kopie zapasowe: regularne kopie zapasowe działających kart SD/kodu
  2. Dokumentuj zmiany: zanotuj, co działa w komentarzach
  3. Kontrola wersji: używaj gita do śledzenia zmian w kodzie
  4. Testuj stopniowo: testuj małe zmiany przed połączeniem
  5. Czytaj komunikaty błędów: często mówią dokładnie, co jest źle
  6. Aktualizuj regularnie: utrzymuj oprogramowanie/firmware na bieżąco
  7. Używaj komponentów dobrej jakości: unikaj tanich kabli/zasilaczy
  8. Stabilne zasilanie: używaj odpowiedniego zasilacza (szczególnie Pi)

Przebieg pracy programisty

  1. Zacznij od prostego: rozpocznij od działającego przykładowego kodu
  2. Jedna zmiana na raz: łatwiej znaleźć, co psuje
  3. Testuj często: wykrywaj problemy wcześnie
  4. Utrzymuj porządek: organizuj pliki i kod logicznie
  5. Komentuj kod: przyszły ty będzie ci wdzięczny

Ten przewodnik rozwiązywania problemów jest utrzymywany przez społeczność. Jeśli znajdziesz rozwiązanie problemu, które tutaj nie zostało wymienione, rozważ wkład, aby pomóc innym!


Zastrzeżenie:
Niniejszy dokument został przetłumaczony za pomocą automatycznego tłumacza AI Co-op Translator. Mimo że dokładamy wszelkich starań, aby tłumaczenie było jak najdokładniejsze, prosimy mieć na uwadze, że tłumaczenia automatyczne mogą zawierać błędy lub niedokładności. Oryginalny dokument w języku źródłowym powinien być uważany za źródło autorytatywne. W przypadku informacji kluczowych zalecamy skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.