Как подключить датчик влажности ардуино
Как подключить DHT11 и DHT22 к Ардуино
Расскажем, как подключить датчик температуры и влажности к Ардуино, как получить данные с датчика на мониторе порта. На этом занятии мы познакомимся с цифровым датчиком температуры и влажности DTH11 с трех пиновым разъемом стандарта 2.54 мм. Рассмотрим устройство и назначение датчиков влажности и температуры. Научимся добавлять библиотеки для датчиков и плат расширений Arduino Nano.
Устройство DTH11 Ардуино: распиновка, datasheet
На занятии мы будем использовать датчик DHT11 или DHT22, смонтированный на плате. DHT11 — это цифровой датчик, состоящий из термистора и емкостного датчика влажности. Наряду с невысокой стоимостью DHT11 имеет следующие характеристики: питание осуществляется от 3,5-5V, определение температуры от 0 до 50 градусов с точностью 2 град, определение влажности от 20% до 95% с 5% точностью.
Arduino dht11 распиновка (datasheet на русском)
Модуль DHT11 оборудован трех пиновым разъемом и подключается по схеме:
G — Подключается к выводу GND
V — Подключается к выводу +5V
S — Подключается к цифровому выводу ( Pin2 )
Термистор — это термический резистор, сопротивление которого изменяется с температурой, т.е. увеличение температуры приводит к падению его сопротивления. По сути термистор — это термометр сопротивления, изготовленный на основе смешанных оксидов переходных металлов. Относится к измерительной технике и может быть использован для автоматического измерения температуры в различных средах.
Емкостной датчик влажности — это конденсатор с переменной емкостью, который содержит токопроводящие обкладки из медной фольги на текстолите. Этот конденсатор заключен в герметичный чехол, поверх которого расположен влагопоглощающий слой. При попадании частиц воды на этот слой, меняется его диэлектрическая проницаемость, что приводит к изменению емкости конденсатора.
Как подключить DHT11 к Ардуино Уно
Для этого занятия нам потребуется:
На этом занятии мы приведем для примера два скетча. Первый скетч будет отсылать данные с модуля DHT11 на последовательный монитор порта компьютера. Во втором скетче мы будем использовать вывод данных на жк дисплей — LCD 1602 модуль. LCD модуль можно будет использовать в дальнейшем в любом автономном устройстве, например, при конструировании «Домашней метеостанции» или «Умной теплицы».
Схема подключения модуля DHT11 к плате Ардуино Уно
Необходимо установить библиотеку для работы с датчиком DHT11. Для этого необходимо скачать архив по ссылке, извлечь папку «DHT11» и переместить ее в раздел «C:\Program Files\Arduino\libraries» на своем компьютере. При использовании датчика DHT11, необходимо подключать библиотеку в скетче. Загрузите следующую программу после подключения датчика температуры воздуха DHT11 к Ардуино.
Скетч. Ардуино датчик температуры и влажности DHT11
Пояснения к коду:
Скетч. Подключение к Ардуино DHT11 и вывод на LCD 1602 i2c
Пояснения к коду:
Как подключить DHT22 к Ардуино Уно
Обратите внимание, что распиновка модулей у разных производителей может отличаться. При неправильном подключении питания, сенсор может выйти из строя. Дисплей подключается к шине i2c, расположенной на пинах SDA (A4) и SCL (A5) платы Ардуино Уно и Нано. При работе с платой Ардуино Мега подключение дисплея производится к интерфейсу i2c на пинах SDA (20) и SCL (21).
Схема подключения DHT22 и LCD 1602 к Ардуино
Схема подключения DHT22 к плате ничем не отличается от предыдущего примера, а сама программа отличается только одной строчкой, где мы указываем тип датчика — DHT22, вместо DHT11. После того, как вы собрали схему с дисплеем и DHT22, как показано на картинке выше, — загрузите следующий пример простой программы с универсальной библиотекой DHT.h, которая подходит для этих двух модулей.
Скетч. Подключение к Ардуино DHT22 и вывод на LCD 1602 i2c
Пояснения к коду:
Заключение. Мы рассмотрели в этом обзоре, как подключить DHT11 и DHT22 к Arduino. Представили несколько примеров программ для вывода информации с цифрового датчика на аппаратный монитор порта Arduino IDE и дисплей 1602. С датчиком DHT11 существует множество проектов метеостанций на Ардуино, которые вы сможете сделать самостоятельно, внимательно изучив информацию на этой странице.
Датчик температуры и влажности Ардуино DHT11
Ардуино датчик влажности и температуры DHT11 является одним из самых популярных для проектов мониторинга погоды.
О датчике
DHT11 – датчик влажности и температуры, который генерирует откалиброванный цифровой выход и может быть интерфейсом для любого микроконтроллера, такого как Arduino и Raspberry Pi, и получать мгновенные результаты.
DHT11 – это недорогой прибор, который обеспечивает высокую надежность и долговременную стабильность.
В этом проекте построена небольшая схема для интерфейса с датчиком температуры на Arduino. Одним из основных применений подключения данного сенсора к Arduino является мониторинг погоды.
Виды датчиков
Сегодня производитель Arduino проявил большую силу в сообществе разработчиков электронных приложений и распространил различные модули, которые позволяют проектам Arduino датчиков быть более гибкими.
Рассмотрим основные виды приборов, построенных на рассматриваемой платформе:
Распиновка и принципиальная схема подключения
Принципиальная схема при подключении к микроконтроллеру может выглядеть таким образом:
Устройство датчиков и схема подключения к Ардуино
DHT11 входит в состав приборов отслеживания влажности DHTXX. Другим датчиком в этой серии является DHT22. В результате они будут измерять как влажность, так и температуру. Хотя DHT11 дешевы и медленны, они очень популярны среди любителей и начинающих.
DHT11 состоит из 3 основных компонентов. Датчик влажности резистивного типа, термистор NTC и 8-разрядный микроконтроллер, который преобразует аналоговые сигналы и отправляет одиночный цифровой сигнал.
Схема подключения DHT11 к Ардуино
Этот цифровой сигнал может быть прочитан любым микроконтроллером или микропроцессором для дальнейшего анализа.
DHT11 состоит из 4 контактов: VCC, Data Out, Not Connected (NC) и GND. Диапазон напряжения для вывода VCC составляет от 3,5 до 5,5 В. Питание 5 В будет достаточно. Данные на выводе Data Out являются последовательными цифровыми данными.
DHT11 может измерять значение влажности в диапазоне 20-90 % относительной влажности (RH) и температуру в диапазоне 0-50 0 С. Период выборки составляет 1 секунду.
Все DHT11 точно калибруются в лаборатории, а результаты хранятся в памяти. Между любыми микроконтроллерами, такими как Arduino и DHT11 Sensor, может быть установлена однопроводная связь.
Кроме того, длина кабеля может достигать 20 метров. Данные состоят из целочисленных и десятичных частей, как для относительной влажности (RH), так и для температуры.
Данные от DHT11 и Ардуино датчиков движения состоят из 40 бит, и формат выглядит следующим образом:
8 бит данных для интегрального значения RH, 8 бит данных для десятичного значения RH, 8 бит данных для интегральных значений, 8 бит данных для интегрального значения температуры и 8 бит данных для контрольной суммы.
Скетч для работы с датчиком
Давайте посмотрим теперь на код благодаря которому сенсор будет взаимодействовать с нашей платой (схема подключения выше):
Код получился таким небольшим, т.к. мы в самом начале задействовали библиотеку для сенсора. Скачать библиотеку можно по ссылке или на этой странице в разделе «Библиотеки».
Arduino DHT11 – относительно дешевый прибор для измерения температуры и влажности. DHT22 похож на DHT11 и имеет большую точность. Однако эта библиотека не подходит для DHT21 или DHT22, поскольку они имеют другой формат данных.
Проверьте DHTlib на поддержку этих датчиков. Эта библиотека протестирована на MEGA2560 и подтверждена работой на Arduino 2009. Niesteszeck создал библиотеку DHT11, управляемую прерываниями. Энди Дальтон сделал модифицированную версию. Разница в том, что DATAPIN определен в конструкторе, в результате чего полагается один выделенный объект на приспособление.
В итоге мы должны на выходе увидеть вот такие данные:
Получение данных
Рассмотрим данные, полученные от DHT11.
00100101 00000000 00011001 00000000 00111110.
Эти данные можно разделить на основе указанной выше структуры следующим образом:
Чтобы проверить правильность полученных данных, нам нужно выполнить небольшой расчет. Добавьте все значения интегральных и десятичных значений RH и температуры и проверьте, равна ли сумма величине контрольной суммы, т. е. последним 8-битным данным:
00100101 + 00000000 + 00011001 + 00000000 = 00111110
Это значение совпадает с контрольной суммой и, следовательно, полученные данные действительны. Теперь, чтобы получить значения RH и температуры, просто преобразуйте двоичные данные в десятичные данные:
Датчик влажности и температуры DHT11 позволяет легко добавлять данные в ваши проекты электроники DIY. Он идеально подходит для удаленных метеорологических станций, домашних систем управления окружающей средой и систем мониторинга фермы или сада.
Дополнительные сенсоры
Кроме сенсоров, которые мы рассмотрели выше можно присмотреться и к другим датчикам для Ардуино:
В целом, для каждого радиолюбителя есть огромный выбор для создания устройств разного назначения. О многих мы писали ранее, но о многих нам еще предстоит поговорить.
Ардуино: датчик влажности и температуры DHT11
Составной датчик DHT11 включает в себя сразу два полезных измерительных прибора — термометр и гигрометр. Первый, очевидно, измеряет температуру, а второй — влажность воздуха. Обычно, датчик можно приобрести в таком вот пластиковом корпусе:
Для удобства использования, мы в RobotClass сделали модуль в форм-факторе 23×23мм, на котором датчик DHT11 уже имеет необходимый для правильной работы резистор подтяжки и штыревой трёхконтактный разъём.
Характеристики датчика:
Датчик DHT11 можно использовать для создания простой погодной станции или для контроля влажности в теплице.
Подключение датчика DHT11 к Ардуино
У датчика DHT11 есть четыре вывода, один из которых (№3) не используется.
Как видно на фото, выводы нумеруются слева на право, если смотреть на корпус датчика со стороны решетки и ногами вниз. Подключаем выводы к Ардуино Уно по следующей схеме:
Датчик DHT11 | 1 | 2 | 4 |
Ардуино Уно | +5V | 2 | GND |
Принципиальная схема
Внешний вид макета
Важно отметить, что второй вывод датчика мы подключаем не только ко второй линии GPIO на Ардуино, но еще и к плюсу питания через резистор подтяжки 4,7 кОм. Таким образом, мы, что называется, «подтягиваем» линию данных датчика к плюсу. Это необходимо для правильного функционирования DHT11.
Подключение модуля DHT11 ROC к Ардуино
В случае использования модуля от RobotClass, подключение будет выглядеть следующим образом.
Принципиальная схема
Внешний вид макета
Программа для работы с DHT11
Теперь, когда датчик подключен, приступим к программированию контроллера. Первое, что нам следует сделать — установить в Arduino IDE дополнительную библиотеку. Существует множество библиотек для работы с DHT, но мы выберем вариант с портала Adafruit. Ссылка на библиотеку имеется в конце урока.
Устанавливаем библиотеку и составляем тестовую программу:
В верхней части программы имеется три строки с директивой define, две из которых закомментированы (перед ними стоят два слеша). В зависимости от типа датчика мы можем раскомментировать нужную строку. Сейчас выбран датчик DHT11.
Загружаем программу в Ардуино Уно, открываем монитор последовательного порта (Tools/Serial Monitor) и наблюдаем результаты измерений!
Задания
Заключение
Хотя датчик влажности DHT11 и является самым популярным, он не отличается выдающимися характеристиками. К примеру, его более продвинутый собрат DHT22 имеет больший диапазон измерений влажности и температуры, а также большую точность.
Полезные материалы
Скачать архив с библиотекой для работы с DHT11 можно по следующей ссылке:
Также библиотеку можно установить через менеджер библиотек в Arduino IDE. В поисковой строке менеджера необходимо ввести «DHT sensor library by Adafruit«.
Выводим температуру и влажность помещения на LCD I2C дисплей. Подключение датчика DHT11 к Arduino UNO
Я продолжаю свое увлечение электроникой. Буквально вчера пришла посылка с моим набором для изучения Arduino UNO — конечно же сразу захотелось что-нибудь собрать.
Немного поигравшись с мигающими светодиодами, я решил протестировать остальное содержимое набора. Выбор пал на ЖК-дисплей и датчик температуры и влажности DHT11.
Очень хотелось вывести показания датчика не только на экран монитора, но и на дисплей. Убив несколько часов на поиск и изучение статей по данной теме, я так и не смог заставить все работать нужным образом. Все готовые решения содержали ошибки или недомолвки, либо применялись другие компоненты — дисплей показывал что угодно, но только не температуру и влажность. Поскольку метод «с наскока» не удался, пришлось не просто копировать готовый код, а разбираться в том, как он работает. Но в итоге я все же смог получить нужную программу (ссылка на скачивание в конце статьи) и загрузить ее в микроконтроллер, ура:
Датчик DHT11 очень неточный, поэтому использовать его в качестве источника информации для каких-то серьезных систем я бы не советовал, но для учебных целей он очень даже подходит.
Ниже я подробно расскажу как повторить данную конструкцию (если кому-то захочется) и приведу текст скетча для Arduino IDE.
На картинке приведен вид спереди и сзади. Как можно увидеть, мой экземпляр снабжен интерфейсом I2C (маленькая платка на задней стороне). Данный интерфейс очень упрощает подключение дисплея к Arduino — нужно использовать всего 4 контакта:
GRD — минус питания («земля»)
VCC — питание +5V
SDA — линия данных
SLC — линия синхронизации
Без I2C подключение LCD дисплея осуществляется несколько сложнее.
Датчик DH11 так же имеет 4 контакта, при этом один из них вообще не используется. Мой дачик уже расположен на платке, на которой сразу установлен дополнительный резистор (который требуется для нормальной работы датчика) и выведено 3 ножки:
Левая подписана как S — с нее поступает сигнал, правая — «-», ну а средняя получается «+» на нее подается питание.
Итак, собираем схему:
NB! Перед монтажом схемы и внесением в нее каких-либо изменений обязательно отключайте питание всех элементов, иначе можно их банально сжечь — потом будет жалко.
1) Подключаем датчик:
2) Подключаем LCD дисплей:
Сборка на этом закончена, осталось прошить микроконтроллер.
Вот код скетча:
В данном коде используются библиотеки DHT и LiquidCrystal_I2C, которые не входят в стандартный пакет Arduino IDE. В сети множество разных библиотек с такими же названиями. И несмотря на их схожесть, не со всеми версиями данный код работает. Чтобы вам не тратить свое время и нервы на поиск рабочего варианта, я прикладываю к данной статье архив, в котором содержатся данные библиотеки и сам скетч для Arduino IDE. Библиотеки надо разархивировать и поместить в папку C:\Program Files (x86)\Arduino\libraries после чего перезапустить программу Arduino IDE.
Я думаю, что опытные разработчики найдут к чему придраться в данном коде (например, здесь нет обработчика ошибок), но на данном этапе, для меня главное, что он работает. Если вы будете применять детали схожие с моими, должно заработать и у вас. Конечно, рекомендую не просто скопировать, но и попытаться понять за что отвечает каждая строчка кода (комментарии в коде сильно в этом помогут).
Быстрые результаты в любом деле это не цель, а всего лишь мотивация, которая должна подталкивать вас копать глубже. Помните об этом! =)
Урок 16. Подключение датчика DHT11 к Arduino UNO. Выводим температуру и влажность на LCD 1602 I2C дисплей
В этом уроке мы рассмотрим самый популярный датчик температуры DHT11. Научимся считывать показания датчика и выводить на LCD 1602 I2C дисплей.
Нам понадобится:
Для реализации проекта нам необходимо установить библиотеки:
Схема подключения:
Этом уроке к arduino uno будет подключено два модуля, датчик температуры и влажности DHT11 и символьный дисплей LCD1602 IIC/I2.
1) Датчик DHT11 с помощью которого будем получать данные о температуре и влажности окружающей среды, подключается следующим образом.
Описание подключения DHT11 к Arduino:
DHT11 | Arduino |
---|---|
1 контакт | 5V |
2 контакт | Pin 2 |
3 контакт | Через резистор 10 kOm к 5V |
4 контакт | GND |
2) Теперь подключаем символьный дисплей LCD1602 IIC/I2C к Arduino uno, на который будет выводиться информация о температуре и влажности.
Arduino | LCD1602 IIC/I2C | Цвет проводов на фото |
GND | GND | Черный |
5V | VCC | Красный |
A4 | SDA | Коричневый |
A5 | SCL | Серый Скетч: Не забудьте установить библиотеки указанные в начале урока. Демонстрация работы:
|