Подключение DHT11 (DHT22) к Ардуино

Оглавление статьи: Подключение DHT11 (DHT22) к Ардуино
Содержание

Благодаря аппаратно-программным средствам Arduino можно легко построить автоматизированные или роботизированные системы. Используемые в системе элементы — датчики, разрешают оперировать различной информацией и исходя из нее выстраивать цепочку возможных операций, выполняемых в автоматическом или полуавтоматическом режимах. В качестве используемых элементов, в рамках публикации, рассматривается датчики температуры и влажности DHT11 и DHT22, подключаемые к Arduino.

Характеристики и соединение датчиков

Датчики температуры и влажности DHT22 и DHT11 очень популярны в среде Ардуино. Связано это с их низкой стоимостью и легким подключением к плате. Основные характеристики вынесены в таблицу.

Датчик DHT11 DHT22
Ток потребления 2.5 мА 2.5 мА
Питание От 3 до 5 В От 3 до 5 В
Диапазон измерения влажности 20–80 % 0–100 %
Погрешность 5 % 2–5 %
Температурный диапазон 0–50 °C −40–125 °C
Погрешность 2 % 0.5 %
Частота измерения 1 Гц (1 замер в секунду) 0.5 Гц (1 замер за 2 секунды)
Коннекторы 4 шт, шаг между ними 0.1 4 шт, шаг – 0.1
Габариты 15.5×12×5.5 мм 15.1×25×5.5 мм
Цена 0.6 $ 2.45 $

Замеры влажности производятся в процентах. Когда сенсор при замере выдает 50 % — это значит, что вокруг места замера в воздухе присутствует 50 % водяного пара.

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

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

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

Для подключения DHT11 к Ардуино предпочтительнее выбрать второй «модульный» вариант тем, кто не приобрел достаточно хороший скилл опытного запайщика.

Комплект

Подключение датчика температуры DHT11 к Ардуино в примере реализовано тремя способами. Для каждого нужно свой комплект. Какую плату будете реализовывать вы – полностью зависит от вас. Реализация доступна на:

  1. Arduino UNO — стандартная плата.
  2. Arduino Nano — для размещения в компактные корпуса.
  3. Arduino MEGA — сложные и большие системы требуют большого количества контактов на плате.

Первым набором для подключения является:

  1. Ардуино УНО плата.
  2. Датчик DHT11.
  3. Резистор с сопротивлением 4.7 кОм.
  4. Макетная плата.
  5. Проводники для соединения друг с другом всех элементов схемы.

Второй комплект:

  1. Плата Arduino NANO / UNO.
  2. DHT11.
  3. Проводники со специальными штекерами для УНО.

Третий комплект подключения:

  1. Плата Уно.
  2. DHT11 модуль.
  3. Дисплей с LCD-экраном.
  4. Проводники штекерные Адруино.
  5. Переходник питания 2 в 1.

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

Схема соединения

Подключение датчика влажности к Ардуино рекомендуется делать по макету.

Подключение датчика влажности к Ардуино

Миниатюрный сенсор соедините с платой Ардуино по схеме №1:

  1. Вывод DHT11 под номером 1 через проводники к плате +5В (красный).
  2. Вывод второй к контакту digital (синий), он под номером 4.
  3. Третий заводить куда-либо не надо.
  4. Четвертый выводите на землю GND (черный).

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

Принципиальная схема работы

Если с подобным монтажом заморачиваться желания нет, используйте датчик DHT11, выполненный в модульном варианте. Он уже поставляется с элементом подтяжки, поэтому лишен всех прелестей «хенд-мейд перемычек».

схема соединения сенсора с платой

Задействуем вторую схему соединения сенсора с платой по такой распиновке:

  1. Красный проводом соедините питание +5В и VCC.
  2. OUT к цифровому пину, отвечающего за данные (зеленый).
  3. Землю завяжите между собой (черный).

Принципиальная схема элементов соединения вот такая.

Принципиальная схема элементов соединения

Не забывайте о технике безопасности. Выполняйте подключение элементов к плате с полностью выключенным питанием во избежание повреждений.

подключение элементов к плате с полностью выключенным питанием

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

  1. Контакт SCL экрана к А5 (данные, оранжевый).
  2. SDA к А4 (данные, желтый).
  3. GND завязать с GND (земля, черный).
  4. VCC к 5В (питание, красный).
  5. GND сенсора в GND (земля, черный).
  6. DATA к A0 (данные, фиолетовый).
  7. VCC к 5В (питание, красный).

