Подключение датчика температуры dht11

Работа схемы

Схема устройства представлена на следующем рисунке.

Как можно видеть, соединения на схеме достаточно простые и перечислены в следующих таблицах:

контакт Arduino контакт датчика температуры и влажности DHT11
Vcc 5V
Gnd Gnd
Nc Nc
Pin 7 Out
контакт Arduino контакт DS3231 RTC
5V Vcc
Gnd Gnd
Pin A5 SCL
Pin A4 SDA
контакт Arduino контакт модуля для чтения SD карт
5V Vcc
Gnd Gnd
Pin 12 MISO
Pin 11 MOSI
Pin 13 SCK
CS CS

Вы можете заменить датчик DHT11 в схеме на любой другой аналогичный, например, LM35. Модуль RTC DS3231 подключается к плате Arduino по протоколу I2C (SCL, SDA), а модуль чтения SD карт – по протоколу SPI (MISO, MOSI, SCK, CS). Контакты 4 и 7 платы Arduino подключаются к контактам CS и Out модуля чтения SD карт и датчика DHT11 соответственно, при желании вы их можете сменить на любые другие контакты. Ранее подключение модуля чтения SD карт к плате Arduino мы рассматривали в проекте аудиоплеера на Arduino.

Внутренняя структура микросхемы и памяти, шина 1-Wire

Для понимания принципа работы, вначале стоит ознакомиться с блок-схемой корпуса:

Любая работа с микросхемой производится всегда, начиная с трех процедур: инициализации, команды ROM и отправки функционального кода. После, при необходимости, идет обмен данными между датчиком и контроллером. В случае не соблюдения последовательности, — логическая часть DS18B20 станет в своеобразный «ступор», не реагируя до сброса. Единственным исключением здесь будут команды F0 и EC, первая из которых «Поиск ПЗУ», вторая «Определение тревоги датчика».

Понятие инициализации подразумевает подачу микроконтроллером краткосрочного импульса на шину 1-Wire длительностью 480 мс и ожидание им ответа от датчика в течении 60 мс. Сам сенсор, при своей готовности к работе, отправляет сигнал высокого уровня с длительностью до 240 мс.

Обмен данными в рамках шины 1-Wire производится по 1 биту, когда они передаются в определенные временные интервалы, начиная с младшего. Каждый фиксированный промежуток в 60 мс предназначен для хранения одного состояния, нуля или единицы.

В сущности, процесс работы в рамках 1-Wire всегда одинаков. Выполнив сброс, описанный ранее, и получив ответ о присутствии устройства на линии микроконтроллер должен выбрать, к какому именно датчику на шине обратиться. Для этого используются ROM команды. Полный их список шины 1-Wire:

Команда Действие
F0 Поиск ROM Определение устройств на линии. В текущем виде ответом будет номер каждого из датчиков
33 Чтение ROM Применяется, если на 1-Wire находится только одно устройство, оно будет выбрано по умолчанию
CC Пропуск ROM Отправка последующей команды всем устройствам шины
55 Совпадение ROM Выбор конкретного датчика для ответа. После отсылки этой ROM команды следом должен быть отправлен 64 битный ИД подключенной точки, от которой будут ожидаться последующие ответы.
EC Поиск тревожного сигнала Эта ROM команда вызовет отклик только тех DS18B20, на которых есть состояние тревоги

После отправки ROM команды, идет обмен с конкретным датчиком и посылка функциональных кодов для него. В высоко уровневой части, все эти операции выполняются подключением готовых библиотек в Arduino IDE с кодом, который и будет производить необходимые временные задержки и подачу напряжения на выходах контроллера для шины 1-Wire.

Немного про ИД устройства. Он содержит в себе не только сам уникальный номер корпуса, но и информацию о семействе сенсора и его контрольную сумму.

С передачей данных разобрались. Теперь нужно рассмотреть структуру памяти EEPROM самой микросхемы. Это требуется знать по причине того, что сенсор всегда в ответ на функциональную команду BE отправляет все ее содержимое.

На запись доступны только байты 2–4, которые используются при работе функциональных команд. Значение температур измерителя читается из 0–1, а 5–7 зарезервированы и всегда возвращают 1. В 8 хранится код CRC позволяющий проверить правильность прочтенных байт памяти.

