Датчики температури та вологості DHT11 та DHT22 та Arduino

У статті розглянуто основи роботи з недорогими датчиками температури та вологості серії DHT.

Ці сенсори прості та повільні, але при цьому чудово підходять для хобі-проектів на Arduino. Датчики DHT складаються з двох основних частин: ємнісний датчик вологості та термістор. Також у корпусі встановлений простенький чіп для перетворення аналогового сигналу на цифровий. Зчитувати цифровий сигнал на виході досить легко, можна використовувати будь-який контролер, не обов'язково Arduino.

Технічні характеристики DHT11 та DHT22

Існують дві версії сенсорів DHT. Виглядають вони майже однаково. Розпинування теж однакова. Основні відмінності – у технічних характеристиках:

  • Дуже дешевий.
  • Живлення від 3 до 5В.
  • Максимально споживаний струм - 2.5мА під час перетворення (при запиті даних).
  • Розрахований на вимірювання рівня вологості в діапазоні від 20 до 80%. При цьому точність вимірів знаходиться в діапазоні 5%.
  • Вимірює температуру в діапазоні від 0 до 50 градусів із точністю плюс-мінус 2%.
  • Частота вимірів трохи більше 1 Гц (один вимір на секунду).
  • Розмір корпусу: 15.5мм x 12мм x 5.5мм.
  • 4 конектори. Відстань між сусідніми – 0.1”.

  • Дешевий.
  • Живлення від 3 до 5В.
  • Максимально споживаний струм - 2.5мА під час перетворення (при запиті даних).
  • Розрахований на вимірювання рівня вологості в діапазоні від 0 до 100%. У цьому точність вимірів перебуває у діапазоні 2%-5%.
  • Вимірює температуру в діапазоні від -40 до 125 градусів із точністю плюс-мінус 0.5 градусів за Цельсієм.
  • Частота вимірів до 0.5 Гц (один вимір за 2 секунди).
  • Розмір корпусу: 15.1 мм х 25 мм х 7.7 мм.
  • 4 конектори. Відстань між сусідніми – 0.1”.

Як бачите, DHT22 точніший і має більший діапазон вимірюваних значень. Обидва датчики мають один цифровий вихід. Запити до них можна надсилати не частіше ніж один за секунду або дві.

датчики

Підключення датчиків DHT до Arduino

Посилання для замовлення електронного обладнання, яке використовувалося на прикладі нижче з Китаю

Підключаються датчики легко. Так як у них досить довгі конектори 0.1", можна встановлювати їх безпосередньо на макетну або монтажну платню (див. на малюнку нижче).

датчики

Безпосереднє підключення Arduino теж просте. На сенсорі 4 конектори:

  • Харчування (VCC) – від 3 до 5 Ст.
  • Виведення даних.
  • Не підключається.
  • Земля.

Конектор 3 просто ігноруйте, він не підключається. Бажано підключити підтягуючий резистор на 10 ком між живленням і сигналом. На Arduino є вбудовані резистори, але їх номінал 100кОм нам не підійде.

На малюнку нижче наведено схему підключення DHT11 до Arduino. Підключіть сигнал із датчика до піна 2, щоб схема відповідала прикладу скетчу, який наведено нижче. Цей пін можна змінити з відповідними правками коду.

датчики

Зчитування даних із датчиків DHTxx

Для перевірки скетчу ми використовуємо Arduino. Можна використовувати будь-який інший мікроконтролер, який підтримує таймінг у мікросекундах.

Для початку завантажте бібліотеку для роботи з DHT датчиками тут: Github. Щоб завантажити, натисніть кнопку DOWNLOADS у верхньому правому кутку.

Перейменуйте папку DHT і переконайтеся, що вона має файл dht.cpp та інші. Після цього перемістіть папку DHT в папку arduinosketchfolder/libraries/ . Можливо, вам доведеться створити підпапку для бібліотек, якщо ви вперше інтегруєтебібліотеку. Перезавантажте Arduino IDE.

Тепер завантажте скетч: Examples->DHT->DHTtester. Виглядає програма приблизно так:

температури

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

#define DHTTYPE DHT11 // DHT 11

Ці налаштування допомагають знімати правильні значення саме з моделі датчика. У вікні серійного монітора це виглядатиме приблизно так:

dht11

Ви повинні побачити показання температури та вологості. Подихавши на датчик, можна відстежити зміни показань. У цьому випадку рівень вологості має збільшитись.