====== Умная вытяжка ======
Если вы хотите контролировать уровень влажности и поддерживать его в заданных пределах, в этой статье мы расскажем, как это сделать.
===== Видеообзор =====
{{youtube>ml9D4_NreN0?large}}
===== Что это? =====
Вытяжка поможет избавиться от лишней влаги в ванной комнате.
Замеряя уровень влажности, устройство будет включать и выключать вентилятор вытяжки с помощью механического реле.
===== Что понадобиться? =====
- [[amp>product/iskra-neo?utm_source=proj&utm_campaign=dht-21&utm_medium=wiki | Iskra Neo]]
- [[amp>product/arduino-troyka-shield?utm_source=proj&utm_campaign=dht-21&utm_medium=wiki | Troyka Shield]]
- [[amp>product/zelo-ac-dc?utm_source=proj&utm_campaign=dht-21&utm_medium=wiki | AC/DC (Zelo-модуль)]]
- [[amp>product/temperature-humidity-sensor-dht21?utm_source=proj&utm_campaign=dht-21&utm_medium=wiki|DHT-21]]
- Вентилятор канальный.
===== Схема сборки =====
На Iskra Neo установи Troyka Shield к которому подключи датчик DHT-21 и AC-DC Zelo-модуль с реле.
На вход Zelo-модуля прикрути клемниками кабель подачи питания, а к выходу нормально открытого контакта подключи провода вентилятора.
{{:продукты:high_voltage.png?nolink |}}**//Внимание!//**
Работа с высоким напряжением опасна для вашего здоровья и жизни.
На AC-DC Zelo-модуле существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.
Если вы сомневаетесь как подключить к реле электроприбор, работающий от общей сети 220 В и у вас есть сомнения, вопросы на тему того как это делается, остановитесь: вы можете устроить пожар или убить себя. Убедитесь, что у вас в голове — кристальное понимание принципа работы устройства и опасностей, которые связаны с высоким напряжением.
{{ :projects:smart-extractor-fan:connect.png?nolink |}}
===== Код прошивки =====
// библиотека для работы с датчиком DHT21
#include
// номер цифрового пина реле
#define RELAY_PIN A0
// задаём минимальное и максимальное значение
#define MIN_LEVEL 40
#define MAX_LEVEL 60
// создаём объект класса DHT21 и передаём номер пина к которому подключён датчик
DHT dht(4, DHT21);
// переменная для хранения состояния работы вентилятора
bool state = false;
// переменная для хранения показателя влажности окружающей среды
float humidity;
void setup(){
// открываем последовательный порт для мониторинга действий в программе
Serial.begin(9600);
// начало работы с датчиком DHT21
dht.begin();
// назначаем 13 пина в режим выхода
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
// считывание данных с датчика
dht.read();
switch (dht.getState()) {
// всё OK
case DHT_OK:
// считываем показания влажности с датчика
humidity = dht.getHumidity();
break;
// если ошибка выводим в порт«Err»
default:
Serial.println("ERR");
break;
}
if (humidity > MAX_LEVEL && !state){
// включаем реле
digitalWrite(RELAY_PIN, HIGH);
state = true;
}
if (humidity < MIN_LEVEL && state) {
// выключаем реле
digitalWrite(RELAY_PIN, LOW);
state = false;
}
Serial.println(humidity);
// ждём 2 секунды
delay(2000);
}
===== Что дальше? =====
- Добавьте потенциометр для установки пороговых значений.
- Замените механическое реле на твердотельное.
- Добавьте дисплей для отображения уровня влажности.