|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "f8f541ee945545017a51aaf309aa37c3",
|
|
|
"translation_date": "2025-08-26T22:30:22+00:00",
|
|
|
"source_file": "2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md",
|
|
|
"language_code": "ru"
|
|
|
}
|
|
|
-->
|
|
|
# Управление реле - Виртуальное IoT-устройство
|
|
|
|
|
|
В этой части урока вы добавите реле к вашему виртуальному IoT-устройству в дополнение к датчику влажности почвы и будете управлять им на основе уровня влажности почвы.
|
|
|
|
|
|
## Виртуальное оборудование
|
|
|
|
|
|
Виртуальное IoT-устройство будет использовать симулированное реле Grove. Это позволяет сохранить лабораторную работу аналогичной использованию Raspberry Pi с физическим реле Grove.
|
|
|
|
|
|
В физическом IoT-устройстве реле будет нормально-разомкнутым (то есть выходная цепь разомкнута или отключена, если на реле не подается сигнал). Такое реле может работать с выходными цепями до 250В и 10А.
|
|
|
|
|
|
### Добавление реле в CounterFit
|
|
|
|
|
|
Чтобы использовать виртуальное реле, его нужно добавить в приложение CounterFit.
|
|
|
|
|
|
#### Задание
|
|
|
|
|
|
Добавьте реле в приложение CounterFit.
|
|
|
|
|
|
1. Откройте проект `soil-moisture-sensor` из прошлого урока в VS Code, если он еще не открыт. Вы будете добавлять в этот проект.
|
|
|
|
|
|
1. Убедитесь, что веб-приложение CounterFit запущено.
|
|
|
|
|
|
1. Создайте реле:
|
|
|
|
|
|
1. В поле *Create actuator* на панели *Actuators* раскройте список *Actuator type* и выберите *Relay*.
|
|
|
|
|
|
1. Установите *Pin* на *5*.
|
|
|
|
|
|
1. Нажмите кнопку **Add**, чтобы создать реле на выводе 5.
|
|
|
|
|
|

|
|
|
|
|
|
Реле будет создано и появится в списке актуаторов.
|
|
|
|
|
|

|
|
|
|
|
|
## Программирование реле
|
|
|
|
|
|
Теперь приложение для датчика влажности почвы можно запрограммировать для использования виртуального реле.
|
|
|
|
|
|
### Задание
|
|
|
|
|
|
Программируйте виртуальное устройство.
|
|
|
|
|
|
1. Откройте проект `soil-moisture-sensor` из прошлого урока в VS Code, если он еще не открыт. Вы будете добавлять в этот проект.
|
|
|
|
|
|
1. Добавьте следующий код в файл `app.py` ниже существующих импортов:
|
|
|
|
|
|
```python
|
|
|
from counterfit_shims_grove.grove_relay import GroveRelay
|
|
|
```
|
|
|
|
|
|
Этот оператор импортирует `GroveRelay` из библиотек Grove Python shim для взаимодействия с виртуальным реле Grove.
|
|
|
|
|
|
1. Добавьте следующий код ниже объявления класса `ADC`, чтобы создать экземпляр `GroveRelay`:
|
|
|
|
|
|
```python
|
|
|
relay = GroveRelay(5)
|
|
|
```
|
|
|
|
|
|
Это создает реле, используя вывод **5**, к которому вы подключили реле.
|
|
|
|
|
|
1. Чтобы проверить, работает ли реле, добавьте следующий код в цикл `while True:`:
|
|
|
|
|
|
```python
|
|
|
relay.on()
|
|
|
time.sleep(.5)
|
|
|
relay.off()
|
|
|
```
|
|
|
|
|
|
Код включает реле, ждет 0,5 секунды, затем выключает реле.
|
|
|
|
|
|
1. Запустите Python-приложение. Реле будет включаться и выключаться каждые 10 секунд с задержкой в полсекунды между включением и выключением. Вы увидите, как виртуальное реле в приложении CounterFit закрывается и открывается при включении и выключении.
|
|
|
|
|
|

|
|
|
|
|
|
## Управление реле на основе влажности почвы
|
|
|
|
|
|
Теперь, когда реле работает, его можно управлять в зависимости от показаний датчика влажности почвы.
|
|
|
|
|
|
### Задание
|
|
|
|
|
|
Управляйте реле.
|
|
|
|
|
|
1. Удалите 3 строки кода, которые вы добавили для тестирования реле. Замените их следующим кодом:
|
|
|
|
|
|
```python
|
|
|
if soil_moisture > 450:
|
|
|
print("Soil Moisture is too low, turning relay on.")
|
|
|
relay.on()
|
|
|
else:
|
|
|
print("Soil Moisture is ok, turning relay off.")
|
|
|
relay.off()
|
|
|
```
|
|
|
|
|
|
Этот код проверяет уровень влажности почвы с датчика влажности. Если он выше 450, реле включается, если ниже 450 — выключается.
|
|
|
|
|
|
> 💁 Помните, что емкостный датчик влажности почвы работает так: чем ниже уровень влажности почвы, тем больше влаги в почве, и наоборот.
|
|
|
|
|
|
1. Запустите Python-приложение. Вы увидите, как реле включается или выключается в зависимости от уровня влажности почвы. Измените *Value* или настройки *Random* для датчика влажности почвы, чтобы увидеть изменение значения.
|
|
|
|
|
|
```output
|
|
|
Soil Moisture: 638
|
|
|
Soil Moisture is too low, turning relay on.
|
|
|
Soil Moisture: 452
|
|
|
Soil Moisture is too low, turning relay on.
|
|
|
Soil Moisture: 347
|
|
|
Soil Moisture is ok, turning relay off.
|
|
|
```
|
|
|
|
|
|
> 💁 Вы можете найти этот код в папке [code-relay/virtual-device](../../../../../2-farm/lessons/3-automated-plant-watering/code-relay/virtual-device).
|
|
|
|
|
|
😀 Ваше виртуальное приложение для управления реле на основе датчика влажности почвы успешно завершено!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от ответственности**:
|
|
|
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. |