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

752 lines
45 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Ръководство за отстраняване на проблеми
Това ръководство ви помага да решите често срещани проблеми при работа с учебната програма IoT за начинаещи. Проблемите са организирани по категории за лесна навигация.
## Съдържание
- [Проблеми с инсталацията](../..)
- [Инсталация на Python](../..)
- [VS Code и разширения](../..)
- [PlatformIO (Wio Terminal)](../..)
- [Grove библиотеки](../..)
- [Проблеми с хардуера](../..)
- [Raspberry Pi](../..)
- [Wio Terminal](../..)
- [Виртуално устройство (CounterFit)](../..)
- [Проблеми с връзките](../..)
- [WiFi връзка](../..)
- [Облачни услуги](../..)
- [MQTT](../..)
- [Проблеми със сензори и актуатори](../..)
- [Grove сензори](../..)
- [Камера](../..)
- [Микрофон и говорител](../..)
- [Проблеми с разработващата среда](../..)
- [VS Code](../..)
- [Python виртуални среди](../..)
- [Зависимости](../..)
- [Проблеми с производителността](../..)
- [Често срещани съобщения за грешки](../..)
- [Получаване на помощ](../..)
---
## Проблеми с инсталацията
### Инсталация на Python
#### Проблем: Версията на Python е твърде стара
**Грешка:** `Python 3.6 или по-нова версия е необходима`
**Решение:**
1. Свалете последната версия на Python 3 от [python.org](https://www.python.org/downloads/)
2. По време на инсталация в Windows, отбележете "Add Python to PATH"
3. Проверете инсталацията:
```bash
python3 --version
```
#### Проблем: Несъвместимост между няколко версии на Python
**Симптоми:** Стартирана е грешна версия Python, пакети се инсталират на грешно място
**Решение:**
- **Windows:** Използвайте `py -3` вместо `python`, за да стартирате експлицитно Python 3
- **macOS/Linux:** Използвайте `python3` вместо `python`
- Винаги създавайте и използвайте виртуални среди за проекти
#### Проблем: Командата pip не е намерена
**Грешка:** `'pip' не е разпозната като вътрешна или външна команда`
**Решение:**
1. Опитайте с `pip3` вместо `pip`
2. Или използвайте `python -m pip` или `python3 -m pip`
3. Уверете се, че Python е добавен в PATH (преинсталирайте Python и отбележете опцията)
### VS Code и разширения
#### Проблем: Разширението Pylance не работи
**Симптоми:** Липса на IntelliSense за Python, автоматично довършване на кода или проверка на типове
**Решение:**
1. Отворете командната палитра на VS Code (`Ctrl+Shift+P` или `Cmd+Shift+P`)
2. Изпълнете „Python: Select Interpreter“
3. Изберете правилния Python интерпретатор (виртуална среда, ако използвате такава)
4. Презаредете прозореца на VS Code
#### Проблем: VS Code не разпознава виртуална среда
**Симптоми:** Избран е грешен Python интерпретатор
**Решение:**
1. Уверете се, че сте активирали виртуалната среда в терминала
2. Отворете командната палитра и изпълнете „Python: Select Interpreter“
3. Изберете интерпретатора от папката `.venv`
4. Проверете статус бара (в долния ляв ъгъл) за правилната версия на Python
### PlatformIO (Wio Terminal)
#### Проблем: Инсталацията на PlatformIO се проваля
**Грешка:** Различни грешки по време на инсталиране на PlatformIO
**Решение:**
1. Уверете се, че VS Code е актуален
2. Първо инсталирайте разширението за C/C++
3. Рестартирайте VS Code след инсталиране на PlatformIO
4. Проверете интернет връзката (PlatformIO изтегля големи файлове)
#### Проблем: Платката не се открива от PlatformIO
**Симптоми:** Не може да се качи код на Wio Terminal
**Решение:**
1. Опитайте с друг USB кабел (някои са само за зареждане)
2. Проверете Device Manager (Windows) или `ls /dev/tty*` (macOS/Linux)
3. Инсталирайте или обновете USB драйвери
4. Опитайте друг USB порт
5. Плъзнете ключа за захранване на Wio Terminal два пъти бързо, за да влезете в режим на зареждане (bootloader)
#### Проблем: Грешки при компилация в PlatformIO
**Грешка:** `fatal error: Arduino.h: No such file or directory`
**Решение:**
1. Изтрийте папката `.pio` в проекта си
2. Изпълнете „PlatformIO: Rebuild“ от командната палитра
3. Уверете се, че в `platformio.ini` е зададена правилна конфигурация на платката:
```ini
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
```
### Grove библиотеки
#### Проблем: Импортирането на библиотеката Grove се проваля на Raspberry Pi
**Грешка:** `ModuleNotFoundError: No module named 'grove'`
**Решение:**
1. Преинсталирайте Grove библиотеките:
```bash
cd ~
git clone https://github.com/Seeed-Studio/grove.py
cd grove.py
sudo pip3 install .
```
2. Ако използвате виртуална среда, може да се наложи да инсталирате глобално или да копирате библиотеките
3. Проверете дали I2C е активиран: `sudo raspi-config nonint do_i2c 0`
#### Проблем: Grove сензор не се открива
**Грешка:** `IOError: [Errno 121] Remote I/O error`
**Решение:**
1. Проверете физическите връзки (уверете се, че Grove кабелът е напълно включен)
2. Проверете дали сензорът е свързан към правилния порт (аналогов, цифров, I2C, UART)
3. Изпълнете `i2cdetect -y 1`, за да видите дали устройството се появява на I2C шината
4. Опитайте с друг Grove кабел
5. Уверете се, че Grove Base Hat е правилно поставен върху GPIO пиновете на Raspberry Pi
---
## Проблеми с хардуера
### Raspberry Pi
#### Проблем: Raspberry Pi не стартира
**Симптоми:** Липса на изображение, няма активност на LED или изображение с дъга
**Решение:**
1. **Проверете захранването:** Използвайте официален USB-C адаптер 5V 3A за Pi 4
2. **Проблеми с SD картата:**
- Преформатирайте SD картата и инсталирайте отново Raspberry Pi OS
- Опитайте с друга SD карта (използвайте препоръчани марки)
- Уверете се, че SD картата е правилно поставена
3. **Проверете HDMI връзката:** Изпробвайте и двата HDMI порта на Pi 4, използвайте порта, който е най-близо до захранването
#### Проблем: Не може да се свърже чрез SSH към Raspberry Pi
**Симптоми:** Връзката е отказана или има изтичане на време
**Решение:**
1. Активирайте SSH:
- При създаване на SD картата с Raspberry Pi Imager, конфигурирайте SSH в разширените настройки
- Или създайте празен файл с името `ssh` (без разширение) в boot дяла
2. Намерете IP адреса на Pi:
- Проверете свързаните устройства в рутера
- Използвайте `ping raspberrypi.local` (ако работи mDNS)
- Използвайте мрежови инструменти като `nmap` или Angry IP Scanner
3. Проверете мрежата:
- Уверете се, че Pi е в същата мрежа като вашия компютър
- Опитайте връзка с кабел вместо WiFi
4. Проверете потребителско име и парола (по подразбиране: потребител `pi`, парола `raspberry`)
#### Проблем: Grove Base Hat не е разпознат
**Симптоми:** Сензорите не работят, има I2C грешки
**Решение:**
1. Уверете се, че Base Hat е поставен правилно върху всички GPIO пинове
2. Проверете за огънати пинове на Pi или Base Hat
3. Активирайте I2C интерфейса:
```bash
sudo raspi-config nonint do_i2c 0
sudo reboot
```
4. Проверете дали I2C работи: `i2cdetect -y 1`
#### Проблем: Raspberry Pi работи бавно
**Симптоми:** Забавяне на интерфейса, бавна реакция
**Решение:**
1. Проверете скоростта на SD картата (използвайте Class 10 или по-добра, или SSD през USB)
2. Освободете дисково пространство: `df -h`, изтрийте ненужни файлове
3. Намалете GPU паметта в `raspi-config`, ако не използвате камера или дисплей интензивно
4. Затворете ненужните приложения
5. Помислете за ъпгрейд към Pi 4 с повече RAM, ако използвате Pi 3 или по-стар модел
### Wio Terminal
#### Проблем: Екранът на Wio Terminal остава черен
**Симптоми:** Няма изход на дисплея след качване на кода
**Решение:**
1. Проверете дали кодът инициализира дисплея (библиотека TFT_eSPI)
2. Обновете фърмуера на Wio Terminal от [Seeed Wiki](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)
3. Добавете код за инициализация на дисплея:
```cpp
#include <TFT_eSPI.h>
TFT_eSPI tft;
tft.begin();
tft.fillScreen(TFT_BLACK);
```
4. Опитайте да качите примерен проект от PlatformIO, за да тествате хардуера
#### Проблем: WiFi не работи на Wio Terminal
**Симптоми:** Не може да се свърже към WiFi, грешки в мрежата
**Решение:**
1. **Обновете WiFi фърмуера:** Следвайте указанията в [Wio Terminal WiFi firmware update guide](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
2. **Проверете WiFi данните:** Уверете се, че SSID и паролата са правилни
3. **WiFi честота:** Wio Terminal поддържа само 2.4 GHz WiFi (не 5 GHz)
4. **Сила на сигнала:** Преместете се по-близо до рутера
5. **Настройки на рутера:** Някои корпоративни или WPA-Enterprise мрежи може да не работят
#### Проблем: Wio Terminal не се разпознава от компютъра
**Симптоми:** USB устройството не се детектира
**Решение:**
1. **Опитайте друг USB кабел:** Използвайте кабел за данни, а не само за зареждане
2. **Влезте в режим на зареждане:** Плъзнете ключа за захранване надолу два пъти бързо
- Синия светодиод ще пулсира, устройството се появява като "Arduino" в Device Manager
3. **Инсталирайте драйвери (Windows):**
- Свалете и инсталирайте [Seeed USB driver](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
4. **Ползвайте друг USB порт:** Избягвайте USB хъбове, използвайте директна връзка
5. **Обновете драйверите на системата**
#### Проблем: Сензорите не работят на Wio Terminal
**Симптоми:** Grove сензорите не отчитат данни
**Решение:**
1. Проверете свързванията на Grove кабела
2. Уверете се, че използвате правилния Grove порт (ляв или десен)
3. Добавете коректните библиотеки за сензора
4. Проверете захранването на сензора
5. Тествайте сензора с примерен код от библиотеката
### Виртуално устройство (CounterFit)
#### Проблем: Приложението CounterFit не стартира
**Грешка:** Различни Python грешки при стартиране на CounterFit
**Решение:**
1. Уверете се, че виртуалната среда е активирана
2. Инсталирайте/преинсталирайте CounterFit:
```bash
pip install CounterFit
```
3. Проверете дали порт 5000 не е вече зает:
- Windows: `netstat -ano | findstr :5000`
- macOS/Linux: `lsof -i :5000`
4. Затворете процеса, използващ порт 5000, или използвайте друг порт:
```bash
counterfit --port 5001
```
#### Проблем: Не може да се свърже с CounterFit от кода
**Грешка:** Връзката е отказана или има изтичане на време
**Решение:**
1. Проверете дали CounterFit работи: Отворете браузър на `http://127.0.0.1:5000`
2. Проверете дали URL адресът за връзка в кода съвпада с адреса на CounterFit
3. Уверете се, че защитната стена не блокира връзката
4. Опитайте да рестартирате както приложението CounterFit, така и кода си
#### Проблем: Сензорите не се показват в CounterFit
**Симптоми:** Създадените сензори не се виждат в потребителския интерфейс на CounterFit
**Решение:**
1. Създайте сензорите в потребителския интерфейс на CounterFit преди да пуснете кода
2. Презаредете страницата в браузъра
3. Проверете дали типът сензор съвпада с очаквания от кода
4. Изчистете кеша на браузъра
---
## Проблеми с връзките
### WiFi връзка
#### Проблем: Устройството не може да се свърже към WiFi
**Симптоми:** Изтичане на времето за връзка, неуспешна автентикация
**Решение:**
1. **Проверете SSID и паролата:** Уверете се, че данните са правилни
2. **WiFi честота:** Повечето IoT устройства поддържат само 2.4 GHz (не 5 GHz)
3. **Настройки на рутера:**
- Изключете AP изолацията, ако е активирана
- Използвайте WPA2-PSK защита (избягвайте WPA3, WEP или отворени мрежи)
- Уверете се, че DHCP е включен
4. **Скрити мрежи:** Ако SSID е скрит, може да се наложи да го конфигурирате изрично
5. **Сила на сигнала:** Преместете устройството по-близо до рутера
6. **Интерференция:** Други устройства, микровълнови фурни или стени могат да пречат
#### Проблем: WiFi връзката прекъсва често
**Симптоми:** Прекъсваща връзка
**Решение:**
1. Проверете стабилността на рутера и обмислете рестарт
2. Обновете фърмуера на устройството
3. Използвайте статичен IP вместо DHCP
4. Намалете разстоянието до рутера или добавете WiFi ретранслатор
5. Проверете за интерференции от други устройства
6. Уверете се, че захранването е адекватно (особено за Raspberry Pi)
### Облачни услуги
#### Проблем: Не може да се свърже към Azure IoT Hub
**Грешка:** Неуспешна автентикация, връзката е отказана
**Решение:**
1. **Проверете идентификационните данни:**
- Проверете дали връзката (connection string) е правилна
- Уверете се, че няма излишни интервали или нови редове в connection string
2. **Проверете регистрацията на устройството:** Устройството трябва да е регистрирано в IoT Hub
3. **Защитна стена/прокси:** Уверете се, че изходящия трафик към MQTT (порт 8883) или HTTPS (порт 443) е разрешен
4. **Регион на IoT Hub:** Проверете дали IoT Hub е активен и не е в друг регион, което може да забавя връзката
5. **Ограничения на квоти:** Проверете дали не са превишени лимитите на безплатния план
6. **Тествайте връзката:**
```bash
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
```
#### Проблем: Azure Functions не се задействат
**Симптоми:** Съобщенията се изпращат, но функцията не се изпълнява
**Решение:**
1. Проверете дали Function App работи (не е спрян)
2. Проверете connection string в настройките на Function App
3. Прегледайте логовете на функцията в Azure портал
4. Уверете се, че е конфигуриран правилно Event Hub съвместимият крайна точка
5. Проверете формата на съобщението, дали съвпада с очакванията на функцията
6. Проверете плана на услугата Function App (консумационен или посветен)
### MQTT
#### Проблем: Неуспешна MQTT връзка
**Грешка:** Връзката е отказана, удостоверяването не успя
**Решение:**
1. **Адрес на брокера:** Проверете дали URL/IP адресът на брокера е коректен
2. **Порт:** Проверете номера на порта (1883 за некриптирана, 8883 за TLS)
3. **Удостоверяване:** Проверете потребителско име/парола ако е необходимо
4. **TLS/SSL:** Уверете се, че сертификатите са валидни и доверени
5. **Защитна стена:** Проверете дали портът не е блокиран
6. **Тест с MQTT клиент:** Използвайте MQTT Explorer или mosquitto_pub/sub за тестване
#### Проблем: MQTT съобщения не се получават
**Симптоми:** Съобщенията се публикуват, но не се получават от абонатите
**Решение:**
1. **Имена на теми:** Проверете дали темата на абоната съвпада точно с тази на издателя
2. **Ниво QoS:** Опитайте QoS 1 или 2 вместо 0
3. **Уайлдкарти:** Проверете дали уайлдкартите за теми са използвани правилно (`+` за едно ниво, `#` за много нива)
4. **Запазени съобщения:** Издателят може да зададе флаг retain, за да запази последното съобщение
5. **Време на връзката:** Уверете се, че абонатът се свързва преди съобщенията да бъдат публикувани
---
## Проблеми със сензори и изпълнителни устройства
### Grove сензори
#### Проблем: Сензорът връща неправилни стойности
**Симптоми:** Четенето е 0, -1 или несмислени стойности
**Решение:**
1. **Проверете връзките:** Уверете се, че сензорът е правилно свързан
2. **Правилен порт:** Проверете дали сензорът е в правилния тип порт:
- Аналогови сензори → Аналогови портове (A0, A2, A4)
- Цифрови сензори → Цифрови портове (D5, D16, D18 и др.)
- I2C сензори → I2C портове
3. **Калибрация:** Някои сензори имат нужда от калибриране (почвена влага, светлина)
4. **Презареждане:** Изключете и включете сензора отново
5. **Техническа документация на сензора:** Проверете спецификациите и изискванията на сензора
#### Проблем: Капацитивният сензор за почвена влага винаги отчита мокро
**Симптоми:** Сензорът отчита висока влажност дори на сухо
**Решение:**
1. **Нужна е калибрация:** Почвените сензори изискват калибрация:
- Отчитайте стойност във въздуха (сухо)
- Отчитайте стойност във вода (мокро)
- Картирайте стойностите между тези граници
2. **Проверете покритието на сензора:** Сензорите за влажност могат да се повреждат, ако покритието е нарушено
3. **Положение:** Уверете се, че сензорът е напълно вкаран в почвата
#### Проблем: Неправилни показания от сензор за температура/влажност
**Симптоми:** DHT11/DHT22 показва грешна температура или влажност
**Решение:**
1. **Положение на сензора:** Избягвайте директна слънчева светлина, източници на топлина или въздушен поток
2. **Време за затопляне:** Позволете 2 секунди след включване преди четене
3. **Честота на четене:** DHT сензорите изискват време между четенията (най-малко 2 секунди)
4. **Проверете за кондензация:** Може да влияе на показанията
5. **Качество на сензора:** DHT11 е по-малко точен от DHT22
### Камера
#### Проблем: Камерата не се открива на Raspberry Pi
**Грешка:** `mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'`
**Решение:**
1. **Активирайте интерфейса на камерата:**
```bash
sudo raspi-config
```
Отидете на Interface Options → Camera → Enable
2. **Проверете лентовия кабел:** Уверете се, че кабелът на камерата е правилно включен
- Синята страна гледа към USB портовете при Pi Zero
- Синята страна гледа обратно на USB портовете при Pi 4
3. **Обновете фърмуера:**
```bash
sudo apt update
sudo apt full-upgrade
sudo reboot
```
4. **Тествайте камерата:**
```bash
raspistill -o test.jpg
```
#### Проблем: Качество на снимките от камерата е лошо
**Симптоми:** Замъглени, тъмни или избелели изображения
**Решение:**
1. **Фокус:** Премахнете защитното фолио от обектива, настройте фокуса ако е регулируем
2. **Осветление:** Осигурете достатъчно осветление
3. **Настройки на камерата:** Регулирайте експонацията, ISO, баланса на бялото в кода
4. **Стабилност:** Дръжте камерата стабилна, използвайте статив ако е необходимо
5. **Резолюция:** Не превишавайте максималната резолюция на камерата
### Микрофон и говорител
#### Проблем: Няма аудио вход/изход
**Симптоми:** Микрофонът не записва, говорителят не възпроизвежда звук
**Решение:**
1. **Проверете връзките:** Уверете се, че аудио устройствата са правилно свързани
2. **Тествайте хардуера:**
- Говорител: `speaker-test -t wav -c 2`
- Микрофон: `arecord -l` за списък, `arecord test.wav` за запис
3. **Настройки на звука:** Проверете и настройте звука:
```bash
alsamixer
```
4. **Изберете аудио устройство:** Посочете правилното аудио устройство в кода
5. **Проблеми с драйверите:** Обновете ALSA или преинсталирайте аудио драйверите
#### Проблем: ReSpeaker платка не работи
**Симптоми:** Аудио устройството не се открива
**Решение:**
1. **Инсталирайте драйвери:**
```bash
git clone https://github.com/HinTak/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
sudo reboot
```
2. **Проверете инсталацията:** `arecord -l` трябва да покаже ReSpeaker
3. **Обновете фърмуера:** Някои версии на Pi OS изискват обновяване на драйверите
4. **Проверете поставянето:** Уверете се, че платката е правилно свързана към GPIO пиновете
---
## Проблеми със средата за разработка
### VS Code
#### Проблем: Терминалът не активира виртуалната среда автоматично
**Симптоми:** Терминалът се отваря, но venv не се активира
**Решение:**
1. **Настройте Python интерпретатора:** Command Palette → "Python: Select Interpreter" → Изберете venv
2. **Рестартирайте VS Code** след избор на интерпретатора
3. **Проверете настройките:** В `settings.json` добавете:
```json
"python.terminal.activateEnvironment": true
```
#### Проблем: Кодът не се изпълнява на устройството
**Симптоми:** Кодът се изпълнява, но нищо не се случва на устройството
**Решение:**
1. **Проверете дали кодът е записан** (проверете точката на таба на файла)
2. **Проверете кой Python се изпълнява:** `which python` или `where python`
3. **За Wio Terminal:** Уверете се, че кодът е качен чрез PlatformIO (натиснете бутона за качване)
4. **За Raspberry Pi:** Влезте чрез SSH в Pi и стартирайте кода там
5. **Проверете изходния прозорец** за грешки
#### Проблем: IntelliSense не показва функции от библиотеките
**Симптоми:** Липсва автодовършване за импортирани модули
**Решение:**
1. Уверете се, че библиотеката е инсталирана в текущата среда
2. Презаредете прозореца на VS Code
3. Проверете дали Python интерпретаторът е правилен
4. Инсталирайте type stubs ако са налични: `pip install types-<library-name>`
### Виртуални Python среди
#### Проблем: Не може да се създаде виртуална среда
**Грешка:** `The virtual environment was not created successfully`
**Решение:**
1. **Инсталирайте модула venv:**
- Ubuntu/Debian: `sudo apt install python3-venv`
- macOS: Трябва да е включен с Python
- Windows: Преинсталирайте Python с всички компоненти
2. **Проверете инсталацията на Python:** Уверете се, че Python е инсталиран правилно
3. **Използвайте пълния път:** Опитайте `python3 -m venv .venv` с изрично повикване на python3
#### Проблем: Пакетите се инсталират на грешно място
**Симптоми:** Грешка при импорт след инсталация на пакет
**Решение:**
1. **Проверете дали venv е активиран:** В командния ред трябва да се вижда `(.venv)`
2. **Проверете местоположението на pip:** `which pip` трябва да сочи към `.venv/bin/pip`
3. **Преинсталирайте в venv:** Активирайте venv, след това `pip install <package>`
4. **Не използвайте sudo с pip** във виртуална среда
#### Проблем: Виртуалната среда не е преносима
**Симптоми:** Venv не работи след преместване или на друг компютър
**Решение:**
1. **Не местете venv:** Изтрийте и създайте наново на новото място
2. **Използвайте requirements.txt:**
```bash
pip freeze > requirements.txt
pip install -r requirements.txt
```
3. **Пресъздайте venv:**
```bash
python3 -m venv .venv
source .venv/bin/activate # или activate.bat на Windows
pip install -r requirements.txt
```
### Зависимости
#### Проблем: Инсталация на пакет се проваля
**Грешка:** Различни грешки от pip по време на инсталация
**Решение:**
1. **Обновете pip:**
```bash
pip install --upgrade pip
```
2. **Инсталирайте инструменти за билд:**
- Ubuntu/Debian: `sudo apt install build-essential python3-dev`
- macOS: `xcode-select --install`
- Windows: Инсталирайте Visual Studio Build Tools
3. **Проверете интернет връзката**
4. **Опитайте друг пакетен индекс:** `pip install --index-url https://pypi.org/simple/ <package>`
5. **Инсталирайте конкретна версия:** `pip install <package>==<version>`
#### Проблем: Конфликти в зависимостите
**Грешка:** `ERROR: pip's dependency resolver does not currently take into account all the packages that are installed`
**Решение:**
1. **Използвайте чиста виртуална среда** за всеки проект
2. **Обновете пакетите:** `pip install --upgrade <package>`
3. **Проверете изискванията:** Използвайте `pip check` за намиране на конфликти
4. **Инсталирайте съвместими версии:** Посочете версии в изискванията (requirements.txt)
---
## Проблеми с производителността
### Проблем: Кодът работи бавно
**Симптоми:** Забавяния, таймаути, неотзивчиво поведение
**Решение:**
1. **Намалете честотата на четене на сензорите:** Не четете сензорите твърде често
2. **Оптимизирайте цикли:** Избягвайте активно изчакване, използвайте sleep() или забавяния
3. **Проблеми с паметта:**
- Затворете ненужни приложения
- Освободете място за съхранение
- Мониторирайте с `top` или `htop` на Pi
4. **Скорост на SD картата:** Използвайте по-бърза SD карта или SSD за Raspberry Pi
5. **Мрежови забавяния:** Използвайте асинхронни операции за мрежови повиквания
### Проблем: Грешки за изчерпана памет
**Грешка:** `MemoryError` или замръзване на системата
**Решение:**
1. **За Raspberry Pi:**
- Затворете ненужни приложения
- Увеличете swap пространството
- Използвайте по-лека ОС (Lite версия)
- Надградете RAM (Pi 4 има опции с 2/4/8GB)
2. **За Wio Terminal:**
- Намалете размерите на буферите
- Използвайте по-малки изображения
- Оптимизирайте използването на низове
- Проверете за изтичане на памет (нереализирана памет)
### Проблем: Загуба или повреждане на данни
**Симптоми:** Липсващи съобщения, повредени файлове
**Решение:**
1. **Проблеми със SD картата:**
- Използвайте качествени SD карти (избягвайте евтини/фалшифицирани)
- Правете редовни архиви
- Правилно изключване (не изключвайте захранването внезапно)
2. **Препълване на буфера:** Увеличете размерите на буфера в кода
3. **Надеждност на мрежата:** Прилагайте логика за повторни опити и обработка на грешки
4. **Качество на услугата:** Използвайте MQTT QoS 1 или 2 за важни съобщения
---
## Често срещани съобщения за грешки
### `ModuleNotFoundError: No module named 'X'`
**Причина:** Пакетът не е инсталиран или виртуалната среда не е активирана
**Решение:**
```bash
pip install X
```
Първо уверете се, че виртуалната среда е активирана.
### `Permission denied` в Linux/macOS
**Причина:** Необходими са по-високи права или проблем с правата на файловете
**Решение:**
- За системни операции: Използвайте `sudo`
- За pip: НЕ използвайте sudo с venv, първо активирайте venv
- За сериен порт: Добавете потребителя към групата dialout: `sudo usermod -a -G dialout $USER`, след това излезте и влезте отново
### `OSError: [Errno 98] Address already in use`
**Причина:** Портът вече се използва от друг процес
**Решение:**
1. Намерете процеса с порта: `lsof -i :<port>` или `netstat -ano | findstr :<port>`
2. Убийте процеса или използвайте друг порт в кода
### `SSL: CERTIFICATE_VERIFY_FAILED`
**Причина:** Проверката на SSL сертификата не успява
**Решение:**
1. Обновете сертификатите: `pip install --upgrade certifi`
2. Проверете дали системното време е правилно: `date`
3. Само за разработка (не за продукция): Изключете проверката в кода
### `IndentationError: unexpected indent`
**Причина:** Проблеми с отстъпите в Python (смесване на табулации и интервали)
**Решение:**
1. Използвайте постоянни отстъпи (4 интервала е стандартът в Python)
2. Конфигурирайте редактора да използва интервали вместо табулации
3. В VS Code: Задайте `"editor.insertSpaces": true` и `"editor.tabSize": 4`
### `UnicodeDecodeError` или `UnicodeEncodeError`
**Причина:** Проблеми с енкодинга на символи
**Решение:**
```python
# При четене на файлове
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
# При писане на файлове
with open('file.txt', 'w', encoding='utf-8') as f:
f.write(content)
```
---
## Получаване на помощ
Ако сте опитали тези стъпки за отстраняване на проблеми и все още имате проблеми:
### 1. Проверете наличните ресурси
- **Документация:** Прегледайте [README](README.md) и инструкциите за урока
- **Ръководства за хардуер:** Проверете [hardware.md](hardware.md) за информация специфична за хардуера
- **Seeed Studio Wiki:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) за Grove компоненти
### 2. Потърсете за подобни проблеми
- **GitHub Issues:** Потърсете сред [наличните проблеми](https://github.com/microsoft/IoT-For-Beginners/issues)
- **Stack Overflow:** Потърсете по съобщения за грешки
- **Форуми на устройства:** Проверете форумите на Raspberry Pi или Arduino
### 3. Създайте GitHub Issue
Ако не можете да намерите решение:
1. Отидете на [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
2. Кликнете "New Issue"
3. Посочете:
- Ясно описание на проблема
- Стъпки за възпроизвеждане
- Съобщения за грешки (пълен текст)
- Хардуер/софтуер версии
- Какво вече сте опитали
- Скрийнове, ако са приложими
### 4. Присъединете се към общността
- **Discord:** [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-iot)
### 5. Предоставяйте добри доклади за грешки
Добър доклад за грешки включва:
- **Околна среда:** ОС, версия на Python, използван хардуер
- **Стъпки за възпроизвеждане:** Точните стъпки, които причиняват проблема
- **Очаквано поведение:** Какво трябва да се случи
- **Действително поведение:** Какво всъщност се случва
- **Съобщения за грешки:** Пълен текст на грешката, не снимки на екрана
- **Код:** Минимален примерен код, който възпроизвежда проблема
---
## Съвети за предотвратяване
### Общи добри практики
1. **Правете резервни копия:** Редовни резервни копия на работещи SD карти/код
2. **Документирайте промените:** Отбелязвайте какво работи в коментари
3. **Контрол на версиите:** Използвайте git за проследяване на промените в кода
4. **Тествайте постепенно:** Тествайте малки промени преди да ги съчетавате
5. **Четете съобщенията за грешки:** Те често казват точно какъв е проблемът
6. **Актуализирайте редовно:** Поддържайте софтуера/фърмуера актуални
7. **Използвайте качествени компоненти:** Избягвайте евтини кабели/захранвания
8. **Стабилно захранване:** Използвайте подходящо захранване (особено за Pi)
### Работен процес при разработка
1. **Започнете просто:** Започнете с примерен код, който работи
2. **Една промяна наведнъж:** По-лесно е да откриете какво се повреди
3. **Тествайте често:** Откривайте проблемите рано
4. **Поддържайте чистота:** Организирайте файловете и кода логично
5. **Коментирайте кода:** Бъдещото ви аз ще ви е благодарно
---
*Това ръководство за отстраняване на проблеми се поддържа от общността. Ако намерите решение на проблем, който не е изброен тук, моля, обмислете да [споделите](CONTRIBUTING.md), за да помогнете на другите!*
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Отказ от отговорност**:
Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия първоначален език следва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за никакви недоразумения или погрешни тълкувания, произтичащи от използването на този превод.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->