|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "7678f7c67b97ee52d5727496dcd7d346",
|
|
|
"translation_date": "2025-08-26T22:20:50+00:00",
|
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/pi-temp.md",
|
|
|
"language_code": "ru"
|
|
|
}
|
|
|
-->
|
|
|
# Измерение температуры - Raspberry Pi
|
|
|
|
|
|
В этой части урока вы добавите датчик температуры к вашему Raspberry Pi.
|
|
|
|
|
|
## Аппаратное обеспечение
|
|
|
|
|
|
Датчик, который вы будете использовать, — это [датчик влажности и температуры DHT11](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html), объединяющий два датчика в одном корпусе. Это довольно популярное устройство, и существует множество коммерчески доступных датчиков, которые измеряют температуру, влажность, а иногда и атмосферное давление. Компонент датчика температуры представляет собой термистор с отрицательным температурным коэффициентом (NTC), сопротивление которого уменьшается с увеличением температуры.
|
|
|
|
|
|
Это цифровой датчик, поэтому он имеет встроенный АЦП, который создает цифровой сигнал с данными о температуре и влажности, которые может считывать микроконтроллер.
|
|
|
|
|
|
### Подключение датчика температуры
|
|
|
|
|
|
Датчик температуры Grove можно подключить к Raspberry Pi.
|
|
|
|
|
|
#### Задание
|
|
|
|
|
|
Подключите датчик температуры.
|
|
|
|
|
|

|
|
|
|
|
|
1. Вставьте один конец кабеля Grove в разъем на датчике влажности и температуры. Кабель вставляется только в одном направлении.
|
|
|
|
|
|
1. При выключенном питании Raspberry Pi подключите другой конец кабеля Grove к цифровому разъему, обозначенному как **D5**, на Grove Base Hat, подключенном к Pi. Этот разъем находится вторым слева в ряду разъемов рядом с GPIO-пинами.
|
|
|
|
|
|

|
|
|
|
|
|
## Программирование датчика температуры
|
|
|
|
|
|
Теперь устройство можно запрограммировать для работы с подключенным датчиком температуры.
|
|
|
|
|
|
### Задание
|
|
|
|
|
|
Программируйте устройство.
|
|
|
|
|
|
1. Включите Raspberry Pi и дождитесь его загрузки.
|
|
|
|
|
|
1. Запустите VS Code, либо непосредственно на Raspberry Pi, либо подключившись через расширение Remote SSH.
|
|
|
|
|
|
> ⚠️ Вы можете обратиться к [инструкциям по настройке и запуску VS Code в уроке 1, если это необходимо](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md).
|
|
|
|
|
|
1. В терминале создайте новую папку в домашнем каталоге пользователя `pi` с именем `temperature-sensor`. Создайте в этой папке файл с именем `app.py`:
|
|
|
|
|
|
```sh
|
|
|
mkdir temperature-sensor
|
|
|
cd temperature-sensor
|
|
|
touch app.py
|
|
|
```
|
|
|
|
|
|
1. Откройте эту папку в VS Code.
|
|
|
|
|
|
1. Для работы с датчиком температуры и влажности необходимо установить дополнительный пакет Pip. В терминале VS Code выполните следующую команду, чтобы установить этот пакет на Raspberry Pi:
|
|
|
|
|
|
```sh
|
|
|
pip3 install seeed-python-dht
|
|
|
```
|
|
|
|
|
|
1. Добавьте следующий код в файл `app.py`, чтобы импортировать необходимые библиотеки:
|
|
|
|
|
|
```python
|
|
|
import time
|
|
|
from seeed_dht import DHT
|
|
|
```
|
|
|
|
|
|
Оператор `from seeed_dht import DHT` импортирует класс `DHT` для взаимодействия с датчиком температуры Grove из модуля `seeed_dht`.
|
|
|
|
|
|
1. Добавьте следующий код после предыдущего, чтобы создать экземпляр класса, управляющего датчиком температуры:
|
|
|
|
|
|
```python
|
|
|
sensor = DHT("11", 5)
|
|
|
```
|
|
|
|
|
|
Это объявляет экземпляр класса `DHT`, который управляет **D**igital **H**umidity и **T**emperature датчиком. Первый параметр указывает, что используется датчик *DHT11* — библиотека, которую вы используете, поддерживает и другие варианты этого датчика. Второй параметр указывает, что датчик подключен к цифровому порту `D5` на Grove Base Hat.
|
|
|
|
|
|
> ✅ Помните, что у всех разъемов есть уникальные номера пинов. Пины 0, 2, 4 и 6 — это аналоговые пины, а пины 5, 16, 18, 22, 24 и 26 — цифровые.
|
|
|
|
|
|
1. Добавьте бесконечный цикл после предыдущего кода, чтобы опрашивать значение температуры с датчика и выводить его в консоль:
|
|
|
|
|
|
```python
|
|
|
while True:
|
|
|
_, temp = sensor.read()
|
|
|
print(f'Temperature {temp}°C')
|
|
|
```
|
|
|
|
|
|
Вызов `sensor.read()` возвращает кортеж с влажностью и температурой. Вам нужно только значение температуры, поэтому влажность игнорируется. Значение температуры затем выводится в консоль.
|
|
|
|
|
|
1. Добавьте небольшую паузу в десять секунд в конце цикла, так как уровень температуры не нужно проверять постоянно. Пауза снижает энергопотребление устройства.
|
|
|
|
|
|
```python
|
|
|
time.sleep(10)
|
|
|
```
|
|
|
|
|
|
1. В терминале VS Code выполните следующую команду, чтобы запустить ваше Python-приложение:
|
|
|
|
|
|
```sh
|
|
|
python3 app.py
|
|
|
```
|
|
|
|
|
|
Вы должны увидеть значения температуры, выводимые в консоль. Используйте что-нибудь для нагрева датчика, например, приложите к нему палец или используйте вентилятор, чтобы увидеть изменения значений:
|
|
|
|
|
|
```output
|
|
|
pi@raspberrypi:~/temperature-sensor $ python3 app.py
|
|
|
Temperature 26°C
|
|
|
Temperature 26°C
|
|
|
Temperature 28°C
|
|
|
Temperature 30°C
|
|
|
Temperature 32°C
|
|
|
```
|
|
|
|
|
|
> 💁 Вы можете найти этот код в папке [code-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/pi).
|
|
|
|
|
|
😀 Ваше приложение для работы с датчиком температуры успешно заработало!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от ответственности**:
|
|
|
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия по обеспечению точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. |