Измерение температуры — важнейший аспект многих проектов Arduino, от мониторинга окружающей среды до домашней автоматизации. В этой статье блога мы рассмотрим различные методы взаимодействия датчиков температуры с платами Arduino. Мы предоставим примеры кода для каждого метода, чтобы помочь вам начать работу над проектами по измерению температуры.
Метод 1: использование цифрового датчика температуры (DS18B20):
DS18B20 — это популярный цифровой датчик температуры, который обменивается данными по протоколу 1-Wire. Вот пример фрагмента кода для считывания данных о температуре с датчика DS18B20:
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is connected to digital pin 2
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);
void setup()
{
// Start communication with the DS18B20 sensors
sensors.begin();
}
void loop()
{
// Request temperature data from all connected sensors
sensors.requestTemperatures();
// Read temperature from the first sensor
float temperature = sensors.getTempCByIndex(0);
// Print temperature value to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(1000); // Delay for 1 second
}
Метод 2: использование аналогового датчика температуры (LM35):
LM35 — популярный аналоговый датчик температуры, который обеспечивает выходное линейное напряжение, пропорциональное температуре окружающей среды. Вот пример фрагмента кода для считывания данных о температуре с датчика LM35:
#define LM35_PIN A0
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Read analog voltage from LM35 pin
int sensorValue = analogRead(LM35_PIN);
// Convert the analog value to temperature in Celsius
float voltage = sensorValue * (5.0 / 1023.0); // Convert to voltage
float temperature = voltage * 100.0; // Convert to temperature
// Print temperature value to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(1000); // Delay for 1 second
}
Метод 3. Использование датчика температуры I2C (TMP102):
TMP102 — это датчик температуры на базе I2C, обеспечивающий высокую точность и разрешение. Вот пример фрагмента кода для считывания данных о температуре с датчика TMP102:
#include <Wire.h>
#define TMP102_ADDR 0x48
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
// Request temperature data from TMP102 sensor
Wire.beginTransmission(TMP102_ADDR);
Wire.write(0x00); // Register address for temperature
Wire.endTransmission();
// Read temperature data (2 bytes) from TMP102 sensor
Wire.requestFrom(TMP102_ADDR, 2);
int16_t rawTemperature = (Wire.read() << 8) | Wire.read();
// Convert raw data to temperature in Celsius
float temperature = rawTemperature * 0.0625;
// Print temperature value to the serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
delay(1000); // Delay for 1 second
}
В этой статье мы рассмотрели три популярных метода взаимодействия датчиков температуры с платами Arduino. Мы предоставили примеры кода для каждого метода, что позволяет вам легко интегрировать возможности измерения температуры в ваши проекты Arduino. Независимо от того, выберете ли вы цифровой датчик температуры, например DS18B20, аналоговый датчик, например LM35, или датчик I2C, например TMP102, платформа Arduino предлагает невероятную гибкость для мониторинга и контроля температуры.