Благодаря аппаратно-программным средствам 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 к Ардуино в примере реализовано тремя способами. Для каждого нужно свой комплект. Какую плату будете реализовывать вы – полностью зависит от вас. Реализация доступна на:
Первым набором для подключения является:
Второй комплект:
Третий комплект подключения:
С помощью последнего комплекта информацию можно вывести на дисплей, а не считывать ее через подключенный по USB компьютер. Это значит, что у третей схемы есть все необходимое, чтобы настроить ее на автономную работу.
Подключение датчика влажности к Ардуино рекомендуется делать по макету.
Миниатюрный сенсор соедините с платой Ардуино по схеме №1:
Есть небольшой нюанс. Так как второй контакт отвечает за транспортировку сигнала, его нужно правильно настроить. Для этого контакт нужно развести на подключение к четвертому пину интерфейса платы и к питанию, но через резистор. Принципиальная схема работы выглядит так.
Если с подобным монтажом заморачиваться желания нет, используйте датчик DHT11, выполненный в модульном варианте. Он уже поставляется с элементом подтяжки, поэтому лишен всех прелестей «хенд-мейд перемычек».
Задействуем вторую схему соединения сенсора с платой по такой распиновке:
Принципиальная схема элементов соединения вот такая.
Не забывайте о технике безопасности. Выполняйте подключение элементов к плате с полностью выключенным питанием во избежание повреждений.
Последняя, третья схема реализуется с подключением дисплея для вывода информации. Из-за дополнительного компонента, она немного усложняется:
Питание LCD-экрана и сенсора реализуйте через единый пин с помощью соединительного контакта (2 in 1).
После реализации одной из схем нужно подключить плату к компьютеру, взять готовый скетч и подставить свои значения, чтобы схема заработала.
Перед выполнением каких-либо манипуляций сделайте следующее:
Представленный в виде ознакомительной иллюстрации скетч создан для реализации 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, смотрите в этом ролике.
Сценарии использования могут быть и другие:
Подключить датчик температуры DHT11 к плате Ардуино достаточно просто. В этом поможет монтажная и принципиальные схемы, доступные в datashet и других источниках. После подсоединения компонентов, нужно, правильно запрограммировать датчик. В этом поможет скетч и соответствующие библиотеки.