Датчик температуры DS18B20, подключение к Arduino

Уважаемые читатели! Если вы ищете полезную информацию о подключении датчика температуры DS18B20 к плате Arduino, эта статья для вас. Мы подробно рассмотрим особенности датчика, схемы подключения, библиотеки и примеры кода для Arduino.

Обзор датчика DS18B20

DS18B20 – это цифровой датчик температуры с интерфейсом 1-Wire. Он имеет следующие преимущества:

  • Высокая точность измерений: ±0,5°C в диапазоне от -10 до +85°C
  • Широкий диапазон рабочих температур: от -55 до +125°C
  • Несколько вариантов корпуса: TO-92, TO-18, в водонепроницаемом исполнении
  • Низкое энергопотребление
  • Простота подключения и программирования, справится даже начинающий программист
  • Возможность подключения нескольких датчиков к одному выводу контроллера
  • Уникальный 64-битный серийный номер, позволяющий однозначно идентифицировать каждый датчик в сети
  • Наличие большого количества библиотек для различных платформ
  • Низкая стоимость
  • Доступность и распространенность, легко найти доступ и необходимые аксессуары

Благодаря этим характеристикам, датчик DS18B20 широко используется для измерения температуры в различных системах: от носимых гаджетов и метеостанций до промышленных контроллеров и систем "умный дом". Рассмотрим более подробно варианты его применения с микроконтроллерными платами Arduino.

Подготовка к подключению DS18B20

Перед началом работы с датчиком температуры необходимо подготовить:

  1. Плату Arduino (UNO, Mega, Nano или другую) или совместимую
  2. DS18B20 в корпусе TO-92 или другом (один или более штук)
  3. Библиотеку для работы с датчиком (DallasTemperature, OneWire или др.)
  4. Программу для Arduino - тестовый скетч, пример кода из библиотеки
  5. 4,7 кОм резистор (или 2 резистора 10 кОм)
  6. Соединительные провода, порты платы Arduino

Для реализации полноценного термометра или другой системы на базе DS18B20 понадобятся дополнительные компоненты (дисплей, часы реального времени и т.д.), о них речь пойдет ниже.

Схема подключения одного DS18B20

Подключение может быть выполнено подключение ds18b20 к Arduino двумя способами:

  1. С внешним питанием 3-5 В
  2. В режиме паразитного питания

Рассмотрим оба варианта более подробно.

DS18B20 и Arduino на макетной плате

Подключение DS18B20 к Arduino с внешним питанием

Схема простая и включает следующие компоненты:

  • Arduino board
  • DS18B20 в корпусе TO-92
  • Резистор 4,7 кОм
  • Источник питания 3-5 В

Схема подключения DS18B20 к Arduino с внешним питанием приведена на рисунке:

Датчик DS18B20 и резистор 4,7 кОм подключаются к любому свободному цифровому пину Arduino. В примерах обычно используется пин 2, 3 или 4.

Подключение DS18B20 к Arduino в режиме паразитного питания

Этот режим позволяет использовать подключение датчика ds18b20 к Arduino всего два провода для передачи данных и электропитания:

В режиме паразитного питания ток по линии данных запасается во внутреннем конденсаторе датчика и обеспечивает его работу. Но этот режим не всегда устойчив, поэтому при температурах выше +100°С рекомендуется использовать внешнее питание DS18B20 от 3 до 5 В.

Терморегулятор на базе DS18B20

Подключение нескольких датчиков DS18B20

Одно из главных преимуществ интерфейса 1-Wire, который используется в DS18B20, - это возможность подключение нескольких ds18b20 к Arduino к одной линии связи. Рассмотрим особенности организации такого соединения.

Особенности подключения нескольких DS18B20 к Arduino

  • Датчики соединяются параллельно, линия данных общая
  • Необходимо знать уникальный 64-битный код каждого датчика
  • По коду датчика Arduino однозначно определяет, с какого из сенсоров получены данные о температуре
  • Количество датчиков на одной линии ограничено суммарным током потребления
  • Максимальная длина линии зависит от сечения провода и количества датчиков

Схема подключения нескольких датчиков DS18B20 к Arduino (до 8 шт.) приведена ниже:

Важный момент - каждый датчик должен подключаться к линии данных через свой резистор 4,7 кОм для ограничения тока. Иначе возможны всей цепи. Для надежной передачи данных при подключении 8 датчиков DS18B20 потребуется провод сечением не меньше 0,5 мм2 при длине до 20 метров. Также важно обеспечить качественный контакт в клеммных колодках.

