Сегодня первый урок по подключению модуля из набора «37 in 1 Sensors Kit for Arduino». И подключим, в данном Arduino уроке, модуль KY-001, предназначение которого измерение температуры окружающей среды. Построен данный модуль на базе распространённого датчика DS18B20. На моем втором сайте про Arduino я уже рассказывал про данный датчик температуры, и подключал его к Arduino. Сейчас мы рассмотрим подробнее схему подключения модуля KY-001 к Arduino. Код можно взять из предыдущего урока про датчик температуры DS18B20.
Модуль датчика температуры KY-001 состоит из цифрового датчика температуры DS18B20, светодиода и резистора. Модуль совместим с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.
Каждый DS18B20 имеет уникальный номер, что позволяет подключить к одной шине большое количество датчиков.
Схема подключения модуля KY-001 (DS18B20) к Arduino NANO.
Схема подключения модуля KY-001 (DS18B20) к Arduino.
Подключите линию питания (посередине) c к +5 Arduino, землю (-) и GND соответственно. Подключите сигнал (S) к контакту 2 на Arduino.
Подключение (слева направо)
Код ниже будет выводить показания температуры с модуля 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 можно тут:
KY-001 модуль температуры на базе DS18B20
Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.
Понравился Урок KY-001 модуль температуры на базе DS18B20. Подключение Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
| Модуль KY-001 датчика температуры DS18B20.pdf | 82 Kb | 990 | Скачать | |
| Скетч вывода температуры с модуля KY-001 .ino | 1 Kb | 1041 | Скачать | |
| Код с использованием бмблиотеки DallasTemperature.h.ino | 1 Kb | 991 | Скачать | |
| Библиотека DallasTemperature .zip | 31 Kb | 1101 | Скачать |
37 модулей для Arduino
19 ноября , 2020
Комментариев:0
Файлов для скачивания:4
Фото:6
Понравилась статья? Нажми
Читайте также
Мы в соц сетях
Комментарии