В проектах на Raspberry Pi нам часто необходимо использовать датчики для получения данных об окружающей среде. DS18B20 - это распространённый цифровой термометр, который можно подключить и прочитать данные о температуре через интерфейс GPIO на Raspberry Pi. В этой статье мы расскажем, как подключить датчик DS18B20 и написать код на Python для циклического считывания температуры.
Сначала давайте разберёмся с основными принципами работы датчика DS18B20. Это цифровой термометр с высокой точностью и достаточно широким диапазоном измерений. Он общается с Raspberry Pi по протоколу One-Wire и получает питание и передаёт данные через GPIO-пин.
1. Подключение:
Шаги для подключения датчика DS18B20 к Raspberry Pi:
- Подключите VCC пин датчика DS18B20 к пину 3.3V на Raspberry Pi.
- Подключите GND пин датчика DS18B20 к пину GND на Raspberry Pi.
- Подключите DATA пин датчика DS18B20 к пину GPIO на Raspberry Pi. Рекомендуется использовать пин GPIO4.
Ниже приведена схема подключения:
|
|
2. Настройка и ручное чтение:
Вот основные шаги для считывания температуры с помощью модуля DS18B20:
- Включите поддержку DS18B20 на Raspberry Pi: откройте терминал и введите следующую команду, чтобы убедиться, что ядро модули “w1-gpio” и “w1-therm” включены:
|
|
В конце файла добавьте следующие строки:
|
|
Сохраните изменения и выйдите из редактора, затем перезагрузите Raspberry Pi, чтобы изменения вступили в силу.
-
Подключите модуль DS18B20: подключите модуль DS18B20 к интерфейсу GPIO на Raspberry Pi, конкретное подключение можно найти в документации модуля.
-
Считывание температуры: откройте терминал и введите следующую команду, чтобы прочитать значения температуры с модуля DS18B20:
|
|
Должно появиться имя каталога, начинающееся на “28-”, это уникальный идентификатор модуля DS18B20. Замените этот идентификатор в следующей команде на “<device_id>”, чтобы прочитать температурное значение:
|
|
Эта команда вернет текстовую строку, содержащую значение температуры, где температура начинается с “t=”. Полученное значение “t=” разделите на 1000, чтобы получить температуру в градусах Цельсия.
Учтите, что поскольку модуль DS18B20 требует времени для точной измерения температуры, перед считыванием следует подождать некоторое время (например, 1 секунду), чтобы гарантировать, что измерение завершено. Также рекомендуется проверить электрические соединения между Raspberry Pi и модулем DS18B20 для корректного считывания температуры.
3. Циклическое считывание на Python:
После правильного подключения мы можем написать код на Python для чтения значений температуры, измеряемых датчиком DS18B20. Вот пример кода:
|
|
Не забудьте заменить <device_id>
в приведённом коде на фактический ID вашего датчика DS18B20. Вы можете найти правильный ID, выполнив команду ls /sys/bus/w1/devices/
.
Данный код будет непрерывно считывать температуру и выводить текущее значение каждую секунду. Вы можете изменять и расширять его в соответствии с вашими потребностями.
Следуя этим шагам, вы можете легко считывать значения температуры с датчика DS18B20 с использованием Raspberry Pi и Python. Это предоставляет простой и надежный способ получения данных о температуре окружающей среды для вашего проекта. Надеемся, что эта статья была полезна вам в работе с датчиком температуры на Raspberry Pi!