С регистром конфигурации все немного сложнее. Из представляющего его байта используется только 5 и 6 бит, устанавливающий разрядность датчика. При запуске они равны 11, что означает 12 битное представление числа измеренной температуры. Чем оно выше, тем дольше логический сенсор будет преобразовывать его. В следующей таблице представлены значения битов R0(6) и R1(5), соответственно шестого и пятого по очереди в байте конфигурации, а также зависимость разрядности от них:

Регистры Th и Tl используются только с целью задания промежутка значений температуры порога тревоги. Их содержимое, как и конфигурацию можно сохранять в энергонезависимой памяти устройства.

Обзор аппаратного обеспечения

Типовой датчик влажности почвы состоит из двух компонентов.

Зонд

Датчик содержит вилочный зонд с двумя открытыми проводниками, который погружается в почву или в любое другое место, где должно измеряться содержание воды.

Как сказано выше, он действует как переменный резистор, сопротивление которого изменяется в зависимости от влажности почвы.

Рисунок 2 – Зонд датчика влажности почвы

Модуль

Датчик также содержит электронный модуль, который соединяет датчик с Arduino.

В соответствии с сопротивлением датчика модуль выдает выходное напряжение, которое доступно на выводе аналогового выхода (AO).

Этот же сигнал подается на высокоточный компаратор LM393 для его оцифровки, с выхода которого сигнал подается на вывод цифрового выхода (DO).

Рисунок 3 – Регулировка чувствительности датчика влажности почвы

Для регулировки чувствительности цифрового выхода (DO) модуль содержит встроенный потенциометр.

С помощью этого потенциометра вы можете установить пороговое значение; таким образом, когда уровень влажности превысит пороговое значение, модуль выдаст низкий логический уровень, в остальных случаях на цифровой выход будет подаваться высокий логический уровень.

Эта настройка очень полезна, когда вы хотите инициировать действие при достижении определенного порога. Например, когда уровень влажности в почве пересекает пороговое значение, вы можете активировать реле, чтобы начать перекачивание воды. Вот вам идея!

Совет: поверните движок потенциометра по часовой стрелке, чтобы увеличить чувствительность, или против часовой стрелки, чтобы уменьшить ее.

Рисунок 4 – Светодиодные индикаторы питания и состояния почвы

Помимо этого, модуль имеет два светодиода. Индикатор питания загорится, когда на модуль будет подано напряжение питания. Светодиод состояния загорится, когда на цифровой выход будет подаваться низкий логический уровень.

Схема подключения

Принцип соединения гигрометра с Arduino общий для всех видов сенсоров.

  • Выход VCC подключается к Arduino на 5В-контакт.
  • GND соединяется с соответствующим контактом Ардуино.
  • Сигнальный выход — с сигнальным входом (аналоговым или цифровым, в зависимости от ситуации).

Возможности платы Ардуино позволяют реализовать различные способы считывания. Можно, например, выводить показатели на небольшой LCD-дисплей, включать или выключать диоды, инициировать отправку иных сигналов или запуск автоматической «поливалки». Все зависит от желания владельца и заложенных в программу контроллера директив.

2Схема подключения датчика температуры и влажности DHT11

Рассмотрим схему подключения датчика температуры и влажности DHT11 к микроконтроллеру, в частности, к Arduino.

Схема подключения датчика температуры и влажности DHT11

Давайте посмотрим, что показано на рисунке.

Обозначение на рисунке Описание Примечание
MCU Микроконтроллер или одноплатный компьютер Arduino / Raspberry Pi и др.
DHT11 Датчик температуры и влажности Выводы 1Pin, 2Pin и 4Pin задействованы в схеме, один из выводов датчика – 3-ий пин 3Pin – ни к чему не подключается.
DATA Шина данных Если длина соединительного кабеля от датчика к микроконтроллеру не превышает 20 метров, то эту шину рекомендуется подтянуть к питанию резистором 5,1 кОм; если больше 20 метров – то другой подходящий номинал (меньший).
VDD Питание датчика Допустимы напряжения от ~3,0 до ~5,5 вольт постоянного тока; если используется питание ~3,3 В, то желательно использовать питающий провод не длиннее 20 см.

Соберём рассмотренную схему. Я также по традиции включу в цепь логический анализатор, чтобы можно было изучить временную диаграмму информационного обмена с датчиком.

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

