Изучение измерения температуры с помощью датчика Dallas 18B20 и Arduino: подробное руководство

Вы хотите создать проект измерения температуры с использованием датчика Dallas 18B20 и Arduino? Что ж, вы попали по адресу! В этой статье мы рассмотрим различные методы и примеры кода, которые помогут вам начать измерение температуры с помощью этого популярного датчика. Итак, берите плату Arduino и приступим!

Метод 1: использование библиотеки OneWire

OneWire — это мощная библиотека Arduino, которая упрощает связь с устройствами 1-Wire, включая Dallas 18B20. Вот пошаговое руководство:

Шаг 1. Установите библиотеку OneWire

  • Откройте Arduino IDE
  • Перейдите в «Скетч» >«Включить библиотеку» >«Управление библиотеками».
  • Найдите «OneWire» и нажмите «Установить».

Шаг 2. Подключите датчик Dallas 18B20 к Arduino

  • Подключите контакт VCC датчика к контакту 5 В на Arduino.
  • Подключите контакт GND датчика к контакту GND на Arduino.
  • Подключите вывод данных датчика к цифровому выводу на Arduino (например, D2)

Шаг 3. Загрузите код

#include <OneWire.h>
// Define the data pin
const int dataPin = 2;
// Create a OneWire instance
OneWire oneWire(dataPin);
void setup() {
  Serial.begin(9600);
}
void loop() {
  float temperature;

  // Reset and select the sensor
  oneWire.reset();
  oneWire.select(sensorAddress);

  // Request temperature data
  oneWire.write(0x44);

  // Delay for conversion
  delay(1000);

  // Read temperature data
  oneWire.reset();
  oneWire.select(sensorAddress);
  oneWire.write(0xBE);

  // Read 9 bytes of data
  for (int i = 0; i < 9; i++) {
    data[i] = oneWire.read();
  }
// Convert the data to temperature
  int16_t rawTemperature = (data[1] << 8) | data[0];
  temperature = (float)rawTemperature / 16.0;

  // Print the temperature
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");

  delay(1000);
}

Метод 2. Использование библиотеки температур Далласа

Библиотека DallasTemperature предоставляет интерфейс более высокого уровня для работы с датчиками температуры Dallas 1-Wire. Вот как вы можете его использовать:

Шаг 1. Установите библиотеку DallasTemperature

  • Откройте Arduino IDE
  • Перейдите в «Скетч» >«Включить библиотеку» >«Управление библиотеками».
  • Найдите «DallasTemperature» и нажмите «Установить».

Шаг 2. Подключите датчик Dallas 18B20 к Arduino (так же, как в методе 1)

Шаг 3. Загрузите код

#include <OneWire.h>
#include <DallasTemperature.h>
// Define the data pin
const int dataPin = 2;
// Create a OneWire instance
OneWire oneWire(dataPin);
// Create a DallasTemperature instance
DallasTemperature sensors(&oneWire);
void setup() {
  Serial.begin(9600);
  sensors.begin();
}
void loop() {
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0);

  // Print the temperature
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" °C");

  delay(1000);
}

Метод 3. Использование библиотеки OneWireHub

Библиотека OneWireHub позволяет объединять в сеть несколько устройств 1-Wire, включая датчик Dallas 18B20. Вот краткий пример:

Шаг 1. Установите библиотеку OneWireHub (доступна по адресу https://github.com/orgua/OneWireHub )

Шаг 2. Подключите датчик Dallas 18B20 к Arduino (так же, как в методе 1)

Шаг 3. Загрузите код (пример кода доступен в документации библиотеки)

В этой статье мы рассмотрели различные способы использования датчика температуры Dallas 18B20 с Arduino. Мы рассмотрели основы с использованием библиотеки OneWire, библиотеки DallasTemperature более высокого уровня и более продвинутой библиотеки OneWireHub для сетевых настроек. С помощью этих методов и примеров кода вы теперь можете начать измерять температуру в своих проектах Arduino. Так что вперед, экспериментируйте и получайте удовольствие от приключений по измерению температуры!