Умная вытяжка

Если вы хотите контролировать уровень влажности и поддерживать его в заданных пределах, в этой статье мы расскажем как это сделать.

Видеообзор

Что это?

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

Что понадобиться?

  1. Вентилятор канальный.

Схема сборки

На Iskra Neo установи Troyka Shield к которому подключи датчик DHT-21 и AC-DC Zelo-модуль с реле. На вход Zelo-модуля прикрути клемниками кабель подачи питания, а к выходу нормально открытого контакта подключи провода вентилятора.

Внимание!

Работа с высоким напряжением опасна для вашего здоровья и жизни. На AC-DC Zelo-модуле существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.

Если вы сомневаетесь как подключить к реле электроприбор, работающий от общей сети 220 В и у вас есть сомнения, вопросы на тему того как это делается, остановитесь: вы можете устроить пожар или убить себя. Убедитесь, что у вас в голове — кристальное понимание принципа работы устройства и опасностей, которые связаны с высоким напряжением.

Код прошивки

smartFan.ino
// библиотека для работы с датчиком 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);
}

Что дальше?

  1. Добавьте потенциометр для установки пороговых значений.
  2. Замените механическое реле на твердотельное.
  3. Добавьте дисплей для отображения уровня влажности.