Сенсор DHT11 часто продаётся в виде готовой сборки с необходимой обвязкой – подтягивающими резистором и фильтрующим конденсатором (как на предыдущей фотографии). Для экспериментов с Arduino я рекомендую покупать именно такой.

Программа

Программа передатчика

Сперва рассмотрим программу передающей части:

Для передачи влажности и температуры в одном сообщении я соединяю их вместе. Сначала данные считываются в переменную как целые числа, потом целые числа преобразовываются в массив символов, а затем они соединяются друг с другом. На приемной стороне данные будут разделены на отдельные символы. Делая это, я ограничиваю себя двумя цифрами градусов. Если датчик находится в среде с температурой менее 10°C, я буду получать на дисплее символы мусора. Например, если температура составляет 20°C, а влажность – 45%, то будет передаваться сообщение 2045, и всё хорошо. Если температура равна 9°C, а влажность – 78%, то передастся сообщение 978x, где «x» – случайный символ. Поэтому, если вы будете собирать данный беспроводной термометр, я советую вам изменить программу для передачи правильных данных, когда температура будет меньше 10°C.

Программа приемника

Интересный способ использования библиотеки LiquidCrystal – это создание пользовательских символов. С помощью я создал символ градусов. Таким же способом вы можете создать и свои собственные символы. Чтобы создать пользовательский символ или значок, вам необходимо объявить его, как массив из восьми байт, и «нарисовать», какие пиксели будут включены (1 – включен, 0 – выключен).

В функции вы создаете его с помощью . принимает два аргумента: номер позиции для хранения символа и массив байт, в котором определено, какие пиксели будут отображаться. В нашем случае это . Затем символ выводится на LCD с помощью функции .

Компоненты и их описания

Arduino Uno

Arduino взаимодействует через датчики с окружающей средой и обрабатывает поступившую информацию в соответствии с заложенной в неё программой. Подробнее с платой Ардуино Уно можно ознакомиться здесь.

Ардуино Уно

Датчик влажности почвы

Измерение влажности почвы на базе Arduino производится с помощью датчика влажности. Датчик имеет два контакта. Через эти контакты при погружении их в грунт протекает ток. Величина тока зависит от сопротивления грунта. Поскольку вода является хорошим проводником тока, наличие влаги в почве сильно влияет на показатель сопротивления. Это значит, чем больше влажность почвы, тем меньше она оказывает сопротивление току.

Датчик влажности почвы

Этот датчик может выполнять свою работу в цифровом и аналоговом режимах. В нашем проекте используется датчик в цифровом режиме.
На модуле датчика есть потенциометр. С помощью этого потенциометра устанавливается пороговое значение. Также на модуле установлен компаратор. Компаратор сравнивает данные выхода датчика с пороговым значением и после этого даёт нам выходной сигнал через цифровой вывод. Когда значение датчика больше чем пороговое, цифровой выход передаёт 5 вольт (HIGH), земля сухая. В противном случае, когда данные датчика будут меньше чем пороговые, на цифровой вывод передаётся 0 вольт (LOW), земля влажная.

Этим потенциометром необходимо отрегулировать степень сухости почвы, когда как вы считаете нужно начать полив.

Фоторезистор

Фоторезистор (LDR) — это светочувствительное устройство, которое используются для определения интенсивности освещения. Значение сопротивления LDR зависит от освещённости. Чем больше света, тем меньше сопротивление. Совместно с резистором, фоторезистор образует делитель напряжения. Резистор в нашем случае взяли 10кОм.

Делитель напряжения

Подключив выход делителя Uin к аналоговому входу Ардуино, мы сможем считывать напряжения на выходе делителя. Напряжение на выходе будет меняться в зависимости от сопротивления фоторезистора. Минимальное напряжение соответствует темноте, максимальное – максимальной освещённости.

В этом проекте полив начинается в соответствии с пороговым значением напряжения. В утренние часы, когда считается целесообразным начать полив, напряжение на выходе делителя равно 400. Примем это значение как пороговое. Так если напряжения на делителе меньше или равно 400, это означает, что сейчас ночь и насос должен быть выключен.
Меняя пороговое значение можно настроить период работы автополива.

Релейный модуль

Реле представляет собой переключатель с электромеханическим или электрическим приводом.

Релейный модуль