Библиотеки для работы с DS18B20

Для взаимодействия с датчиком DS18B20 в среде Arduino IDE существует несколько библиотек:

OneWire Базовая библиотека для работы с устройствами однопроводного интерфейса
DallasTemperature Расширенная библиотека для датчиков DS18x20 на базе OneWire
DS18x20 Альтернативная библиотека высокого уровня для датчиков DS18B20 и DS18S20

Рассмотрим подробнее наиболее популярную и функциональную библиотеку DallasTemperature.

Библиотека DallasTemperature

Основные возможности:

  • Автоматическое определение количества датчиков на линии
  • Поддержка основных функций датчиков DS18B20 и DS18S20
  • Одновременная работа с несколькими датчиками на одном пине
  • Богатый набор вспомогательных функций для опроса и конвертации данных
  • Аппаратный прерыватель для опроса датчиков в фоновом режиме без задержек
  • Примеры использования для Arduino в официальной документации
  • Активная техподдержка на GitHub
  • Регулярные обновления и исправление ошибок
  • Совместимость с разными платформами и компиляторами
  • Распространяется по лицензии GNU GPL

По совокупности характеристик DallasTemperature является лучшим выбором для работы с датчиками DS18B20 в Arduino IDE. Рассмотрим установку библиотеки и примеры использования ее функций при работе с датчиком.

Установка библиотеки DallasTemperature

Установка выполняется стандартными средствами Arduino IDE:

  1. Заходим в меню Скетч - Подключить библиотеку - Дополнительные библиотеки
  2. В поле поиска вводим название "dallastemperature"
  3. Устанавливаем последнюю версию библиотеки
  4. Подключаем библиотеку в скетче проекта командой #include <DallasTemperature.h>

После этого библиотека готова к использованию в программах для Arduino.

Инициализация датчика DS18B20. Пример инициализации одного или нескольких датчиков DS18B20 на шине 1-Wire для дальнейшей работы с ними:

 #include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); sensors.begin(); 

Чтение температуры с DS18B20. Для считывания температуры с датчика необходимо:

  1. Запросить измерение температуры командой sensors.requestTemperatures()
  2. Получить результат функцией sensors.getTempCByIndex(0) для первого датчика

Использование DS18B20 в термореле

Датчик DS18B20 можно успешно применить в ds18b20 подключение Arduino термореле для точного поддержания заданной температуры. Пример схемы:

Здесь датчик DS18B20 контролирует температуру объекта, а микроконтроллер Arduino управляет реле включения нагревателя или охладителя. Такая схема может использоваться в термостатах, инкубаторах, климатических камерах.

Регистрация показаний DS18B20 на карте памяти

Для построения графиков температурной динамики необходимо сохранить показания датчика DS18B20 во внешнюю память. Это можно сделать с помощью модуля реального времени (RTC) и карты памяти SD, подключенных к Arduino.

Подключение модуля RTC к Arduino

Модуль часов реального времени DS3231 или аналогичный подключается по интерфейсу I2C:

В программе для Arduino производится установка текущей даты и времени с компьютера, а затем модуль RTC обеспечивает точный отсчет времени для привязки данных о температуре.

Подключение модуля карты памяти

Модуль карты microSD подключается к плате Arduino Uno по SPI интерфейсу:

Обмен данными с картой памяти происходит с использованием библиотеки SD.h. Производится открытие файла, запись данных с добавлением метки времени от модуля RTC.

Структура данных на SD карте

Данные на карту памяти записываются в текстовом CSV файле, для последующей обработки в табличном редакторе. Пример строки файла:

 23.11.2023 15:30:05, 23.15 

Где первое значение - дата и время (от модуля RTC), второе значение - температура, считанная с DS18B20.

Построение графиков температуры

После записи данных о температуре на SD карту в течение требуемого времени, карта извлекается из модуля и подключается к ПК.

Далее CSV файл импортируется в Microsoft Excel, LibreOffice Calc или другую табличную программу. По имеющимся дате/времени и значениям температуры строится график.

Анализ графиков термодинамики

Полученные графики позволяют проанализировать изменение температуры объекта во времени и сделать выводы о влиянии различных факторов.

Например, термоизоляционные свойства материалов, эффективность систем нагрева/охлаждения, колебания температуры окружающей среды.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.