# Вимірювання вологості ґрунту - Віртуальне 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. ![Налаштування датчика вологості ґрунту](../../../../../translated_images/counterfit-create-soil-moisture-sensor.35266135a5e0ae68b29a684d7db0d2933a8098b2307d197f7c71577b724603aa.uk.png) Датчик вологості ґрунту буде створено і він з’явиться у списку датчиків. ![Створений датчик вологості ґрунту](../../../../../translated_images/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.uk.png) ## Програмування додатка для датчика вологості ґрунту Тепер можна запрограмувати додаток для датчика вологості ґрунту, використовуючи датчики 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). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.