Привод реле приводится в действие небольшим напряжением, например, 5 вольт от микроконтроллера, при этом замыкается или размыкается цепь высокого напряжения.

Схема реле

В этом проекте используется 12 вольтовый водяной насос. Arduino Uno не может управлять напрямую насосом, поскольку максимальное напряжение на выводах Ардуино 5 вольт. Здесь нам приходит на помощь релейный модуль.

Релейный модуль имеет два типа контактов: нормально замкнутые и нормально разомкнутые контакты. Нормально замкнутые без управляющего напряжения замкнуты, при подаче напряжения размыкаются. Соответственно нормально разомкнутые без напряжения разомкнуты, при подаче управляющего напряжения замыкаются. В проекте используются нормально разомкнутые контакты.

Водяной насос

В проекте используем 12-и вольтовый погружной насос с 18-ваттным двигателем. Он может поднимать воду до 1,7 метра.

Водяной насос

Этот насос можно эксплуатировать только тогда, когда он полностью погружен в воду. Это налагает некие обязательства по контролю уровня воды в ёмкости. Если водяной насос будет работать без воды, он просто-напросто сгорит.

Макетная плата

Макетная плата представляет собой соединительную плату, используемую для создания прототипов проектов электроники, без пайки.

Библиотека для DHT

Измерим температуру и влажность воздуха при помощи датчика DHT11.

Следует подключить подтягивающий резистор на 10 кОм между питанием и сигналом. У меня такого не оказалось, я подключил резистор на 2.2 кОм, вроде не сгорело. Для датчика DHT22 резистор не обязателен.

Также встречается модульное исполнение датчика с тремя ножками и готовым установленным резистором. Такой модуль может быть предпочтительнее. Как правило ножки подписаны, трудностей быть не должно.

Следует помнить, что один датчик будет использовать строго один цифровой пин, поэтому при сложной конструкции из нескольких датчиков учитывайте данное обстоятельство.

У меня получилась следующая схема.

Первую ножку датчика соедините с питанием на 5В (красный провод), вторую — с пином номер 2, третью пропускаем, а четвёртую соединяем с GND (чёрный провод). Также вставляем на плату резистор — одна ножка соединяется с первой ножкой датчика, а вторая со второй.

Следующий шаг — установка библиотеки. В сети существует много библиотек для данного датчика. Популярна библиотека GitHub — adafruit/DHT-sensor-library: Arduino library for DHT11DHT22, etc Temp & Humidity Sensors. Скачиваем архив и переименовываем папку в DHT, папку размещаем в общей папке для библиотек Arduino libraries.

Второй и удобный способ — установка через менеджер библиотек. Открываем Tools | Manage Libraries… и в поиске диалогового окна вводим DHT. Найдётся несколько библиотек, выбираем библиотеку от Adafruit. Устанавливайте версию 1.2.3. Если вы будете устанавливать версию 1.3.0 или выше, то вам придётся также установить ещё библиотеку Adafruit Unified Sensor, без неё скетч не будет компилироваться.

После установки библиотеки, запускаем IDE и находим пример File | Examples | DHT sensor library | DHTtester.

Скетч по умолчанию рассчитан на датчик DH22, поэтому вам нужно сначала закомментировать строчку #define DHTTYPE DHT22 и снять комментарий с строчки #define DHTTYPE DHT11.

Полностью скетч выглядит следующим образом.

Запускаем скетч и наблюдаем за результатами в Serial Monitor. Датчик считается очень медленным, поэтому не следует делать слишком маленькую задержку, в примере используется пауза на две секунды.

Пример проверялся летом в жаркий день. Результаты вполне правдоподобны. Если подышать на датчик (помните в детстве мы дышали на стекло?), то влажность увеличится (и температура). Через какое-то время показания будут медленно возвращаться к первоначальным.

В составе библиотеки также есть файл с именами функций.

DHT
Класс датчика. Объявляем объект класса: DHT dht(DHTPIN, DHTTYPE);. В первом параметре объявляем пин, во втором — тип датчика
begin()
Запускаем датчик
readTemperature()
Без параметров функция измеряет в градусах Цельсия. Вызов readTemperature(true) вернёт значения в градусах Фаренгейта
convertCtoF()
Конвертирует из одной системы в другую
convertFtoC()
Конвертирует из одной системы в другую
computeHeatIndex()
Выводит индекс жары. По умолчанию используется индекс на основе градусов Фаренгейта, где нужно указать градусы и влажность. Для температуры по Цельсию нужно указывать три параметра computeHeatIndex(t, h, false)
readHumidity()
Функция для измерения влажности
read()
Что-то считывает

