====== Умная вытяжка ====== Если вы хотите контролировать уровень влажности и поддерживать его в заданных пределах, в этой статье мы расскажем, как это сделать. ===== Видеообзор ===== {{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); } ===== Что дальше? ===== - Добавьте потенциометр для установки пороговых значений. - Замените механическое реле на твердотельное. - Добавьте дисплей для отображения уровня влажности.