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


Датчик температуры Аrduino DS18B20 позволяет получать данные из окружающей среды как в воздухе, так и в воде или другой жидкости. Именно благодаря своему герметичному водонепроницаемому корпусу датчик температуры воды Ардуино получил большое распространение.

Сам датчик имеет всего один сенсор, который передает сигнал, поэтому предусмотрена возможность подключения нескольких контактов к плате. Об особенностях и характеристиках цифрового датчика, как его подключать и работать с помощью библиотеки ds18b20, подходящей для Аrduino, поговорим подробнее.

Технические параметры и характеристики датчика Аrduino ds18b20

Датчик для Ардуино DS18B20 представлен в 3-х корпусах, которые отличаются небольшим размером: 8-Pin SO (150 mils), 8-Pin µSOP, и 3-Pin TO-92. 3-Pin TO-92 – это датчик температуры воды Ардуино в влагозащитном корпусе. Самое главное, что цифровой датчик передает значение температуры по Цельсию или Фаренгейту, которое нет необходимости преобразовывать, в отличие от аналоговых моделей.

Аrduino датчик температуры имеет следующие технические характеристики:

  • рассчитан на диапазон от -55° C до +125° C;
  • работает при напряжении 3,3В–5В;
  • взаимодействует по протоколу 1-Wire;
  • разрешение 9–12 бит, при максимальной способности 0,0625С;
  • возможно подключение 127 датчиков;
  • встроена функция сохранения информации в 2 видах – оперативной и энергозависимой;
  • предусмотрено паразитное питание.

Присутствует возможность задать пограничный температурный режим от -10 до +85, при этом допускается погрешность ±0.5. Если температура превысит заданный предел, прозвучит тревожный сигнал. Есть произвольная память, которая выборочно записывает верхние и нижние показатели температуры.

Аrduino температурный датчик благодаря множеству полезных функций используют для измерения температуры в таких случаях:

  • Очень удобно пользоваться платой с подключенными датчиками, если у вас есть аквариум, особенно в летний и зимний период. Так как есть возможность задавать границы температуры, датчик оповестит вас, когда вода станет некомфортной для рыб.
  • Использовать как часть умного дома. Например, для нагрева воды в бойлере. Выводя информацию на монитор, Arduino информирует, когда температура достигла необходимого предела. А если добавить туда еще и реле, то можно отключать бойлер.
  • Благодаря тому, что можно подключить к плате Ардуино несколько сенсоров, можно получать информацию одновременно и с холодильника, и с морозилки. При этом высвечиваться он будет на одном мониторе порта. Также используют, чтобы контролировать холодильную витрину в магазине. Звуковой сигнал уведомит, если произойдет сбой.
  • Получая точные показания температуры, можно легко подготовить воду для купания ребенка, учитывая, что она должна быть в пределах 37 °С. Это также касается воды в ванной и бассейне. Используя Аrduino температурный датчик, можно легко задать комфортную для себя температуру.
  • Позволяет поддерживать климат-контроль в любом необходимом месте, например, в теплице или инкубаторе.

Только поначалу кажется, что алгоритм действий и работа с программными кодами сложная. Однако, чем больше вы будете разбираться, тем интереснее будет работа. Возможно, вы даже спроектируете небольшую метеостанцию в домашних условиях.

Именно благодаря сенсорам ds18b20, которые подходят для Аrduino uno, Аrduino nano и стандартной платы Аrduino, можно получить наиболее точные замеры температуры окружающей среды.

Аналоговый температурный датчик

Среди аналоговых датчиков температуры для Ардуино можно выделить DHT 11. Этот сенсор передает данные о температуре и уровне влажности окружающей среды. Для удобства использования даже в домашних условиях предусмотрен дисплей и чип в корпусе, который преобразовывает данные в цифровые показатели.

Датчик DHT 11 подходит для домашнего применения и может быть использован для организации в качестве небольшой метеостанции. Отличается функциональностью при низкой стоимости.

Среди особенности аналогового датчика температуры Ардуино DHT 11 можно выделить:

  • работает при напряжении 3В–5В;
  • верхний предел потребляемого тока 2,5 мА;
  • размеры 15,5х12х5,5 мм;
  • 4 коннектора;
  • измеряемый диапазон температуры 0–50 градусов;
  • диапазон измерения влажности 20–80%.

Однако при всех своих преимуществах есть недостаток – медленно считывает данные: 1 раз за 2 секунды.

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

Термодатчик Аrduino имеет 3 контакта, которые отличаются по цвету. GND канал черного цвета обозначает массу. DQ может быть желтого, белого или синего цвета, представляет собой шину 1-wire, по которой передается сигнал, и канал VDD красного цвета, он выполняет вход внешнего питания.

Для подключения цифрового датчика потребуется резистор на 4.7 кОм, который подключают между линией данных и питанием VCC.

Схема подключения к Ардуино ds18b20 достаточно проста и не займет у вас много времени: на стандартной плате или Ардуино уно находите GND и соединяете его с соответствующим контактом датчика GND. Контакт Vdd с цифровых датчиков соединяете с +5V на плате. Чтобы подсоединить линию ввода, выберите любой цифровой пин, только заранее пропишите его в скетче.

Есть вариант паразитного подключения, когда задействованы всего 2 канала Vdd, которые необходимо заземлить, и GNG. Однако такой способ считается ненадежным, потребует больше времени на обработку данных, а точность измерения остается под вопросом.

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

  Как подключить два или несколько датчиков