Дополнительные материалы для DHT

Fritzing-Library/DHT11 Humitidy and Temperature Sensor.fzpz at master · adafruit/Fritzing-Library · GitHub — в составе Fritzing нет датчика DH11. Скачайте данный файл и перетащите его на окно программы. Теперь вы сможете составлять схемы с его участием (смотри мой скриншот выше). В программе он будет находиться в разделе MINE.

Датчик температуры и влажности DHT11 (DHT22) — здесь дана дополнительная информация о работе датчика в модульном исполнении, ссылка на даташиты, примеры кода без библиотеки, графики.

winlinvip/SimpleDHT: Simple, Stable and Fast Arduino Temp & Humidity Sensors for DHT11 and DHT22 — ещё одна библиотека. Доступна через менеджер библиотек.

Характеристики и подключение датчиков DHT11 и DHT22

Датчик состоит из двух частей – емкостного датчика температуры и гигрометра. Первый используется для измерения температуры, второй – для влажности воздуха. Находящийся внутри чип может выполнять аналого-цифровые преобразования и выдавать цифровой сигнал, который считывается посредством микроконтроллера.

В большинстве случаев DHT11 или DHT22 доступен в двух вариантах: как отдельный датчик в виде пластикового корпуса с металлическими контактами или как готовый модуль с датчиком и припаянными элементами обвязки. Второй вариант гораздо проще использовать в реальных проектах и крайне рекомендуется для начинающих.

Датчик DHT11

  • Потребляемый ток – 2,5 мА (максимальное значение при преобразовании данных);
  • Измеряет влажность в диапазоне от 20% до 80%. Погрешность может составлять до 5%;
  • Применяется при измерении температуры в интервале от 0 до 50 градусов (точность – 2%)
  • Габаритные размеры: 15,5 мм длина; 12 мм широта; 5,5 мм высота;
  • Питание – от 3 до 5 Вольт;
  • Одно измерение в единицу времени (секунду). То есть, частота составляет 1 Гц;
  • 4 коннектора. Между соседними расстояние в 0,1 ”.

Датчик DHT22

  • Питание – от 3 до 5 Вольт;
  • Максимальный ток при преобразовании – 2,5 мА;
  • Способен измерять влажность в интервале от 0% до 100%. Точность измерений колеблется от 2% до 5%;
  • Минимальная измеряемая температура – минус 40, максимальная – 125 градусов по Цельсию (точность измерений – 0,5);
  • Устройство способно совершать одно измерение за 2 секунд. Частота – до 0,5 ГЦ;
  • Габаритные размеры: 15,1 мм длина; 25 мм широта; 5,5 мм высота;
  • Присутствует 4 коннектора. Расстояние между соседними – 0,1 ‘;

Очевидно, что при использовании в ардуино датчика температуры и влажности DHT11 устройство выдаст менее точные значения, чем DHT22. У аналога больший диапазон измеряемых значений, но и цена соответствующая. Датчик температуры и влажности DHT22, как и его аналог, имеет один цифровой выход, соответственно снимать показания можно не чаще, чем один раз в 1-2 секунды.

Модуль датчика температуры KY-028

Датчик применяется для контроля температуры воздуха в помещении: регулятор температуры, автоматика систем отопления, автоматизация систем вентиляции.

Датчик грубо оценивает величину температуры, но умеет точно определять превышение порогового значения.

Технические характеристики

  • Напряжение питания: 3,3 – 5,5 В
  • Рабочая температура: 0 – 70°C

У датчика имеется два вывода: аналоговый и цифровой. Аналоговый позволяет получить температуру, цифровой — превышение установленного порога.

Основной элемент датчика – терморезистор, который соединён со входом микросхемы компаратора LM393YD. С помощью подстроечного резистора выполняется настройка порога срабатывания компаратора. Так устанавливается температурный порог. При превышении температурой установленного порога на цифровом выходе D0 будет высокий уровень напряжения. Если температура мала, то на выходе D0 низкий уровень.

