Найти в Дзене
TehnoZet-2

Датчик температуры DS18B20, чуть-чуть о протоколе 1-Wire и о iButton.

Оглавление

Это ознакомительная статья она не даст полных знаний о протоколе 1-Wire для этого обращайтесь к специализированной литературе, но на основании этой статьи Вы сможете подключить температурный датчик к ESP8266, Ардуине и еще узнаете о других внешне похожих датчиках.

Дополнено: 15.12.2021

Датчик температуры DS18B20

Tехническая спецификация (Datasheet)

  • Напряжение питания: 3V-5.5V
  • Потребление тока: 1,5 мА (0,0015 ампер)
  • Подключение к питанию прямое или с паразитным питанием
  • Разрешение преобразования температуры: 9 бит – 12 бит;
  • Период измерения температуры при максимальной точности 12 бит: 750 мС;
  • Точность измерения: + /- 2 °C для диапазона от -55 до 125 °C
  • Точность измерения +/- 0,5 °C в диапазоне от -10 до 85 °C
  • Дрейф измерения +/- 0,2 °C
  • Протокол обмена данными: 1-Wire;
  • Тип индексации на линии 1-Wire: уникальный 64-битный адрес;
  • Есть возможность программирования диапазона тревожного сигнала.

Особенности датчика температуры

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

Исполнение

8-Pin SO, 8-Pin µSOP, 3-Pin TO-92

Чаще всего встречается трех пиновое исполнение в форм-факторе TO-92

Распиновка
Распиновка
Распиновка
Распиновка

Обозначение выводов

  • GND - Земля
  • DQ - Данные (Вход/Выход)
  • VDD - Напряжение питания
  • NC - Не подключен

А есть ещё герметичные датчики в металлической капсуле от которой отходит три провода, распайка их следующая:

  • Красный - Питание (VCC)
  • Жёлтый - Данные (DATA)
  • Черный - Земля (GND)
Распиновка
Распиновка

Разрешающая способность (до 12 бит)

Разрешающая способность задается пользователем и может составлять:

  • 9 бит с приращением 0.5°C
  • 10 бит с приращением 0.25°C
  • 11 бит с приращением 0.125°C
  • 12 бит с приращением в 0.0625°C

По умолчанию при включении питания разрешающая способность – 12 бит

О видах датчиках

  • До 2001 года датчик маркировался как DS1820, они уже сняты с производства.
  • DS18S20 – более продвинуты, но видимо то же сняты с производства.
  • DS18В20 – на данный момент повсеместно используются, более совершенные термометры, самое главное отличие - настраиваемая точность.

Так же бывают датчики в защитном кожухе из нержавейки (водонепроницаемый датчик в капсуле из нержавеющей стали)

Водонепроницаемый датчик в капсуле из нержавеющей стали
Водонепроницаемый датчик в капсуле из нержавеющей стали

По диаметру они 6мм

Диаметр защищенного датчика 6мм
Диаметр защищенного датчика 6мм

Применяют там где есть агрессивная среда или жидкость, например, я применяю их в самогоноварении.

А еще бывают отдельно капсулы из нержавеющей стали 6*50 мм" например вот тут (ссылка для примера). Вот как они выглядят

Про терморезисторы

Но помните, что бывают похожие датчики, точно в такой же нержавеющей капсуле, ну почти такой же.

Терморезистор
Терморезистор

Они меньшего диаметра, 4мм

Терморезистор диаметром до 4мм
Терморезистор диаметром до 4мм

Внутри которых находится не DS18В20, а термистор. Напомню, терморезистор (термистор, термосопротивление) — полупроводниковый прибор - резистор, электрическое сопротивление которого изменяется в зависимости от его температуры.

Именно термисторы применяются в компьютерных платах для контроля температуры или в 3D принтерах (пример на Ali и еще) или в дешевых термометрах на окно, вот таких

Термометр с терморезистором
Термометр с терморезистором

Или в платах подобных этой "XH-W1401 цифровой термостат с контроллером температуры и реле", покупал на Ali

Или вот в такой плате от Мастер-Кит (www.masterkit.ru) Термореле 0…150°C NM4022 (BM4022) (A402)

Про термопары

А есть еще термопары которые не надо путать с терморезисторами применяются много где, но например в мультиметрах.

-12

Отдельно термопара

-13

Статьи на канале:

Но на самом деле это совершенно отдельная огромная тема и думаю к ней мы еще вернемся.

Подключение датчика

Подключить датчик не просто, а очень просто.

Подключить датчик можно двумя способами в зависимости от подачи питания

  • Обычным способом используя все три контакта датчика;
  • Используя только два контакта, это так называемое "паразитное питание";

Используя только два контакта (паразитное питание)

Для питания чипа используется "паразитное питание" по той же линии что и линия данных (DATA).

Подключение датчика DS18В20 с "паразитным питанием"
Подключение датчика DS18В20 с "паразитным питанием"

R1 -резистор от 1кОм до 4,7кОм, можете выбрать среднее 2,2кОм.

