Сегодня первый урок по подключению модуля из набора «37 in 1 Sensors Kit for Arduino». И подключим, в данном Arduino уроке, модуль KY-001, предназначение которого измерение температуры окружающей среды. Построен данный модуль на базе распространённого датчика DS18B20. На моем втором сайте про Arduino я уже рассказывал про данный датчик температуры, и подключал его к Arduino. Сейчас мы рассмотрим подробнее схему подключения модуля KY-001 к Arduino. Код можно взять из предыдущего урока про датчик температуры DS18B20.
Характеристики датчика DS18B20:
- Погрешность измерения не больше 0,5 С (для температуры от -10С до +85С). Не требуется дополнительной калибровки.
- Диапазон измерений от -55 С до +125 С.
- Напряжение питания от 3,3В до 5В.
- Датчик обладает своим уникальным серийным кодом.
- Не требуется дополнительных внешних элементов.
- Можно подключить сразу до 127 датчиков к одной линии связи.
- Информация передается по протоколу Wire.
- Существует, так называемый, режим «паразитного питания», – в нем происходит питание напрямую от линии связи. Для подключения, в этом случае, нужны только 2 провода. Важно, что в этом режиме не гарантируется корректная работа при температуре выше 100С. Режим паразитного питания удобно применять для приложений с удаленным температурным датчиком.
Характеристики модуля KY-001.
Модуль датчика температуры KY-001 состоит из цифрового датчика температуры DS18B20, светодиода и резистора. Модуль совместим с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.
- Собран на цифровом сенсоре 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 NANO.
Схема подключения модуля 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 раз в секунду, и при этом выводится температура в Цельсиях и Фаренгейтах в монитор последовательного порта.
Как видите, данный пример намного меньше и более понятен для новичка.
Как видим, данный модуль
KY-001 позволяет достаточно быстро подключить
датчик температуры DS18B20 к Arduino, без использования дополнительных компонентов (резистора). Плюс, распаянный светодиод на плате модуля
KY-001 позволяет понять, что все подключено правильно и работает.
Купить модуль KY-001 можно тут:
KY-001 модуль температуры на базе DS18B20
Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.
Понравился Урок KY-001 модуль температуры на базе DS18B20. Подключение Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
|
Модуль KY-001 датчика температуры DS18B20.pdf | 82 Kb | 754 |
Скачать
Вы можете скачать файл.
|
|
Скетч вывода температуры с модуля KY-001 .ino | 1 Kb | 794 |
Скачать
Вы можете скачать файл.
|
|
Код с использованием бмблиотеки DallasTemperature.h.ino | 1 Kb | 757 |
Скачать
Вы можете скачать файл.
|
|
Библиотека DallasTemperature .zip | 31 Kb | 830 |
Скачать
Вы можете скачать файл.
|
Комментарии