Как говорилось ранее, есть возможность подключить к Arduino датчики температуры группой из 2 и более. Для этого также понадобится один резистор для всей группы, а подключаться контакты будут параллельно через 1 провод. Схема подключения остается та же.

Если вы хотите подключить больше чем 10 датчиков, необходимо использовать питание резистора с сопротивлением меньше 1.6 Ком.

С группой термодатчиков Аrduino работать сложнее в плане программирования. Связанно это с тем, что на каждого из них необходимо получить адрес и прописать его в скетче. Соответственно, опрос каждого проводится по отдельности и потребует времени. О том, как узнать адрес датчика ds18b20 и прописать скетч на Ардуино, пойдет речь далее.

Скетч

Получение информации в скетче выглядит следующим образом:

  • сначала определяют адрес датчика и проверяют его подключение;
  • в самом верху скетча прописано название библиотеки, чаще всего это 2 сразу: OneWire и DallasTemperature;
  • задают команду на определение температуры и передачу данных (предусмотрена функция отправления команды одновременно всем подключенным устройствам);
  • после чего необходимо передать данные с регистра на монитор;
  • при необходимости можно затребовать конвертацию измеренных данных по Цельсию или Фаренгейту и обратно.

Для примера скетча используется библиотека ds18b20 для Arduino. Так как удобно использовать обе библиотеки одновременно, приведен соответствующий пример.

Это вариант, когда подключен всего 1 сенсор. Но устройство предполагает считывание информации одновременно с группы сенсоров.

Соответственно, скетч для группы датчиков будет выглядеть немного сложнее, так как необходимо прописать каждый индивидуальный адрес цифрового датчика. В самом примере вы можете видеть строку «количество подключенных датчиков», ориентируясь на нее, проверить, все ли сенсоры присоединены.

Чтобы загрузить скетч, потребуется вначале разобраться, как узнать адрес датчика ds18b20 на Ардуино и какие библиотеки ds18b20 подходят для Arduino. После чего установить соответствующую и начать работу.

Учитывая, что каждый термодатчик Arduino имеет свой уникальный заводской код, который прописан на модуле «64-BIT ROM AND 1-WIRE PORT», их легко отличать в параллельной цепочке. С помощью этого кода вы сможете узнать, какой адрес имеет датчик температуры для Ардуино.

Операцию необходимо повторять каждый раз, подключая новый датчик. Уникальный адрес выглядит следующим образом: 28 FF 45 55 42 17 4 31.

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

Библиотеки для работы с термодатчиками Arduino

После того, как определили, как узнать адрес датчика ds18b20 на Ардуино, можем переходить к установке библиотек. Собственно, для работы с цифровыми термометрами предусмотрены 2 наиболее удобные библиотеки, которые легко скачать и установить:

  • OneWire – это главная библиотека, именно с нее начинается работа со скетчами, может работать как в режиме обувного подключения, так и паразитного;
  • DallasTemperature – простая и логичная в управлении, лучше всего взаимодействовать с ней.

Работа в них достаточно простая и управляется с помощью скетча, который прописали выше. Если работаете с группой датчиков, то лучше пользоваться DallasTemperature. Особенно это актуально, когда используете датчик температуры для воды и воздуха Ардуино одновременно.

Библиотека ds18b20 для Arduino работает по следующему алгоритму:

  • подключить библиотеку для начала работы с ними;
  • далее необходимо ввести индивидуальные адреса цифровых сенсоров;

  • потом с помощью команд можно запрашивать показания с каждого конкретного датчика, есть функция преобразования температуры по Фаренгейту или Цельсию.

Вы также можете поэкспериментировать и разработать собственную дополнительную библиотеку, или же работать напрямую с датчиком, чтобы измерять температуру. Однако намного проще воспользоваться уже готовым вариантом и кодами к ним.

Библиотека DallasTemperature

Чтобы начать работу с DallasTemperature, необходимо скачать файл установки, распаковать архив и переместить его в папку Ардуино под названием библиотека. Код: #include "DallasTemperature.h"

Данная библиотека имеет более понятные и удобные функции, нежели OneWire.h, тем не менее, без нее она работать не может. То есть, потребуется произвести установку 2 библиотек.

Библиотека OneWire для Arduino

Используя библиотеку OneWire, не придется вносить данные вручную. Необходимо всего лишь скачать архив и распаковать его в каталог платы. Для подключения используют программный код: #include "OneWire.h"

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

  • search – чтобы Arduino нашел температурный датчик;
  • reset() – сброс шины;
  • select – записывается ROM код выбранного устройства;
  • write(byte) – с помощью этой функции можно записать информацию на устройство;
  • read – чтение информации;
  • uint8_t search(addrArray) – осуществляет поиск новой шины, переходя с одного датчика на другой постепенно.

Для Write есть числовые коды, которые позволяют измерять, считывать, копировать информацию.

В целом, устройство очень интересное и многофункциональное. Несмотря на то, что программы для датчика на первый взгляд кажутся сложными, немного практики – и все функции станут понятными. Особенно ценятся за возможность применения во влажной среде. Отличаются относительно небольшой стоимостью.

Где купить

Заказать датчики влажности для микроконтроллера Ардуино и другие модули по выгодной цене вы сможете в нашем интернет-магазине Controller4study. Мы предоставляем гарантию качества и оперативную доставку по всей стране. Если у вас возникли вопросы по заказу — позвоните нам по указанному на сайте номеру телефона. Наши опытные консультанты с радостью помогут вам.