|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "2bf65f162bcebd35fbcba5fd245afac4",
|
|
|
"translation_date": "2025-08-28T17:45:19+00:00",
|
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md",
|
|
|
"language_code": "uk"
|
|
|
}
|
|
|
-->
|
|
|
# Вимірювання вологості ґрунту - Віртуальне IoT обладнання
|
|
|
|
|
|
У цій частині уроку ви додасте ємнісний датчик вологості ґрунту до вашого віртуального IoT-пристрою та зчитуватимете з нього дані.
|
|
|
|
|
|
## Віртуальне обладнання
|
|
|
|
|
|
Віртуальний IoT-пристрій використовуватиме симульований ємнісний датчик вологості ґрунту Grove. Це дозволяє зберегти лабораторну роботу аналогічною до використання Raspberry Pi з фізичним ємнісним датчиком вологості ґрунту Grove.
|
|
|
|
|
|
У фізичному IoT-пристрої датчик вологості ґрунту є ємнісним датчиком, який вимірює вологість ґрунту, визначаючи його ємність — властивість, що змінюється залежно від вологості ґрунту. Зі збільшенням вологості ґрунту напруга зменшується.
|
|
|
|
|
|
Це аналоговий датчик, тому він використовує симульований 10-бітний АЦП для передачі значення в діапазоні від 1 до 1,023.
|
|
|
|
|
|
### Додайте датчик вологості ґрунту до CounterFit
|
|
|
|
|
|
Щоб використовувати віртуальний датчик вологості ґрунту, потрібно додати його до програми CounterFit.
|
|
|
|
|
|
#### Завдання - Додайте датчик вологості ґрунту до CounterFit
|
|
|
|
|
|
Додайте датчик вологості ґрунту до програми CounterFit.
|
|
|
|
|
|
1. Створіть новий Python-додаток на вашому комп'ютері в папці `soil-moisture-sensor` з одним файлом `app.py`, створіть віртуальне середовище Python і додайте пакети CounterFit через pip.
|
|
|
|
|
|
> ⚠️ Ви можете звернутися до [інструкцій зі створення та налаштування Python-проєкту CounterFit у уроці 1, якщо це необхідно](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md).
|
|
|
|
|
|
1. Переконайтеся, що веб-додаток CounterFit запущений.
|
|
|
|
|
|
1. Створіть датчик вологості ґрунту:
|
|
|
|
|
|
1. У полі *Create sensor* на панелі *Sensors* розкрийте список *Sensor type* і виберіть *Soil Moisture*.
|
|
|
|
|
|
1. Залиште *Units* встановленими на *NoUnits*.
|
|
|
|
|
|
1. Переконайтеся, що *Pin* встановлено на *0*.
|
|
|
|
|
|
1. Натисніть кнопку **Add**, щоб створити датчик *Soil Moisture* на контакті 0.
|
|
|
|
|
|

|
|
|
|
|
|
Датчик вологості ґрунту буде створено і він з’явиться у списку датчиків.
|
|
|
|
|
|

|
|
|
|
|
|
## Програмування додатка для датчика вологості ґрунту
|
|
|
|
|
|
Тепер можна запрограмувати додаток для датчика вологості ґрунту, використовуючи датчики CounterFit.
|
|
|
|
|
|
### Завдання - Програмування додатка для датчика вологості ґрунту
|
|
|
|
|
|
Запрограмуйте додаток для датчика вологості ґрунту.
|
|
|
|
|
|
1. Переконайтеся, що додаток `soil-moisture-sensor` відкрито у VS Code.
|
|
|
|
|
|
1. Відкрийте файл `app.py`.
|
|
|
|
|
|
1. Додайте наступний код на початок файлу `app.py`, щоб підключити додаток до CounterFit:
|
|
|
|
|
|
```python
|
|
|
from counterfit_connection import CounterFitConnection
|
|
|
CounterFitConnection.init('127.0.0.1', 5000)
|
|
|
```
|
|
|
|
|
|
1. Додайте наступний код до файлу `app.py`, щоб імпортувати необхідні бібліотеки:
|
|
|
|
|
|
```python
|
|
|
import time
|
|
|
from counterfit_shims_grove.adc import ADC
|
|
|
```
|
|
|
|
|
|
Оператор `import time` імпортує модуль `time`, який буде використано пізніше в цьому завданні.
|
|
|
|
|
|
Оператор `from counterfit_shims_grove.adc import ADC` імпортує клас `ADC` для взаємодії з віртуальним аналогово-цифровим перетворювачем, який може підключатися до датчика CounterFit.
|
|
|
|
|
|
1. Додайте наступний код нижче, щоб створити екземпляр класу `ADC`:
|
|
|
|
|
|
```python
|
|
|
adc = ADC()
|
|
|
```
|
|
|
|
|
|
1. Додайте нескінченний цикл, який зчитуватиме дані з цього АЦП на контакті 0 і виводитиме результат у консоль. Цей цикл може робити паузу на 10 секунд між зчитуваннями.
|
|
|
|
|
|
```python
|
|
|
while True:
|
|
|
soil_moisture = adc.read(0)
|
|
|
print("Soil moisture:", soil_moisture)
|
|
|
|
|
|
time.sleep(10)
|
|
|
```
|
|
|
|
|
|
1. У програмі CounterFit змініть значення датчика вологості ґрунту, яке буде зчитуватися додатком. Ви можете зробити це двома способами:
|
|
|
|
|
|
* Введіть число в поле *Value* для датчика вологості ґрунту, а потім натисніть кнопку **Set**. Число, яке ви введете, буде значенням, що повертається датчиком.
|
|
|
|
|
|
* Поставте прапорець *Random* і введіть значення *Min* і *Max*, а потім натисніть кнопку **Set**. Кожного разу, коли датчик зчитуватиме значення, воно буде випадковим числом у діапазоні між *Min* і *Max*.
|
|
|
|
|
|
1. Запустіть Python-додаток. Ви побачите вимірювання вологості ґрунту, виведені в консоль. Змініть *Value* або налаштування *Random*, щоб побачити зміну значення.
|
|
|
|
|
|
```output
|
|
|
(.venv) ➜ soil-moisture-sensor $ python app.py
|
|
|
Soil moisture: 615
|
|
|
Soil moisture: 612
|
|
|
Soil moisture: 498
|
|
|
Soil moisture: 493
|
|
|
Soil moisture: 490
|
|
|
Soil Moisture: 388
|
|
|
```
|
|
|
|
|
|
> 💁 Ви можете знайти цей код у папці [code/virtual-device](../../../../../2-farm/lessons/2-detect-soil-moisture/code/virtual-device).
|
|
|
|
|
|
😀 Ваш додаток для датчика вологості ґрунту успішно працює!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Відмова від відповідальності**:
|
|
|
Цей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу. |