Постановка задачи
В одно прекрасное время меня начала напрягать большая влажность и неприятные запахи в ванной комнате. Отверстие в вентиляционную шахту в ванной комнате конечно присутствовало, но потока воздуха не хватало для полного решения проблем, особенно при закрытой двери. Было принято решение приобрести вытяжной вентилятор для вентиляционной шахты.
Питание
Первая проблема при его установке меня поджидала в отсутствии отдельных проводов для подключения вентилятора. Конечно, во время ремонта никто не подумал что когда-нибудь здесь понадобится вентилятор. Поэтому единственной возможностью аккуратно и безопасно запитать вентилятор возможно только от осветительных лампочек под подвесным потолком. Способ простой и надёжный, минус только в том, что вентилятор будет работать только когда в ванной включён свет, а с другой стороны остальное время вентилятор и не нужен.
Идея управления
Но мы же с вами не простые электрики, такое простое подключение вентилятора напрямую от освещения для нас слишком просто, и вынуждает вентилятор работать дольше необходимого времени, создавая лишний шум и расход электроэнергии. Поэтому мы сделаем управление работой вентилятора при помощи Arduino!
Сразу же приходят в голову идеи сделать включение и выключение вентилятора через пульт дистанционного управление, либо через определённые промежутки времени, но пульт требует дополнительных действий от человека и место для хранения пульта (тем более пульт имеет свойство теряться), а включение по времени не учитывает окружающей обстановки и реальной необходимости включения вентилятора. А вентилятор хотелось сделать умным, самоуправляемым и реагирующим на окружающую обстановку.
Комплектующие
Анализатор неприятного запаха в электронном виде я ещё не придумал, а вот уровень влажности можно замерять обычным датчиком температуры и влажности DHT-11, случайно завалявшимся в моём столе. Управлять включением вентилятора я решил при помощи обычного модуля реле, а в качестве мозга — использовать обычный Arduino Nano.
Контроллер необходимо питать от стабильного напряжения 5 вольт, а под подвесным потолком оно отсутствует, исходя из этого мне пришлось установить там же маленький блок питания, то есть преобразователь 220в в 5в постоянного тока.
Условия включения вентилятора
Установить строго определённый уровень запуска вентилятора (например ровно 50% влажности и более) оказалось довольно проблематично в силу нескольких причин:
- Датчик DHT11 даёт большую погрешность при измерении.
- Испытывая схему в лабораторных условиях очень трудно предположить какой уровень влажности будет на реальном месте работы.
- Неподвижный воздух в районе датчика влажности может влиять на показания датчика, давая ему устаревшие показатели.
Исходя из этого мне захотелось сделать самообучающуюся систему. Для первого запуска я условно указал порог включения вентилятора 50% влажности и выше. То есть если замеренная влажность достигла порогового значения или превысила его — вентилятор включается, в ином случае — выключается. Замер повторяется каждые 10 секунд.
Самокорректировка
Однако, с целью самообучения системы, пороговое значение корректируется самой системой при каждом замере, хоть и понемногу: если вентилятор включён — пороговое значение повышается на одну сотую процента, а если выключен — понижается на ту же величину. Таким образом, наш умный вентилятор постоянно находит среднюю относительную влажность и устанавливает её в качестве порогового значения. А чтобы это значение не обнулялось при каждом включении ардуинки, её необходимо сохранять в постоянную область памяти — EEPROM.
Обновление прошивки
Ещё одна интересная мысль заставила меня сделать контроллер Arduino съёмным: Во время первых запусков вентилятора на реальном месте однозначно захочется немного скорректировать настройки, переделать программу или её параметры. А лезть с ноутбуком каждый раз к подвесному потолку не совсем удобно, а ведь вся электронная часть будет смонтирована именно там! Подумав, что для обновления программы требуется только контроллер Arduino без навесных плат, я решил сделать съёмным только его. Для удобного подключения и отключения его под подвесным потолком необходимо было придумать какой-нибудь разъём как минимум с четырьмя проводами (плюс, минус, сигнал на реле и данные с датчика влажности), и желательно — с возможностью последующего расширения. В процессе поиска подходящих штекеров мои коллеги подсказали мне отличную идею: использовать в этих целях сетевой штекер и розетку RJ-45! Дешево в приобретении, легко подключается, и опять же вопрос выбора проводов решается сам собой!
Планируемые улучшения
Действующая схема хороша своей самоуправляемостью, но не предусматривает принудительное ручное включение или выключение вентилятора. После некоторого времени использования в реальных условиях планирую подключить к этой системе пульт дистанционного управления (возможно радио или инфракрасный), либо добавлю микрофон и сделаю включение-выключение по хлопкам в ладоши!
Или как вариант, сделать включение-выключение вентилятора по чётному-нечётному включению выключателя света! То есть подалось напряжение на ардуинку — включить вентилятор. Подалось второй раз — выключить. Для этой функции также придётся задействовать постоянную память ардуинки EEPROM.
Фотогалерея