|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "9d4d00a47d5d0f3e6ce42c0d1020064a",
|
|
|
"translation_date": "2025-08-28T10:55:28+00:00",
|
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/pi-soil-moisture.md",
|
|
|
"language_code": "bg"
|
|
|
}
|
|
|
-->
|
|
|
# Измерване на влажността на почвата - Raspberry Pi
|
|
|
|
|
|
В тази част на урока ще добавите капацитивен сензор за влажност на почвата към вашия Raspberry Pi и ще четете стойности от него.
|
|
|
|
|
|
## Хардуер
|
|
|
|
|
|
Raspberry Pi се нуждае от капацитивен сензор за влажност на почвата.
|
|
|
|
|
|
Сензорът, който ще използвате, е [Капацитивен сензор за влажност на почвата](https://www.seeedstudio.com/Grove-Capacitive-Moisture-Sensor-Corrosion-Resistant.html), който измерва влажността на почвата чрез откриване на капацитета на почвата – свойство, което се променя с промяната на влажността. С увеличаването на влажността на почвата напрежението намалява.
|
|
|
|
|
|
Това е аналогов сензор, който използва аналогов пин и 10-битовия ADC в Grove Base Hat на Raspberry Pi, за да преобразува напрежението в цифров сигнал от 1 до 1,023. След това този сигнал се изпраща през I²C чрез GPIO пиновете на Raspberry Pi.
|
|
|
|
|
|
### Свързване на сензора за влажност на почвата
|
|
|
|
|
|
Grove сензорът за влажност на почвата може да бъде свързан към Raspberry Pi.
|
|
|
|
|
|
#### Задача - свържете сензора за влажност на почвата
|
|
|
|
|
|
Свържете сензора за влажност на почвата.
|
|
|
|
|
|

|
|
|
|
|
|
1. Поставете единия край на Grove кабела в гнездото на сензора за влажност на почвата. Кабелът може да бъде поставен само в една посока.
|
|
|
|
|
|
1. С изключено захранване на Raspberry Pi свържете другия край на Grove кабела към аналоговото гнездо, маркирано като **A0**, на Grove Base Hat, прикрепен към Pi. Това гнездо е второто отдясно в реда от гнезда до GPIO пиновете.
|
|
|
|
|
|

|
|
|
|
|
|
1. Поставете сензора за влажност на почвата в почвата. Той има линия за "най-висока позиция" – бяла линия, която минава през сензора. Поставете сензора до тази линия, но не я преминавайте.
|
|
|
|
|
|

|
|
|
|
|
|
## Програмиране на сензора за влажност на почвата
|
|
|
|
|
|
Сега Raspberry Pi може да бъде програмиран да използва свързания сензор за влажност на почвата.
|
|
|
|
|
|
### Задача - програмирайте сензора за влажност на почвата
|
|
|
|
|
|
Програмирайте устройството.
|
|
|
|
|
|
1. Включете Raspberry Pi и изчакайте да се зареди.
|
|
|
|
|
|
1. Стартирайте VS Code, директно на Pi или чрез разширението Remote SSH.
|
|
|
|
|
|
> ⚠️ Можете да се обърнете към [инструкциите за настройка и стартиране на VS Code в nightlight - урок 1, ако е необходимо](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md).
|
|
|
|
|
|
1. От терминала създайте нова папка в домашната директория на потребителя `pi`, наречена `soil-moisture-sensor`. Създайте файл в тази папка, наречен `app.py`.
|
|
|
|
|
|
1. Отворете тази папка във VS Code.
|
|
|
|
|
|
1. Добавете следния код във файла `app.py`, за да импортирате необходимите библиотеки:
|
|
|
|
|
|
```python
|
|
|
import time
|
|
|
from grove.adc import ADC
|
|
|
```
|
|
|
|
|
|
Изразът `import time` импортира модула `time`, който ще бъде използван по-късно в задачата.
|
|
|
|
|
|
Изразът `from grove.adc import ADC` импортира `ADC` от библиотеките на Grove за Python. Тази библиотека съдържа код за взаимодействие с аналогово-цифровия преобразувател на Pi Base Hat и за четене на напрежения от аналогови сензори.
|
|
|
|
|
|
1. Добавете следния код под този, за да създадете инстанция на класа `ADC`:
|
|
|
|
|
|
```python
|
|
|
adc = ADC()
|
|
|
```
|
|
|
|
|
|
1. Добавете безкраен цикъл, който чете от този ADC на пин A0 и записва резултата в конзолата. Този цикъл може да изчаква 10 секунди между четенията.
|
|
|
|
|
|
```python
|
|
|
while True:
|
|
|
soil_moisture = adc.read(0)
|
|
|
print("Soil moisture:", soil_moisture)
|
|
|
|
|
|
time.sleep(10)
|
|
|
```
|
|
|
|
|
|
1. Стартирайте Python приложението. Ще видите измерванията на влажността на почвата, изписани в конзолата. Добавете вода към почвата или извадете сензора от почвата и наблюдавайте как стойността се променя.
|
|
|
|
|
|
```output
|
|
|
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py
|
|
|
Soil moisture: 615
|
|
|
Soil moisture: 612
|
|
|
Soil moisture: 498
|
|
|
Soil moisture: 493
|
|
|
Soil moisture: 490
|
|
|
Soil Moisture: 388
|
|
|
```
|
|
|
|
|
|
В примерния изход по-горе можете да видите как напрежението намалява, когато се добавя вода.
|
|
|
|
|
|
> 💁 Можете да намерите този код в папката [code/pi](../../../../../2-farm/lessons/2-detect-soil-moisture/code/pi).
|
|
|
|
|
|
😀 Вашата програма за сензора за влажност на почвата беше успешна!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от отговорност**:
|
|
|
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод. |