Питание LCD-экрана и сенсора реализуйте через единый пин с помощью соединительного контакта (2 in 1).

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

Программирование

Перед выполнением каких-либо манипуляций сделайте следующее:

  1. Загрузите с Github библиотеки DHT для сенсора.
  2. И при реализации дисплея — LiquidCrystal_I2C.
  3. Распакуйте с помощью архиватора запакованные библиотеки, и перенесите данные в такой путь на диске \Arduino\libraries.
  4. Для датчика переименуйте библиотеку в DHT, для экрана оставьте как есть.

Представленный в виде ознакомительной иллюстрации скетч создан для реализации DHT11 датчика на Ардуино и вывода данных на экран подключенного дисплея.

#include <Wire.h> // Внедрение в Ардуино IDE библиотек
#include <LiquidCrystal_I2C.h> // Подтягивание для LCD-дисплея
#include "DHT.h" // Подтягивание для используемого сенсора
#define DHTPIN A0 // А0 к этому разъему подсоединяется DATA-выход сенсора
//программа определяет подключенный элемент
#define DHTTYPE DHT11 // выбран сенсор DHT11
//подготовка к работе
DHT datchik(DHTPIN, DHTTYPE);
byte degree[8] = // Перевод градус Цельсия в двоичную систему для обработки.
{
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
};
// Обращение к экрану
LiquidCrystal_I2C disp(0x27,16,2); // Размер выводимой информации и адрес экрана
void setup()
{
disp.init(); // Инициализация LCD-экрана
disp.backlight(); // Активация подсветки
disp.createChar(1, degree); // Определение градуса как единицы
Serial.begin(9600);
datchik.begin();
}
void loop() {
// Выставление задержки между измерениями в две секунды
delay(2000);
float h = datchik.readHumidity();
// Чтение t °C.
float t = datchik.readTemperature();
// Чтение t как °F.
float f = datchik.readTemperature(true);
// Выведение данных на LCD-экран
disp.setCursor(0, 0); // Выставление курсора в самое начало строки
disp.print("Humidity = % "); // Вывести данные
disp.setCursor(7, 0); // Выставление курсора на седьмой символ в этой строке
disp.print(h, 1); // Показ инфо о влажности на экране
disp.setCursor(0, 1); // Выставление курсора в самое начало второй строки
disp.print("Temperature = \1C "); // Вывод данных, \1 – это значение градуса
disp.setCursor(7, 1); // Перевод курсора на седьмой символ
disp.print(t,1); // Выставление данных по t °C
}

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

Сценарии использования

Игрушка Ардуино разрешает реализовывать даже неопытному человеку в микросхемотехнике и программировании собственные системы робототехники и Smart House, выполняющие узкоспециализированные или широко направленные действия.

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

Как это сделано на примере DHT22, смотрите в этом ролике.

Сценарии использования могут быть и другие:

  1. Данные с сенсоров выводятся на удаленный сервер и через специальную программу-клиент считываются смартфоном, подключенным к интернету в любой точке земного шара.
  2. Применение реле в схеме сможет по команде включать вентилятор в вытяжке. Командой для реле станет достижение предела в 83 % влажности. При достижении необходимой нормы реле автоматически отключит питание и вентилятор прекратит работать.
  3. Если реализовать соединение с мотором, то по команде верхнего предела концентрации пара, привод сможет открывать окно, выставив режим «проветривание». И соответственно, достигнув нижнего предела или спустя определенное время, закрыть оконную створку полностью.
  4. Рассада, подготавливаемая в крупных объемах к дальнейшей высадке или продаже, может контролироваться с помощью таких датчиков. Их незначительные погрешности не помешают контролю, а цена как раз стимулирует к применению.
  5. Автоматизировать работу можно и в хозяйстве. Например, не использовать термометры в инкубаторах для вывода птенцов на ферме, а завести внутрь датчики, подключенные к Ардуино. Вывести информацию с них можно куда угодно: дисплей, подключённый компьютер, удаленный сервер.

Заключение

Подключить датчик температуры DHT11 к плате Ардуино достаточно просто. В этом поможет монтажная и принципиальные схемы, доступные в datashet и других источниках. После подсоединения компонентов, нужно, правильно запрограммировать датчик. В этом поможет скетч и соответствующие библиотеки.

Видео по теме

Добавить комментарий Ваш e-mail не будет опубликован. Обязательные поля помечены *