KY-001 модуль температуры на базе DS18B20. Подключение к Arduino.

Сегодня первый урок по подключению модуля из набора «37 in 1 Sensors Kit for Arduino». И подключим, в данном Arduino уроке, модуль KY-001, предназначение которого измерение температуры окружающей среды. Построен данный модуль на базе распространённого датчика DS18B20. На моем втором сайте про Arduino я уже рассказывал про данный датчик температуры, и подключал его к Arduino. Сейчас мы рассмотрим подробнее схему подключения модуля KY-001 к Arduino. Код можно взять из предыдущего урока про датчик температуры DS18B20.

модуль KY-001

Характеристики датчика DS18B20:

  • Погрешность измерения не больше 0,5 С (для температуры от -10С до +85С). Не требуется дополнительной калибровки.
  • Диапазон измерений от -55 С до +125 С.
  • Напряжение питания от 3,3В до 5В.
  • Датчик обладает своим уникальным серийным кодом.
  • Не требуется дополнительных внешних элементов.
  • Можно подключить сразу до 127 датчиков к одной линии связи.
  • Информация передается по протоколу Wire.
  • Существует, так называемый, режим «паразитного питания», – в нем происходит питание напрямую от линии связи. Для подключения, в этом случае, нужны только 2 провода. Важно, что в этом режиме не гарантируется корректная работа при температуре выше 100С. Режим паразитного питания удобно применять для приложений с удаленным температурным датчиком.

Характеристики модуля KY-001.

Модуль датчика температуры KY-001 состоит из цифрового датчика температуры DS18B20, светодиода и резистора. Модуль совместим с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.

Характеристики модуля KY-001.

  • Собран на цифровом сенсоре DS18B20, напряжение питания от 3.0 V до 5.5 V.
  • Измеряемая температура -55 ° C до +125 ° C, по Фаренгейту — 67 ° F до 257 ° F.
  • В диапазоне от -10 °C до +85 ° C точность измерения ± 0.5 ° C.
  • Время измерения не более 750 миллисекунд.

Каждый DS18B20 имеет уникальный номер, что позволяет подключить к одной шине большое количество датчиков.

Схема подключения модуля KY-001 (DS18B20) к Arduino.

Схема подключения модуля KY-001 (DS18B20) к Arduino.

Схема подключения модуля KY-001 (DS18B20) к Arduino NANO.

Схема подключения модуля KY-001 (DS18B20) к Arduino UNOСхема подключения модуля KY-001 (DS18B20) к Arduino.

Подключите линию питания (посередине) c к +5 Arduino, землю (-) и GND соответственно. Подключите сигнал (S) к контакту 2 на Arduino.

Подключение (слева направо)

  • GND
  • +5V
  • S - Signal, в примере подключаем ко 2 выводу arduino

Скетч вывода температуры с модуля KY-001 (DS18B20) в монитор порта.

Код ниже будет выводить показания температуры с модуля KY-001 (DS18B20) в монитор последовательного порта каждую секунду.

#include <OneWire.h>
OneWire ds(2);
void setup() {
    Serial.begin(9600);
}
void loop() {
    byte i;
    byte data[12];
    byte addr[8];
    float celsius;
    // поиск датчика
    if ( !ds.search(addr)) {
        ds.reset_search();
        delay(250);
        return;
    }
    ds.reset();
    ds.select(addr);
    ds.write(0x44, 1); // измерение температуры
    delay(1000);
    ds.reset();
    ds.select(addr); 
    ds.write(0xBE); // начало чтения измеренной температуры
    //показания температуры из внутренней памяти датчика
    for ( i = 0; i < 9; i++) {
        data[i] = ds.read();
    }
    int16_t raw = (data[1] << 8) | data[0];
    // датчик может быть настроен на разную точность, выясняем её 
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw & ~7; // точность 9-разрядов, 93,75 мс
    else if (cfg == 0x20) raw = raw & ~3; // точность 10-разрядов, 187,5 мс
    else if (cfg == 0x40) raw = raw & ~1; // точность 11-разрядов, 375 мс
    // преобразование показаний в градусы Цельсия 
    celsius = (float)raw / 16.0;
    Serial.print("t=");
    Serial.println(celsius);
}

Вот такой результат мы увидим в мониторе порта.

Вот такой результат мы увидим в мониторе порта.

Данный пример достаточно сложный для понимания. Для упрощения работы с датчиком лучше использовать библиотеку DallasTemperature.h. Данная библиотека ставится поверх OneWire.h, т.е. для ее работы должна быть установлена библиотека OneWire.

С библиотекой DallasTemperature устанавливаются примеры. Вы можете воспользоваться любым из них.

Мы рассмотрим более простотой пример, который я взял из библиотеки, и немного его упростил.

#include <OneWire.h>
#include <DallasTemperature.h>
// контакт 2 на Arduino:
#define ONE_WIRE_BUS 2
// создаем экземпляр класса OneWire, чтобы с его помощью
// общаться с однопроводным устройством
OneWire oneWire(ONE_WIRE_BUS);
// передаем объект oneWire объекту sensors:
DallasTemperature sensors(&oneWire);
void setup(void)
{
  Serial.begin(9600);
  // запускаем библиотеку:
  sensors.begin();
}
void loop(void){
  // вызываем функцию sensors.requestTemperatures(),
  // которая приказывает всем устройствам, подключенным к шине
  sensors.requestTemperatures();
  Serial.print("Celsius temperature: ");
  //  в Цельсиях:
  Serial.print(sensors.getTempCByIndex(0));
  Serial.print(" - Fahrenheit temperature: ");
  //  в Фаренгейтах:
  Serial.println(sensors.getTempFByIndex(0));
  delay(1000);
}

В данном примере температура выводится 1 раз в секунду, и при этом выводится температура в Цельсиях и Фаренгейтах в монитор последовательного порта.

В данном примере температура выводится 1 раз в секунду, и при этом выводится температура в Цельсиях и Фаренгейтах в монитор последовательного порта.

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

модуль KY-001 позволяет достаточно быстро подключить датчик температуры DS18B20 к Arduino

Как видим, данный модуль KY-001 позволяет достаточно быстро подключить датчик температуры DS18B20 к Arduino, без использования дополнительных компонентов (резистора). Плюс, распаянный светодиод на плате модуля KY-001 позволяет понять, что все подключено правильно и работает.

Купить модуль KY-001 можно тут:

KY-001 модуль температуры на базе DS18B20 KY-001 модуль температуры на базе DS18B20

Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.

Понравился Урок KY-001 модуль температуры на базе DS18B20. Подключение Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Модуль KY-001 датчика температуры DS18B20 Модуль KY-001 датчика температуры DS18B20.pdf82 Kb 66 Скачать
Скетч вывода температуры с модуля KY-001 Скетч вывода температуры с модуля KY-001 .ino1 Kb 60 Скачать
Код с использованием бмблиотеки DallasTemperature.h Код с использованием бмблиотеки DallasTemperature.h.ino1 Kb 61 Скачать
Библиотека DallasTemperature Библиотека DallasTemperature .zip31 Kb 73 Скачать

Комментарии

Ваше Имя*