Если вы новичок в Arduino и хотите узнать, как контролировать температуру и влажность с помощью датчика DHT11, вы попали по адресу! В этой статье мы познакомим вас с несколькими способами взаимодействия датчика DHT11 с Arduino, попутно предоставляя примеры кода и пояснения. Итак, давайте углубимся и начнем!
Метод 1: использование библиотеки DHT
Самый простой способ считывания данных с датчика DHT11 — использование библиотеки DHT, которая обеспечивает простой интерфейс для взаимодействия с датчиками серии DHT. Вот пример фрагмента кода, который поможет вам начать:
#include <DHT.h>
#define DHTPIN 2 // The pin to which the DHT11 sensor is connected
#define DHTTYPE DHT11 // DHT11 sensor type
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %");
delay(2000);
}
Метод 2: использование прямого доступа к GPIO
Если вы предпочитаете более практический подход, вы можете напрямую получить доступ к контактам GPIO Arduino для считывания данных с датчика DHT11. Вот пример фрагмента кода, демонстрирующий этот метод:
#define DHTPIN 2 // The pin to which the DHT11 sensor is connected
void setup() {
Serial.begin(9600);
}
void loop() {
int data[5] = {0, 0, 0, 0, 0};
pinMode(DHTPIN, OUTPUT);
digitalWrite(DHTPIN, LOW);
delay(18);
digitalWrite(DHTPIN, HIGH);
delayMicroseconds(40);
pinMode(DHTPIN, INPUT);
for (int i = 0; i < 5; i++) {
data[i] = pulseIn(DHTPIN, HIGH, 1000);
}
float humidity = (float)data[0] * 0.1;
float temperature = (float)data[2] * 0.1;
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %");
delay(2000);
}
Метод 3: использование сторонних библиотек
Помимо библиотеки DHT существует несколько сторонних библиотек, которые предлагают дополнительные функции и возможности для работы с датчиком DHT11. Одной из таких библиотек является библиотека Adafruit DHT, которая обеспечивает повышенную стабильность и точность. Вот пример фрагмента кода с использованием библиотеки Adafruit DHT:
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2 // The pin to which the DHT11 sensor is connected
#define DHTTYPE DHT11 // DHT11 sensor type
DHT_Unified dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
sensors_event_t event;
dht.temperature().getEvent(&event);
float temperature = event.temperature;
dht.humidity().getEvent(&event);
float humidity = event.relative_humidity;
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %");
delay(2000);
}
В этой статье мы рассмотрели три различных метода взаимодействия датчика DHT11 с Arduino. Мы рассмотрели использование библиотеки DHT, прямой доступ к GPIO и использование сторонних библиотек, таких как Adafruit DHT. У каждого метода есть свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим потребностям. Теперь вы можете начать контролировать температуру и влажность с помощью Arduino и датчика DHT11. Удачи в экспериментах и создании интересных проектов!