В этой статье мы рассмотрим довольно популярные датчики влажности DHT11 и DHT22. Благодаря своей дешевизне и возможности подключения к любой из плат Arduino, они завоевали огромную популярность.
Кроме определения показателей влажности воздуха, эти датчики еще умеют измерять температуру воздуха.
В наших примерах мы будем использовать оба датчика влажности воздуха DHT11 и DHT22, а также печатную плату Arduino UNO, подключенную к ПК под управлением Windows 7. Технические характеристики DHT11 описаны ниже:
Технические характеристики DHT22:
Исходя из технических характеристик сенсоров DHT11 и DHT22, последний является лучшим выбором для снятия показателей температуры и влажности. Кроме датчиков влажности DHT11 и DHT22, мы рассмотрим датчик влажности почвы, который состоит из контактного щупа YL-69 и датчика YL-38. Характеристики датчика YL-38 описаны ниже:
Перед тем как подключать рассматриваемые компоненты, нам нужно установить на наш ПК Arduino IDE. Загрузить IDE можно на официальном сайте разработчика плат Ардуино. На данный момент последней Arduino IDE является версия под номером 1.6.10. Процесс установки Arduino IDE очень прост и сводится к нажатиям кнопки «Next >» и «Install», поэтому с ним справится любой пользователь. После установки Arduino IDE на рабочем столе должен появиться ярлык с именем «Arduino».
Теперь рассмотрим схемы подключения рассматриваемых компонентов к Arduino UNO. Ниже изображена схема подключения датчика DHT22.
Для сенсора DHT11 схема подключения выглядит аналогично.
Обратите внимание, в состав схемы входит резистор на 10 кОм. Если вы приобретете датчик DHT11 или DHT22 в виде готового модуля, то резистор использовать не надо, так как он уже впаян.
Теперь подключим нашу схему по USB-кабелю к компьютеру. Прежде чем отрывать Arduino IDE, мы скачаем библиотеку «DHT.h». Библиотеку можно загрузить по этой ссылке https://github.com/amperka/dht. После загрузки извлеките содержимое папок «lib/dht» в директорию, где хранятся все библиотеки «C:\Program Files\Arduino\libraries». После этого запустим Arduino IDE и наберем в скетче код, изображенный ниже.
Этот код написан для использования сенсора DHT22. Если вам нужно использовать датчик DHT11, то исправьте в третьей строке «DHT22» на «DHT11». Теперь загрузим наш код в Arduino UNO и откроем «Монитор порта».
В мониторе видно значение влажности в процентном соотношении и показатели температуры.
В этой главе мы опишем пример подключения датчика влажности почвы YL-38 к Arduino UNO. Первым делом нам нужно собрать схему, которая изображена ниже.
После этого запустим Arduino IDE и наберем в скетче код, который можно загрузить по этой ссылке: https://cloud.mail.ru/public/ghdN/NKUsNDxPL
После набора кода загрузим его в наш Arduino UNO. Теперь откроем «Монитор порта» и увидим сообщение «Sensor is not in the Soil or DISCONNECTED», которое означает, что сенсор не подключен к почве.
Если мы подключим контактный щуп датчика к сухой почве, то мы увидим такое сообщение «Soil is DRY».
Если контактный щуп сенсора будет находиться во влажной почве, то мы увидим сообщение «Soil is HUMID» в «Мониторе порта».
Если контактный щуп сенсора будет находиться в воде, то мы увидим сообщение «Sensor in WATER» в «Мониторе порта».
Принцип работы этого скетча основан на условных операторах. Например, рассмотрим часть кода, когда в «Мониторе порта» выдается сообщение «Sensor is not in the Soil or DISCONNECTED»:
if(SensorValue >= 1000) {
Serial.println("Sensor is not in the Soil or DISCONNECTED");
}
В этом коде, если значение переменной «SensorValue» меньше 1000, то с помощью команды «Serial.println» мы получаем заданное сообщение на «Монитор порта». На таком же принципе основан вывод остальных сообщений.
Датчики DHT11 и DHT22 редко используют для одиночного подключения к плате Arduino. Наиболее часто эти датчики можно встретить в составе погодных станций. Например, статью по сборке такой станции можно найти на официальном сайте https://create.arduino.cc/projecthub/GeekRex/10-portable-arduino-weather-station-aws-ccf41f. В этой статье пользователю объясняют, как собрать погодную станцию из таких компонентов:
Сама погодная станция собрана по такой схеме.
Принцип действия этой станции основан на снятии показаний с датчиков и их выводе на дисплей Adafruit Standard LCD-16×2 White on Blue.
Датчик влажности почвы также можно использовать в составе готовых автоматизированных систем, построенных на Ардуино. Например, на Github можно найти готовый проект под названием «irrigator». Этот проект позволяет создать на Arduino автополивщик растений.
Используя такую систему, можно создать универсальный автополивщик растений, который сэкономит время и деньги.
В этом материале мы рассмотрели простейшие способы подключения датчиков влажности воздуха и почвы. Используя разнообразные методы подключения различных компонентов к Arduino, вы сможете довольно быстро освоить сборку сложных систем на Ардуино. Поэтому надеемся, что наш материал хоть и немного, но поможет вам ближе подойти к созданию своего умного дома.