Датчик температуры и влажности DHT11. Датчики. Ардуино

Ардуино DHT11

Привет! Сегодня рассмотрим новый датчик и подключим его к Ардуино. На очереди у нас датчик температуры и влажности DHT11.

Ардуино и датчик температуры и влажности DHT11
Ардуино и датчик температуры и влажности DHT11

Рассмотрим схему подключения датчика DHT11 к Ардуино и простой скетч. Выведем данные от датчика в монитор последовательного порта.

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

Последовательный порт. Урок 5. Ардуино

Для того, чтобы выполнить этот урок нам понадобиться.

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • Резистор номиналом 220 Ом
  • Датчик DHT11
  • Кабель USB

Характеристики датчика температуры DHT11

  • Питание: DC 3,5 – 5,5 В
  • Ток питания
  • в режиме измерения 0.3mA
  • в режиме ожидания 60μA
  • определение влажности 20–80 % с точностью 5 %
  • определение температуры 0–50 °С с точностью 2 %
  • частота опроса не более 1 Гц (не более одного раза в 1 сек.)
  • размеры 15,5´12´5,5 мм

Схема подключения датчика

Принципиальная схема подключения DHT11
Принципиальная схема подключения DHT11

Программа

Мы хотим просто получить от датчика значение температуры, влажности и вывести их в монитор последовательного порта. Так что соберем схему и настроим вывод данных с порта 2 в сом порт.

Используем специальную библиотеку DHT.h для этого датчика. Не забудьте установить ее через менеджер библиотек.

Подключим библиотеку и создадим экземпляр класса. В функции setup() запустим порт и датчик.

#include "DHT.h"
DHT dht(2, DHT11);
void setup() {
   Serial.begin(9600);
   dht.begin();
}

Далее проверяем температуру и влажность каждые 0.2 секунды и если параметры определены, выводим данные в монитор порта.

А если нет, то выводим сообщение об ошибке. Это довольно просто.

void loop() {
      delay(200);
      float h = dht.readHumidity(); //Измеряем влажность
      float t = dht.readTemperature(); //Измеряем температуру
      if (isnan(h) || isnan(t)) {
        Serial.println("Ошибка");
        return;
      }
      Serial.print("Влажность: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Температура: ");
      Serial.print(t);
      Serial.println(" C ");
}

В обычных условиях датчик показывает влажность 30% и температуру 25.1 градус.

Показания влажности и температуры в комнате
Показания влажности и температуры в комнате

Но если поставить рядом с датчиком кружку с горячим кофе, то показания влажности сразу скакнули к 95% а температура начала постепенно увеличиваться.

Показания влажности и температуры рядом с горячим кофе
Показания влажности и температуры рядом с горячим кофе

Полный текст программы

#include "DHT.h"
DHT dht(2, DHT11);
void setup() {
      Serial.begin(9600);
      dht.begin();
}
void loop() {
      delay(200);
      float h = dht.readHumidity(); //Измеряем влажность
      float t = dht.readTemperature(); //Измеряем температуру
      if (isnan(h) || isnan(t)) {
        Serial.println("Ошибка");
        return;
      }
      Serial.print("Влажность: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Температура: ");
      Serial.print(t);
      Serial.println(" C ");
}

Заключение

Сегодня мы рассмотрели новый датчик для платформы Ардуино. Датчик влажности и температуры DHT11. И использовали библиотеку производителя для обработки данных от датчика.

Добавить комментарий

Ваш адрес email не будет опубликован.