Таким образом датчик очень удобно монтировать на тонком коаксиальном кабеле, диаметром 2...2,5мм. В этом случае его центральный вывод (DATA) паяется к центральной жиле кабеля, а два боковых (GND, VCC) припаиваются к оплетке. Затем на место пайки помещаете каплю термоклея и сверху осаживаете термоусадочную трубку (можно использовать специальную термоусадку с клеющим слоем внутри). Резистор подтяжки ставится на плате обработки. Получается прочно, аккуратно, герметично.

Обычный способ подключения датчика

При этом используются все три контакта датчика

Нужно добавить подтягивающий резистор от DATA к питанию 4,7 кОм (это резистор между питанием +3,3 вольта и DATA (DQ))

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

Подключение DS18B20
Подключение DS18B20

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

DS18B20
DS18B20

А вот резистор SMD 4,7 КОм (SMD 472)

Резистор SMD 4,7 КОм
Резистор SMD 4,7 КОм

Теперь все соединим, соберем вместе

Все спаяли.
Все спаяли.

По цвету проводов можно догадаться о распайке. И все убираем в термоусадку

Готовое изделие
Готовое изделие

Провод DATA я соединил с GPIO 1(TX), вы можете соединять с другими GPIO

DATA-GPIO1 (TX)
DATA-GPIO1 (TX)

Настройка датчика в прошивке ESP Easy

Настраивать датчик очень просто, в данном примере я не буду отвлекаться на детали, а только общие принципы, итак идем в "Devices" и жмем "Add", добавляем новое устройство

 Добавляем новое устройство
Добавляем новое устройство

В раскрывшимся списке выбираем как не странно "Environment - DS18b20"

Environment - DS18b20
Environment - DS18b20

Теперь настраиваем сам датчик

Обязательно выбираем Имя (Name) - придумываем удобное нам, для примера: "Temperature_Sensor"

Включаем, ставим галочку "Enabled"

И в разделе "Sensor" выбираем на какое GPIO будут приходит данные (GPIO ← TX), у меня к примеру GPIO 1

И пока все, более подробно в отдельной статье, жмем "Submit" и применяем настройки.

Настройка датчика
Настройка датчика

После применения настроек появятся дополнительные окошки, которые необходимо настроить.

В исходящих данных ("Output Configuration") выберите адрес вашего датчика ("Device Address") вместо "None" выбирайте код своего датчика, например "28-ff-65-66-40-17-04-c0 [DS18B20]"

Выберите точность датчика ("Device Resolution") о ней было выше, я выбрал минимальную, 9 бит

В разделе Получение данных "Data Acquisition" выберите интервал опроса датчика (Interval), я выбрал 3 минуты, по умолчанию 1 минута

Настройка датчика, продолжение
Настройка датчика, продолжение

Все минимальная настройка завершилась! Датчик общается по протоколу 1-Wire и ниже чуть чуть об этом протоколе.

А теперь чуть чуть о протоколе 1-Wire

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

Что это такое 1-Wire?

1-Wire – последовательный, асинхронный, полудуплексный протокол передачи данных.

Разберем подробно это определение:

  • Последовательный - данные передаются последовательно, бит за битом.
  • Асинхронный - нет синхронизации, тактового генератора, передача идет по одному проводу.
  • Полудуплексный - возможны прием и передача, но только в разное время.

Данный протокол разработан корпорацией Dallas Semiconductor (сейчас Maxim Integrated) давным-давно, в 90-х годах прошлого века.

Плюсы

  • Передача идет по одному проводу - шине данных

