Tехническая спецификация (Datasheet)
Напряжение питания: 3V-5.5V
Подключение к питанию прямое или с паразитным питанием
Разрешение преобразования температуры: 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 бит
Подключение датчика
Подключить датчик не просто, а очень просто.
Берем и подключаем, добавляя резистор 4,7 КОм между питанием +3,3 вольта и DATA (DQ) и все! А дальше настройка.
Теперь давайте подключим все это и посмотрим как все выглядит вживую, вот температурный датчик
а вот резистор SMD 4,7 КОм
Теперь все соединяем вместе
По цвету проводов можно догадаться о распайке. И все убираем в термоусадку
Настройка датчика в прошивке ESP Easy
Настраивать датчик очень просто, в данном примере я не буду отвлекаться на детали, а только общие принципы, итак
Идем в "Devices" и жмем "Add" , добавляем новое устройство
В раскрывшимся списке выбираем как не странно "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 – протокол передачи данных в обе стороны по одному проводу.
Данный протокол разработан корпорацией Dallas Semiconductor (сейчас Maxim Integrated) давным давно в 90-х годах.
Плюсы
Передача идет по одному проводу - шине данных
Минусы
но скорость передачи маленькая 9600 Бод/с.
Чувствителен к помехам
Протокол 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, DS18B20 (Датчик температуры)
Код семейства (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) 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
Схема подключения следующая
Резистор R1 от 1Kom до 3Kom, чаще всего в сети встречается 2,2Kom, но это правда для Ардуины.