Если вы хотите контролировать уровень влажности и поддерживать его в заданных пределах, в этой статье мы расскажем, как это сделать.
Вытяжка поможет избавиться от лишней влаги в ванной комнате. Замеряя уровень влажности, устройство будет включать и выключать вентилятор вытяжки с помощью механического реле.
На Iskra Neo установи Troyka Shield к которому подключи датчик DHT-21 и AC-DC Zelo-модуль с реле. На вход Zelo-модуля прикрути клемниками кабель подачи питания, а к выходу нормально открытого контакта подключи провода вентилятора.
Внимание!
Работа с высоким напряжением опасна для вашего здоровья и жизни. На AC-DC Zelo-модуле существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.
Если вы сомневаетесь как подключить к реле электроприбор, работающий от общей сети 220 В и у вас есть сомнения, вопросы на тему того как это делается, остановитесь: вы можете устроить пожар или убить себя. Убедитесь, что у вас в голове — кристальное понимание принципа работы устройства и опасностей, которые связаны с высоким напряжением.
// библиотека для работы с датчиком DHT21 #include <TroykaDHT.h> // номер цифрового пина реле #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); }