Начало работы с датчиком DHT11 и Arduino: руководство для начинающих по мониторингу температуры и влажности

Если вы новичок в 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. Удачи в экспериментах и ​​создании интересных проектов!