Датчик содержит два светодиодных индикатора. Индикатор L1 сообщает о подаче питания. Светодиод L2 включается при превышении температурой окружающего воздуха установленного порога. С его помощью удобно проводить настройку модуля.

При включении на выходе A0 присутствует напряжение соответствующее температуре в комнате. Эта температура известна лишь приблизительно. Для повышения точности можно использовать температуру тела (сожмите терморезистор пальцами), в этом случае мы узнаем напряжение аналогового выхода при температуре 36,6°C. На эти данные можно опираться в дальнейшем. Другой вариант — температура таяния льда 0°C. Используйте пакетик с таящим льдом или снегом из холодильника, чтобы получить новое значение напряжения, которому можно верить.

Как подключить DHT22 к Ардуино Уно

Обратите внимание, что распиновка модулей у разных производителей может отличаться. При неправильном подключении питания, сенсор может выйти из строя

Дисплей подключается к шине i2c, расположенной на пинах SDA (A4) и SCL (A5) платы Ардуино Уно и Нано. При работе с платой Ардуино Мега подключение дисплея производится к интерфейсу i2c на пинах SDA (20) и SCL (21).

Схема подключения DHT22 и LCD 1602 к Ардуино

Схема подключения DHT22 к плате ничем не отличается от предыдущего примера, а сама программа отличается только одной строчкой, где мы указываем тип датчика — DHT22, вместо DHT11. После того, как вы собрали схему с дисплеем и DHT22, как показано на картинке выше, — загрузите следующий пример простой программы с универсальной библиотекой DHT.h, которая подходит для этих двух модулей.

Скетч. Подключение к Ардуино DHT22 и вывод на LCD 1602 i2c

#include <Wire.h>                       // библиотека для протокола I2C 
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602
#include <DHT.h>                         // подключаем библиотеку для датчика

LiquidCrystal_I2C LCD(0x27,16,2);  // присваиваем имя LCD для дисплея
DHT dht(2, DHT22);                          // сообщаем к какому порту подключен DHT22

void setup() {
   LCD.init();            // инициализация LCD дисплея
   LCD.backlight();  // включение подсветки дисплея
   dht.begin();         // запускаем датчик DHT22
}

void loop() {
   // считываем температуру (t) и влажность (h)
   float h = dht.readHumidity();
   float t = dht.readTemperature();

   // выводим температуру (t) и влажность (h) на жк дисплей
   LCD.setCursor(0,0);
   LCD.print("Humidity: ");
   LCD.print(h);

   LCD.setCursor(0,1);
   LCD.print("Temperature: ");
   LCD.print(t);

   delay(1000);
   LCD.clear();
}

Пояснения к коду:

  1. при необходимости получать значения температуры и влажности без знаков после запятой — используйте тип данных int, вместо float.

Заключение. Мы рассмотрели в этом обзоре, как подключить DHT11 и DHT22 к Arduino. Представили несколько примеров программ для вывода информации с цифрового датчика на аппаратный монитор порта Arduino IDE и дисплей 1602. С датчиком DHT11 существует множество проектов метеостанций на Ардуино, которые вы сможете сделать самостоятельно, внимательно изучив информацию на этой странице.

Installing the required Arduino libraries

The code below uses the Adafruit DHT sensor library which you can download here on GitHub. This library only works if you also have the Adafruit Unified Sensor library installed, which is also available on GitHub.

You can also download the two libraries by clicking on the buttons below:

DHT-sensor-library-master.zip

Adafruit_Sensor-master.zip

You can install the library by going to Sketch > Include Library > Add .ZIP Library in the Arduino IDE.

Another option is to navigate to Tools > Manage Libraries… or type Ctrl + Shift + I on Windows. The Library Manager will open and update the list of installed libraries.

You can search for ‘dht’ and ‘adafruit unified sensor’ and look for the library by Adafruit. Select the latest version and then click Install.

Устройство DTH11 Ардуино: распиновка, datasheet

На занятии мы будем использовать датчик DHT11 или DHT22, смонтированный на плате. DHT11 — это цифровой датчик, состоящий из термистора и емкостного датчика влажности. Наряду с невысокой стоимостью DHT11 имеет следующие характеристики: питание осуществляется от 3,5-5V, определение температуры от 0 до 50 градусов с точностью 2 град, определение влажности от 20% до 95% с 5% точностью.


