Как подключить датчик температуры и влажности DHT11 к Arduino UNO?

Самые частые измеряемые параметры в промышленности и быту — это температура и влажность. Эти значения очень важны в сушке древесины, выпечке кондитерских изделий, в холодильных камерах. В быту измеряют в теплицах и в контурах отопления и горячего водоснабжения. Датчик DHT11 Ардуино прекрасно справляется со своими задачами и определяет более-менее точно температуру и влажность.
Из этой статьи вы узнаете:
Датчик DHT11
Подключение датчика DHT11
Описание кода программы
Приветствую Вас! За клавиатурой Гридин Семён и в этом посте я покажу вам, как подключается датчик температуры и влажности DHT11, продемонстрирую работу кода и библиотеки.
Датчик DHT11
DHT11 — это маленький сенсор в небольшом пластиковом корпусе. На выходе сенсора находится цифровой сигнал, причем сразу два параметра и температура и влажность. Смысл общения с контроллером Ардуино заключается в следующем:
- Микроконтроллер запрашивает показания и меняет сигнал с 0 на 1.
- Датчик видит запрос, и отвечает ему, меняя битовый сигнал с 0 на 1.
- Когда они договорились между собой, датчик выдаёт ему пакет данных в размере 5 байт(40 бит), при чем в двух первых байтах температура, в третьем и четвертом влажность. Пятый байт — контрольная сумма для исключения ошибок измерения.
Характеристики сенсора температуры и влажности DHT11
- Определение влажности в диапазоне 20-80%
- Определение температуры от 0°C до +50°C
- Частота опроса 1 раз в секунду
Недостаток сенсора в том, что он не обладает высокой точностью и быстродействием. Большой плюс — это цена. Ну, я думаю, вы и без меня это знаете)).
В составе сенсора находится ёмкостной датчик для измерения влажности и термистор для измерения температуры. Все показания снимает чип АЦП и выдает цифровой сигнал.
Промышленные датчики обычно выдают аналоговый сигнал на 4-20 мА или 0-10 В. Это такие сенсоры которые измеряют два параметра в паре. Например продукция компании ОВЕН ПВТ10:
Напишите в комментариях, какие вы применяете в своих проектах? Очень интересно ваше мнение…
В продаже вы можете встретить и вторую модификацию Ардуиновского сенсора — DHT22. Скажу, что диапазон измерения значительно больше, чем у старой версии.
- определение влажности в диапазоне 0-100%
- определение температуры от -40°C до +125°C
- частота опроса 1 раз в 2 секунды
Подключение датчика DHT11
Датчики зачастую изготавливают в виде готовых шильдов. На выходе он имеет 3 пина:
- Питание 5 В
- Сигнал (S)
- Земля GND
Сопротивление в 10 кОм ставить не нужно, так как оно уже впаяно в плату. Схема подключений датчика и Ардуино UNO.
Описание кода программы
Для работы Arduino UNO с нашим датчиком требуется подключение специальной библиотеки. Она называется DHT.h. Скачать можете вот по этой ссылке.
А теперь рассмотрим с вами скетч программы для работы с сенсором.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include "DHT.h" #define DHTPIN 2 // номер пина, к которому подсоединен датчик // Раскомментируйте в соответствии с используемым датчиком // Инициируем датчик //DHT dht(DHTPIN, DHT22); DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); } void loop() { // Задержка 2 секунды между измерениями delay(1000); //Считываем влажность float h = dht.readHumidity(); // Считываем температуру float t = dht.readTemperature(); // Проверка удачно прошло ли считывание. if (isnan(h) || isnan(t)) { Serial.println("Не удается считать показания"); } else { Serial.print ("Humidity: "); Serial.print (h); Serial.print ("%\t"); Serial.print ("Temperature: "); Serial.print (t); Serial.println (" *C"); } } |
Загрузите скетч в контроллер и проверьте сенсор при помощи сервис — монитор.
Вот что у меня получилось:
Мониторинг порта в Arduino IDE:
В программе можно включить один интересный инструмент для просмотра графики. Его можно включить так Инструменты — Плоттер по последовательному соединению. Не знаю, у меня он отображает только температуру. Если кто знает, как можно задействовать несколько графиков, поделитесь в комментариях. Вот такая картинка получилась:
Если кому-то не совсем понятно, есть шикарный видеоурок от ребят.
На этом я заканчиваю свой пост. В следующей статье я напишу о корейском таймере AT8N. Пишите комментарии, задавайте вопросы, подписывайтесь!
Успехов вам!!!
С уважением, Гридин Семён.
Спасибо за ценную информацию, жду ваших новых статей, Семен
Всегда пожалуйста, Наталья
Arduino: 1.8.5 (Mac OS X), Плата:"Arduino/Genuino Uno"
In file included from /Users/snfamily/Documents/Arduino/libraries/DHT-sensor/DHT_U.cpp:22:0:
/Users/snfamily/Documents/Arduino/libraries/DHT-sensor/DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Подскажите в чем проблема, что я делаю не так?
Это ошибка в библиотеке. Попробуйте установить какую-нибудь другую, у меня была подобная проблема, долго с ней возился. В итоге скачал где-то более удачную бибку.
Спасибо, много чего перепробовал, но ничего не помогало. Скачал самую первую версию библиотеку dht 1.0.0 и все заработало. Спасибо
Всегда пожалуйста, рад был помочь.
Повторил на НАНО, прицепил экранчик, калибрую в библиотеке…работает. Спасибо
А что за экран ты прицепил??
Подскажите где скачать библиотеку, не могу найти нормальную, выдают ошибку:
«No such file or directory»
Все корректные библиотеки на ГитХабе находятся.
Спасибо.
А нет, установил с гитхаба, но точно такая же проблема
Arduino: 1.8.5 (Windows Store 1.8.10.0) (Windows 10), Плата:"Arduino/Genuino Uno"
In file included from C:\Users\admin\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:
C:\Users\admin\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Установи дополнительно библиотеку Adafruit_Sensor.h и будет тебе счастье
Я уже писал выше, надо пробовать библиотеку с разных источников, и пробовать по разному её устанавливать. Была у меня подобная проблема, я смог третью по счёту установить.
Понятный материал, легко на практике. Спасибо!
Всегда пожалуйста!
Спасибо за статью! Очень полезна для чайников, таких как я!)
Пожалуйста, вы меня извините, вы занимаетесь электроникой?