Минусы

  • Скорость передачи маленькая, всего 9600 Бод (а если в битах то скорость не может быть больше 8 333 бит/с, а если учитывать потери на служебные цели, импульсы сброса, импульсы присутствия и др., то скорость будет еще ниже.

И помним, что бот не равен бит (зачем вообще они прицепились к этим БОДам, да потому что шина старая с 90 годов прошлого века, а тогда модемы, телефонная лапша, телетайпы и вот все это)

Вот в отдельной статье: "UART, COM-порт, RS-232 что это и как они связаны? "

  • Чувствителен к помехам

Протокол 1-Wire уровни взаимодействия:

  • физический
  • канальный
  • сетевой
  • транспортный

А какие устройства работают на данном протоколе?

На 1-Wire работает большинство "таблеток" - домофонных чипов, карточек доступа, транзисторные ключи (DS2405, DS2406), программируемые порты ввода-вывода (DS2408), часы реального времени (DS2417) и многое другое.

Каждое устройство имеет 64-битный код который состоит из трёх частей

[8BIT CRC] - [48BIT серийный номер]- [8BIT код семейства]

  • 8BIT CRC - служит для проверки правильности приёма всего кода.
  • 48BIT Серийный номер - Уникальный номер для каждого устройства
  • 8BIT код семейства - Коды семейства, представлены ниже

Коды семейств всех устройств.

Код семейства (HEX) 01. Устройства: DS1990A, DS1990R, DS2401, DS2411 (Уникальный серийный номер-ключ)

Код семейства (HEX) 02. Устройства: DS1991 (Мультиключ, 1152-битная защищённая EEPROM)

Код семейства (HEX) 04. Устройства: DS1994, DS2404 (4 КБ NV RAM + часы, таймер и будильник)

Код семейства (HEX) 05. Устройства: DS2405(Одиночный адресуемый ключ)

Код семейства (HEX) 06. Устройства: DS1993 (4 КБ NV RAM)

Код семейства (HEX) 08. Устройства: DS1992 (1 КБ NV RAM)

Код семейства (HEX) 09. Устройства: DS1982, DS2502. (1 КБ PROM)

Код семейства (HEX) 0A. Устройства: DS1995 (16 КБ NV RAM).

Код семейства (HEX) 0B. Устройства: DS1985, DS2505 (16 КБ EEPROM)

Код семейства (HEX) 0C. Устройства: DS1996 (64 КБ NV RAM)

Код семейства (HEX) 0F. Устройства: DS1986, DS2506 (64 КБ EEPROM)

Код семейства (HEX) 10. Устройства: DS1920, DS1820, DS18S20, (Датчик температуры)

Код семейства (HEX) 12. Устройства: DS2406, DS2407 (1 КБ EEPROM + двухканальный адресуемый ключ)

Код семейства (HEX) 14. Устройства: DS1971, DS2430A (256 бит EEPROM и 64 бита PROM)

Код семейства (HEX) 1A. Устройства: DS1963L (4 КБ NV RAM + счётчик циклов записи)

Код семейства (HEX) 1C. Устройства: DS28E04-100 (4 КБ EEPROM + двухканальный адресуемый ключ)

Код семейства (HEX) 1D. Устройства: DS2423 (4 КБ NV RAM + внешний счётчик)

Код семейства (HEX) 1F. Устройства: DS2409 (Двухканальный адресуемый ключ с возможностью коммутации на возвратную шину)

Код семейства (HEX) 20. Устройства: DS2450 (Четырёхканальный АЦП)

Код семейства (HEX) 21. Устройства: DS1921G, DS1921H, DS1921Z (Термохронный датчик с функцией сбора данных)

Код семейства (HEX) 23. Устройства: DS1973, DS2433 (4 КБ EEPROM)

Код семейства (HEX) 24.Устройства: DS1904, DS2415 (Часы реального времени)

Код семейства (HEX) 26. Устройства: DS2438 (Датчик температуры, АЦП)

Код семейства (HEX) 27. Устройства: DS2417 (Часы реального времени с прерыванием)

Код семейства (HEX) 28. Устройства: 18B20 (Датчик температуры)

Код семейства (HEX) 29. Устройства: DS2408 (Двунаправленный 8-разрядный порт ввода/вывода)

Код семейства (HEX) 2C. Устройства: DS2890(Одноканальный цифровой потенциометр)

Код семейства (HEX) 2D. Устройства:DS1972, DS2431(1 КБ EEPROM)

Код семейства (HEX) 30. Устройства: DS2760 (Датчик температуры, датчик тока, АЦП)

Код семейства (HEX) 37.Устройства: DS1977 (32 КБ защищённой паролем EEPROM)

Код семейства (HEX) 3A.Устройства: DS2413 (Двухканальный адресуемый коммутатор)

Код семейства (HEX) 41.Устройства:DS1922L, DS1922T, DS1923, DS2422 (Термохронные и гигрохронные датчики высокого разрешения с функцией сбора данных)

Код семейства (HEX) 42. Устройства: DS28EA00 (Цифровой термометр с программируемым разрешением, возможностью работать в режиме подключения к последовательному каналу и программируемыми портами ввода/вывода)

Код семейства (HEX) 43. Устройства: DS28EC20 (20 КБ EEPROM)

Где обозначение памяти

NV RAM – Non-Volatile Random-Access Memory (энергонезависимое ОЗУ)

PROM – Programmable Read-Only Memory (однократно программируемое ПЗУ)

EEPROM – Electrically Erasable Programmable Random-Access Memory (электрически стираемое перепрограммируемое ПЗУ)

Самые распространённые это как раз датчик температуры DS18B20, но еще больше распространены микросхемы в корпусах-таблетках iButton - это ключи к домофонам

Контактная память (touch memory, iButton)

Ключи для домофонов или контактный ключ, контактная память, магнитный ключ, таблетка, кнопка и т. д.

Конечно термин "магнитный ключ" не правильный так как магнитов никаких нет.

Для питания чипа используется "паразитное питание" по той же линии что и линия данных (DATA), наружный ободок это земля. Точно так же может питаться и наш датчик температуры DS18B20

Контактная память (touch memory, iButton)
Контактная память (touch memory, iButton)

Схема подключения следующая

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

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

Далее мы подробно разберем подключение датчика температуры к ESP 8266 в прошивке ESP Easy.

Как всегда продолжение следует...

Связанные статьи на моем канале:

Пользуйтесь рубрикатором по каналу, там все по разделам: "Страничка путеводитель по каналу TehnoZet-2"

Подписывайтесь на наш канал TehnoZet-2, там много интересного! Мы только развиваемся! Понравилась статья, хотите продолжения - ставьте лайк, жмите палец вверх!

Тэги

#мастерломастер

#умнаяпыль

#умныйдом

#датчики

#Термодатчик

Рекомендуем почитать
Виджет маскот