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/1-predict-plant-growth/virtual-device-temp.md

154 lines
12 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": "70e5a428b607cd5a9a4f422c2a4df03d",
"translation_date": "2025-08-26T22:19:16+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/virtual-device-temp.md",
"language_code": "ru"
}
-->
# Измерение температуры - Виртуальное IoT-устройство
В этой части урока вы добавите датчик температуры к вашему виртуальному IoT-устройству.
## Виртуальное оборудование
Виртуальное IoT-устройство будет использовать симулированный датчик Grove Digital Humidity and Temperature. Это позволяет сохранить лабораторную работу аналогичной работе с Raspberry Pi и физическим датчиком Grove DHT11.
Датчик объединяет **датчик температуры** и **датчик влажности**, но в этом уроке вас интересует только компонент датчика температуры. В физическом IoT-устройстве датчик температуры обычно представляет собой [термистор](https://wikipedia.org/wiki/Thermistor), который измеряет температуру, фиксируя изменение сопротивления при изменении температуры. Датчики температуры обычно являются цифровыми и внутренне преобразуют измеренное сопротивление в температуру в градусах Цельсия (или Кельвина, или Фаренгейта).
### Добавление датчиков в CounterFit
Чтобы использовать виртуальный датчик влажности и температуры, необходимо добавить два датчика в приложение CounterFit.
#### Задача - добавление датчиков в CounterFit
Добавьте датчики влажности и температуры в приложение CounterFit.
1. Создайте новое приложение на Python на вашем компьютере в папке `temperature-sensor` с одним файлом `app.py`, виртуальной средой Python и добавьте пакеты CounterFit через pip.
> ⚠️ Вы можете обратиться к [инструкциям по созданию и настройке проекта CounterFit на Python в уроке 1, если это необходимо](../../../1-getting-started/lessons/1-introduction-to-iot/virtual-device.md).
1. Установите дополнительный пакет через pip для установки CounterFit shim для датчика DHT11. Убедитесь, что установка выполняется из терминала с активированной виртуальной средой.
```sh
pip install counterfit-shims-seeed-python-dht
```
1. Убедитесь, что веб-приложение CounterFit запущено.
1. Создайте датчик влажности:
1. В поле *Create sensor* на панели *Sensors* выберите тип датчика в выпадающем меню *Sensor type* и выберите *Humidity*.
1. Оставьте единицы измерения (*Units*) в значении *Percentage*.
1. Убедитесь, что *Pin* установлен на *5*.
1. Нажмите кнопку **Add**, чтобы создать датчик влажности на выводе 5.
![Настройки датчика влажности](../../../../../translated_images/counterfit-create-humidity-sensor.2750e27b6f30e09cf4e22101defd5252710717620816ab41ba688f91f757c49a.ru.png)
Датчик влажности будет создан и появится в списке датчиков.
![Созданный датчик влажности](../../../../../translated_images/counterfit-humidity-sensor.7b12f7f339e430cb26c8211d2dba4ef75261b353a01da0932698b5bebd693f27.ru.png)
1. Создайте датчик температуры:
1. В поле *Create sensor* на панели *Sensors* выберите тип датчика в выпадающем меню *Sensor type* и выберите *Temperature*.
1. Оставьте единицы измерения (*Units*) в значении *Celsius*.
1. Убедитесь, что *Pin* установлен на *6*.
1. Нажмите кнопку **Add**, чтобы создать датчик температуры на выводе 6.
![Настройки датчика температуры](../../../../../translated_images/counterfit-create-temperature-sensor.199350ed34f7343d79dccbe95eaf6c11d2121f03d1c35ab9613b330c23f39b29.ru.png)
Датчик температуры будет создан и появится в списке датчиков.
![Созданный датчик температуры](../../../../../translated_images/counterfit-temperature-sensor.f0560236c96a9016bafce7f6f792476fe3367bc6941a1f7d5811d144d4bcbfff.ru.png)
## Программирование приложения для датчика температуры
Теперь можно запрограммировать приложение для работы с датчиком температуры, используя датчики CounterFit.
### Задача - программирование приложения для датчика температуры
Программируйте приложение для датчика температуры.
1. Убедитесь, что приложение `temperature-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_seeed_python_dht import DHT
```
Оператор `from seeed_dht import DHT` импортирует класс `DHT` для взаимодействия с виртуальным датчиком Grove температуры, используя shim из модуля `counterfit_shims_seeed_python_dht`.
1. Добавьте следующий код после предыдущего, чтобы создать экземпляр класса, управляющего виртуальным датчиком влажности и температуры:
```python
sensor = DHT("11", 5)
```
Это объявляет экземпляр класса `DHT`, который управляет виртуальным **D**igital **H**umidity and **T**emperature датчиком. Первый параметр указывает, что используется виртуальный датчик *DHT11*. Второй параметр указывает, что датчик подключен к порту `5`.
> 💁 CounterFit симулирует этот комбинированный датчик влажности и температуры, подключаясь к двум датчикам: датчику влажности на выводе, указанном при создании класса `DHT`, и датчику температуры, который работает на следующем выводе. Если датчик влажности находится на выводе 5, shim ожидает, что датчик температуры будет на выводе 6.
1. Добавьте бесконечный цикл после предыдущего кода, чтобы опрашивать значение датчика температуры и выводить его в консоль:
```python
while True:
_, temp = sensor.read()
print(f'Temperature {temp}°C')
```
Вызов `sensor.read()` возвращает кортеж с влажностью и температурой. Вам нужно только значение температуры, поэтому влажность игнорируется. Значение температуры затем выводится в консоль.
1. Добавьте небольшую паузу в десять секунд в конце цикла, так как уровень температуры не нужно проверять постоянно. Пауза снижает энергопотребление устройства.
```python
time.sleep(10)
```
1. Из терминала VS Code с активированной виртуальной средой выполните следующую команду, чтобы запустить ваше приложение на Python:
```sh
python app.py
```
1. В приложении CounterFit измените значение датчика температуры, которое будет считываться приложением. Вы можете сделать это двумя способами:
* Введите число в поле *Value* для датчика температуры, затем нажмите кнопку **Set**. Число, которое вы введете, будет значением, возвращаемым датчиком.
* Установите флажок *Random* и введите значения *Min* и *Max*, затем нажмите кнопку **Set**. Каждый раз, когда датчик считывает значение, оно будет случайным числом между *Min* и *Max*.
Вы должны увидеть значения, которые вы установили, появляющиеся в консоли. Измените *Value* или настройки *Random*, чтобы увидеть изменение значения.
```output
(.venv) ➜ temperature-sensor python app.py
Temperature 28.25°C
Temperature 30.71°C
Temperature 25.17°C
```
> 💁 Вы можете найти этот код в папке [code-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/virtual-device).
😀 Ваше приложение для датчика температуры успешно работает!
---
**Отказ от ответственности**:
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.