====== Датчик температуры DS18B20 (датчик, герметичный датчик, модуль датчика) ======

===== Описание =====
Датчик температуры DS18B20 - цифровой термометр, который передает данные по шине 1-Wire, может быть единственным устройством на шине, может работать и в группе. Каждый датчик имеет уникальный 64-битный код, что позволяет общаться с каждым датчиком "индивидуально". Таким образом можно распределить несколько таких датчиков в разных местах, и отслеживать температуру адресно (в том месте, где установлен конкретный датчик).

==== Технические характеристики ====
  * напряжение питания: 3-5,5В
  * диапазон измеряемой температуры: от -55 до +125˚С
  * погрешность измерения температуры: ±0,5˚С
  * максимальный потребляемый ток: 1мА
  * потребляемый ток в режиме ожидания: 750нА
  * потребляемый ток (модуль): 1 мА (в режиме ожидания 750 нА)
  * время отклика: менее 1с

==== Физические размеры ====
  * Датчик (Д х Ш х В): 5 х 3 х 20 мм
  * Герметичный датчик (Д х Ш х В): 1030 х 6 х 65 мм
  * Модуль датчика (Д х Ш х В): 21 х 6 х 28 мм

==== Плюсы использования ====
**Для всех типов:**
  * Быстрый отклик датчика
  * Недорогое решение для измерения температуры
  * Возможность адресного обращения к датчику
  * Работа по шине 1-Wire
  * Низкое энергопотребление
  * Может питаться напряжением линии данных ("паразитное" питание)
  * Широкий диапазон измерений
  * Высокая точность измерений
**Для герметичного датчика:**
  * Возможность измерения температуры жидкостей и пр.
  * Длинный герметичный шнур (1 м)

==== Минусы использования ====
  * Не измеряет влажность как некоторые аналоги

==== Библиотеки для работы с датчиком ====
  * [[http://files.smartelements.ru/know_libs/dallastemperature.zip|Скачать (dallastemperature)]]
  * [[http://files.smartelements.ru/know_libs/onewire.zip|Скачать (onewire)]]

При подключении датчика, вывод питания и сигнальный вывод должны быть соединены резистором на 10КОм. При объединении нескольких датчиков будет достаточно сопротивления 4,7КОм.

//Внимание! При питании датчика от 3,3 В вывод OUT необходимо подтягивать резистором к 5 В !//

====== Примеры подключения и использования ======
В данном примере рассмотрим подключение датчика к контроллеру (на примере Smart UNO), и вывод температуры в Serial-монитор.

**Для датчика или герметичного датчика:**
^ Что нужно                                                                                                                                 ^ Кол-во, шт  ^
| [[http://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]]                                              | 1           |
| [[http://smartelements.ru/collection/datchiki-i-sensory/product/datchik-temperatury-ds18b20-germetichnyy-1m|Датчик температуры DS18B20]]  | 1           |
| [[http://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-papa|Провода папа-папа]]                    | 4           |
| [[http://smartelements.ru/collection/radiodetali/product/nabor-rezistorov|Резистор 10 КОм]]                                               | 1           |

Схема подключения:
{{ главная:датчики:ds18b20_sensor.jpg |}}

**Для модуля датчика:**
^ Что нужно                                                                                                                                       ^ Кол-во, шт  ^
| [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]]| 1           |
| [[https://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]]  | 1           |
| [[https://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-temperatury-dallas-ds18b20|Модуль датчика температуры DS18B20]]  | 1           |
| [[https://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф "мама-мама" х3]]                                          | 1           |

Схема подключения:
{{ :главная:датчики:модуль_для_герметичного_датчика_температуры.png?nolink |}}

**Скетч для загрузки:**
<file Arduino>
#include <OneWire.h> //подключение библиотеки OneWire
#include <DallasTemperature.h> //подключение библиотеки для работы с датчиком

#define ONE_WIRE_BUS 10 //шина передачи данных

OneWire oneWire(ONE_WIRE_BUS); //создание объекта oneWire для передачи данных по технологии OneWire

DallasTemperature sensors(&oneWire); //создание объектов типа DallasTemperature дял измерения температуры

void setup() {
  sensors.begin(); //инициализация датчика(ков)
  Serial.begin(9600);
}

void loop() {
  sensors.requestTemperatures(); //запрос температуры устройств

  //Получение температуры у устройства с индексом (устройств может быть несколько на одной шине)
  // и вывод в сериал порт
  Serial.print("Temperature of device #0 is ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" C");
  
}
</file>