Arduino dht11 распиновка (datasheet на русском)

Модуль DHT11 оборудован трех пиновым разъемом и подключается по схеме:

G — Подключается к выводу GNDV — Подключается к выводу +5VS — Подключается к цифровому выводу ( Pin2 )

Термистор — это термический резистор, сопротивление которого изменяется с температурой, т.е. увеличение температуры приводит к падению его сопротивления. По сути термистор — это термометр сопротивления, изготовленный на основе смешанных оксидов переходных металлов.  Относится к измерительной технике и может быть использован для автоматического измерения температуры в различных средах.

Емкостной датчик влажности — это конденсатор с переменной емкостью, который содержит токопроводящие обкладки из медной фольги на текстолите. Этот конденсатор заключен в герметичный чехол, поверх которого расположен влагопоглощающий слой. При попадании частиц воды на этот слой, меняется его диэлектрическая проницаемость, что приводит к изменению емкости конденсатора.

Основные технические характеристики DHT11 и DHT22

Особенности DHT11:

  1. Диапазон замера влажности 20-80% (погрешность до 5%).
  2. Диапазон замера температуры 0-50 °C (точность – 2°C).
  3. Питание 3-5 В.
  4. Потребляемый ток 2,5 мА.
  5. Частота 1 Гц.
  6. Габариты: 15,5 x 12 x 5,5 мм.
  7. Четыре коннектора.

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

  1. Диапазон замера влажности 0-100% (погрешность 2-5%).
  2. Диапазон замера температуры от минус 40 °C до плюс 125 °C (точность – 0,5°C).
  3. Питание 3-5 В.
  4. Потребляемый ток 2,5 мА.
  5. Частота 0,5 Гц.
  6. Габариты: 15,1 x 25 x 5,5 мм.
  7. Коннекторы 4 штуки с расстоянием 0,1.

Влажность измеряется в процентах. Когда сделаете замер датчиком и он покажет 55%, это значит, что вокруг места замера в воздухе находится 55% водяного пара.

Если датчик покажет 100% — скорей всего он неисправен или схема подключения неверна. А если он выдаст 0% — скорей всего тоже есть проблемы обработки данных, или же вы находитесь в центре пустыни, или в комическом пространстве.

DHT11 не используют в системах, где нужны особо точные замеры. Приближенные настоящим данным выдает DHT22. Его можно использовать в теплице, домашней метеостанции, инкубаторе. Естественно, существуют и более точные измерители температуры и влажности, но уже в другом ценовом сегменте.

Подключаем датчики DHT11 и DHT22 к Arduino UNO

Перед тем как подключать рассматриваемые компоненты, нам нужно установить на наш ПК Arduino IDE. Загрузить IDE можно на официальном сайте разработчика плат Ардуино. На данный момент последней Arduino IDE является версия под номером 1.6.10. Процесс установки Arduino IDE очень прост и сводится к нажатиям кнопки «Next >» и «Install», поэтому с ним справится любой пользователь. После установки Arduino IDE на рабочем столе должен появиться ярлык с именем «Arduino».

Теперь рассмотрим схемы подключения рассматриваемых компонентов к Arduino UNO. Ниже изображена схема подключения датчика DHT22.

Для сенсора DHT11 схема подключения выглядит аналогично.

Теперь подключим нашу схему по 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 и откроем «Монитор порта».

В мониторе видно значение влажности в процентном соотношении и показатели температуры.

Программный код термостата Arduino

Аналогично, как и в схеме подключения, код каждого термостата Arduino будет немного отличаться. Его нужно адаптировать к потребностям тепловой сети.

Эту схему можно модернизировать, например, добавить такие функции:

  1. Датчик движения для включения и выключения источника нагрева, в зависимости от присутствия жителей.
  2. Режим «АВТО», автоматическое ведение тепловым процессом.
  3. Внешние датчики для измерения температуры в помещении в разных местах.
  4. LED-экран для контроля температуры.

Таким образом, функциональные возможности терморегулятора с Arduino огромны. Они могут учесть, практически все, внутридомовые системы отопления. Современная промышленность наладила выпуск комплектующих изделий для такой схемы управления, а используя возможности Arduino и фреймворка MySensors, домашняя «умная» автоматики может быть реализована в каждом доме своими руками.