Проекты с температурными датчиками на Arduino

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Введение

Температурные датчики являются одними из самых популярных компонентов для проектов на базе Arduino. Они позволяют измерять температуру окружающей среды и использовать эти данные в различных приложениях, от простых термометров до сложных систем управления климатом. В этой статье мы рассмотрим, как использовать температурные датчики с Arduino, какие компоненты необходимы, как их подключить и приведем несколько примеров проектов с кодом.

Температурные датчики могут быть аналоговыми и цифровыми. Аналоговые датчики, такие как LM35, выводят напряжение, пропорциональное температуре, в то время как цифровые датчики, такие как DS18B20 и DHT11, передают данные в цифровом формате. Это делает их использование более удобным и точным. В этой статье мы подробно рассмотрим каждый из этих типов датчиков и покажем, как их интегрировать в ваши проекты на базе Arduino.

Кинга Идем в IT: пошаговый план для смены профессии

Необходимые компоненты

Для создания проектов с температурными датчиками на Arduino вам понадобятся следующие компоненты:

  • Arduino (например, Uno, Nano или Mega)
  • Температурный датчик (например, DS18B20, DHT11, DHT22 или LM35)
  • Резисторы (если необходимо)
  • Макетная плата и соединительные провода
  • Компьютер с установленной Arduino IDE

Дополнительные компоненты

В зависимости от сложности вашего проекта, вам могут понадобиться дополнительные компоненты, такие как:

  • ЖК-дисплей для отображения температуры
  • Реле для управления внешними устройствами на основе температуры
  • Интернет-модуль (например, ESP8266) для отправки данных в облако
  • Батарея или блок питания для автономной работы

Подключение температурного датчика к Arduino

Подключение DS18B20

DS18B20 — это цифровой температурный датчик, который подключается к Arduino через один провод. Вот как его подключить:

  1. Подключите VCC датчика к 5V на Arduino.
  2. Подключите GND датчика к GND на Arduino.
  3. Подключите сигнальный вывод (DQ) датчика к любому цифровому пину на Arduino (например, D2).
  4. Подключите резистор 4.7 кОм между VCC и сигнальным выводом (DQ).

DS18B20 поддерживает протокол 1-Wire, что позволяет подключать несколько датчиков к одному пину Arduino. Это особенно полезно для проектов, где требуется измерение температуры в нескольких точках.

Подключение DHT11/DHT22

DHT11 и DHT22 — это цифровые датчики температуры и влажности. Подключение аналогично:

  1. Подключите VCC датчика к 5V на Arduino.
  2. Подключите GND датчика к GND на Arduino.
  3. Подключите сигнальный вывод (DATA) датчика к любому цифровому пину на Arduino (например, D2).
  4. Подключите резистор 10 кОм между VCC и сигнальным выводом (DATA).

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

Подключение LM35

LM35 — это аналоговый температурный датчик. Подключение выглядит следующим образом:

  1. Подключите VCC датчика к 5V на Arduino.
  2. Подключите GND датчика к GND на Arduino.
  3. Подключите сигнальный вывод (OUT) датчика к любому аналоговому пину на Arduino (например, A0).

LM35 выводит напряжение, пропорциональное температуре. Каждое изменение на 10 мВ соответствует изменению температуры на 1°C. Это делает его простым в использовании, но требует калибровки для точных измерений.

Примеры проектов с кодом

Проект 1: Простой термометр с DS18B20

Этот проект покажет, как считывать температуру с датчика DS18B20 и выводить её на серийный монитор.

cpp
Скопировать код
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();
  float temperatureC = sensors.getTempCByIndex(0);
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.println(" °C");
  delay(1000);
}

Этот код использует библиотеку DallasTemperature для работы с датчиком DS18B20. Библиотека упрощает процесс считывания данных и позволяет легко интегрировать датчик в ваш проект. Вы можете изменить частоту обновления данных, изменив значение задержки в функции loop().

Проект 2: Термометр и гигрометр с DHT11

Этот проект покажет, как считывать температуру и влажность с датчика DHT11 и выводить данные на серийный монитор.

cpp
Скопировать код
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C ");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");
  delay(2000);
}

Этот код использует библиотеку DHT для работы с датчиком DHT11. Библиотека упрощает процесс считывания данных и позволяет легко интегрировать датчик в ваш проект. Вы можете изменить частоту обновления данных, изменив значение задержки в функции loop().

Проект 3: Аналоговый термометр с LM35

Этот проект покажет, как считывать температуру с аналогового датчика LM35 и выводить её на серийный монитор.

cpp
Скопировать код
#define LM35PIN A0

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(LM35PIN);
  float voltage = sensorValue * (5.0 / 1023.0);
  float temperatureC = voltage * 100;
  
  Serial.print("Temperature: ");
  Serial.print(temperatureC);
  Serial.println(" °C");
  delay(1000);
}

Этот код считывает аналоговое значение с датчика LM35 и преобразует его в температуру. Вы можете изменить частоту обновления данных, изменив значение задержки в функции loop(). Также можно добавить калибровку для улучшения точности измерений.

Заключение и дополнительные ресурсы

Температурные датчики открывают множество возможностей для создания интересных и полезных проектов на базе Arduino. В этой статье мы рассмотрели, как подключать различные типы датчиков и привели примеры простых проектов с кодом. Для дальнейшего изучения вы можете ознакомиться с официальной документацией и сообществами, такими как Arduino Forum и GitHub, где можно найти множество примеров и готовых проектов.

Температурные датчики могут быть использованы в различных приложениях, таких как системы управления климатом, мониторинг окружающей среды, умные дома и многое другое. Вы можете комбинировать их с другими датчиками и модулями для создания более сложных и функциональных проектов.

Дополнительные ресурсы:

Используйте эти ресурсы для расширения своих знаний и создания собственных уникальных проектов! Не бойтесь экспериментировать и пробовать новые идеи. Удачи в ваших начинаниях!

Читайте также