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

В данной статье я хотел бы рассказать о недорогих цифровых датчиках температуры и влажности DHT11 и DHT22.
Датчики температуры и влажности DHT11 и DHT22
Данные датчики не отличаются высоким быстродействием и точностью, однако могут найти свое применение в радиолюбительских проектах из-за своей невысокой стоимости. Датчик DHT состоит из емкостного датчика влажности и термистора. Также, датчик содержит в себе простенький АЦП для преобразования аналоговых значений влажности и температуры.

Отличия DHT11 и DHT22
По цоколевке данные датчики идентичны, однако немного различаются характеристиками.
DHT11:
  • Очень низкая стоимость
  • Питание и I/O 3-5 В
  • Определение влажности 20-80% с 5% точностью
  • Определение температуры 0-50 град. с 2% точностью
  • Частота опроса не более 1 Гц (не более раза в 1 сек.)
  • Размеры 15.5мм x 12мм x 5.5мм
  • 4 вывода с расстоянием между ножками 0.1"
DHT22:
  • Низкая стоимость
  • Питание и I/O 3-5 В
  • Определение влажности 0-100% с 2-5% точностью
  • Определение температуры -40 — 125 град. с точностью ±0.5 град.
  • Частота опроса не более 0.5 Гц (не более раза в 2 сек.)
  • Размеры 15.1мм x 25мм x 7.7мм
  • 4 вывода с расстоянием между ножками 0.1"

Как видно, сенсор DHT22 имеет более лучшие характеристики. Однако оба датчика медлительны и вы не сможете считывать с них информацию чаще, чем раз в 1 или 2 сек.

Подключение
Датчик DHT на макетной плате
Датчики имеют стандартные выводы и поэтому легко становятся на макетную плату.
DHT имеет 4 вывода:
  1. Vcc (3-5V питание)
  2. Data out — Вывод данных
  3. Не используется
  4. Общий
При подключении к МК, вы можете между выводами Vcc и Data разместить подтягивающий pull-up резистор номиналом 10 кОм. Плата Arduino имеет встроенные pull-up, однако они очень слабенькие — порядка 100 кОм.

Рассмотрим подключение датчика к популярной сейчас плате Arduino. На рисунке ниже, показано подключение датчика к Arduino, выход с датчика подается на 2 pin платы, если нужно, в скетче поменяйте на какой-либо другой.
Подключение DHT к Arduino

Скачать библиотеку для работы датчиков DHT с Arduino можно здесь. Там же и пример

Скетч Arduino

Если вы будете использовать датчик DHT11, то закомментируйте данную строку:
//#define DHTTYPE DHT22   // DHT 22  (AM2302)

и раскоментируйте эту:
#define DHTTYPE DHT11   // DHT 11 

Загрузите скетч в контроллер и проверьте правильность работы при помощи Serial Monitor:
Вывод данных на Serial Monitor от датчиков

Даташиты: DHT11, DHT22
Источник

12 комментариев

avatar
Здравствуйте!

Я бы хотела купить на проду, на тест датчик температуры DHT22 -3-4 штуки.
Мы бы его протестировали, изучили бы.
В случае, если он подойдет, мы бы заказали большую партию.
Сколько она стоит?
Как можно ее приобрести?
с Кем мне контактировать?
avatar
Ну тут думаю их никто не продает, статья про его применение, а купить на EBAY можно
avatar
Если партия действительно большая, то есть смысл связаться с производителем. Возможно, они вышлют вам несколько тестовых образцов.
www.dfrobot.com/index.php?route=information/contact
avatar
Могу посодействовать в приобретении данных датчиков.
Если кому нужно — пишите мне на почту: clever-corvax@ya.ru
avatar
Вопрос, можно ли этот датчик использовать как датчик затопления и контроля температуры затапливающей воды?
Идея автоматом перекрывать подачу горячей/холодной воды при затоплении помещения, но не понятно какой датчик использовать :(
avatar
может такое лучше Защита от протечек воды
avatar
хочу следить за температурой и влажностю воздуха в 3х секторах. Как подключить 3 датчика дхт11 или дхт22 одновременно? и что с кодом?
avatar
DHT11 и DHT22 не поддерживают 1-ware сеть. придется к каждому датчику прикручивать микроконтроллер. Можно использовать датчики 18B20 от фирмы Dallas хороши тем, что подключаются по шине 1-Wire и занимая всего один вывод микроконтроллера, можно обработать большое количество устройств.
avatar
Подключить датчики на 3 разных пина и слегка доработать код.
avatar
а на каком расстоянии от контроллера можно их так прицепить на цифровые пины
avatar
Я думаю, ограничений много: сечение провода, внешние помехи, стабильность питания. Надо опытным путём искать предельную длину. Осциллографом проверить идеальные условия, и далее сравнивать с тем куда Ты хочешь его вынести, и пытаться довести сигнал до нормы.
avatar
перепутал провода, подал 5В на вход — придется еще один датчик заказывать…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.