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/ru/2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moistur...

123 lines
8.8 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.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2bf65f162bcebd35fbcba5fd245afac4",
"translation_date": "2025-08-26T22:51:18+00:00",
"source_file": "2-farm/lessons/2-detect-soil-moisture/virtual-device-soil-moisture.md",
"language_code": "ru"
}
-->
# Измерение влажности почвы - Виртуальное IoT-устройство
В этой части урока вы добавите емкостной датчик влажности почвы к вашему виртуальному IoT-устройству и будете считывать с него данные.
## Виртуальное оборудование
Виртуальное IoT-устройство будет использовать симулированный емкостной датчик влажности почвы Grove. Это позволяет сохранить лабораторную работу идентичной работе с Raspberry Pi и физическим емкостным датчиком влажности почвы Grove.
В физическом IoT-устройстве датчик влажности почвы представляет собой емкостной датчик, который измеряет влажность почвы, определяя ее емкость — свойство, которое изменяется в зависимости от уровня влажности. По мере увеличения влажности почвы напряжение уменьшается.
Это аналоговый датчик, поэтому он использует симулированный 10-битный АЦП для передачи значений в диапазоне от 1 до 1 023.
### Добавление датчика влажности почвы в CounterFit
Чтобы использовать виртуальный датчик влажности почвы, его необходимо добавить в приложение CounterFit.
#### Задача - Добавить датчик влажности почвы в CounterFit
Добавьте датчик влажности почвы в приложение CounterFit.
1. Создайте новое приложение на Python на вашем компьютере в папке `soil-moisture-sensor` с единственным файлом `app.py` и виртуальной средой Python, а также добавьте пакеты pip для CounterFit.
> ⚠️ Вы можете обратиться к [инструкциям по созданию и настройке 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.ru.png)
Датчик влажности почвы будет создан и появится в списке датчиков.
![Созданный датчик влажности почвы](../../../../../translated_images/counterfit-soil-moisture-sensor.81742b2de0e9de60a3b3b9a2ff8ecc686d428eb6d71820f27a693be26e5aceee.ru.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). Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.