Датчик влажности и модернизация вытяжки в ванной комнате


C приближением «каникул» стало побольше времени для доделки всяких мелочей, оставленных во время ремонта квартиры «на потом». Сегодня дошли руки до вытяжки в ванной.

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

Решил сделать «по уму». Решение с применением «ардуинства» — под катом.

Внимание — в обзоре описывается работа с сетевым напряжением 220 вольт. При недостаточной квалификации ошибки при работе могут привести к поражению током или к летальному исходу. Оценивайте свои умения реалистично, соблюдайте осторожность и чтите ПУЭ.
Сразу отвечаю на извечные возражения про принудительную вентиляцию
* Дом старый, дореволюционной постройки — у каждой квартиры свой индивидуальный вентканал на чердак. Ни к кому из соседей мой «выхлоп» не вылезет.
* Естественная тяга в вентканале есть и достаточная — проверялась анемометром, застопоренный вентилятор ей не мешает. Задача вентилятора — быстрое удаление влажности.

На просторах Али есть 2 типа датчиков влажности — DHT22 и DHT11. Второй тип подешевле, но к нему много нареканий, поэтому остановился на DHT22.

При ремонте параллельно к силовым кабелям проложил «витую пару» и озаботился распаячными коробками для размещения Ардуин. В какой-то момент планирую запитать все Ардуины по разным углам квартиры по PoE от единственного качественного БП, через лишнюю пару проводников, но сейчас ограничился раздербаниванием старого заслуженного зарядного устройства Nokia на 5V и 300mA. Чтобы оно поместилось в распаячную коробку, переставил его из родного корпуса в коробочку из-под телефонной розетки, напаял выводы и зафиксировал термоклеем. Нагрев проверен, при малых нагрузках устройство остаётся полностью холодным:



Извлекаю из рамки за натяжным потолком вентилятор (модель не помню — какая-то самая бюджетная из «Леруа Мерлен») и проложенную к нему слаботочку (именно там не хватило последних 3м от бухты «витой пары» в 300м и пришлось применить телефонный кабель на 4 жилы):



Берём героя нашего обзора, проклеиваем щель между платой и датчиком, чтобы держался не только на паяных выводах. Подбираем винт для крепления (подошёл М3):



Сверлим в боку вентилятора дырку 3мм и фиксируем внутри вентканала у лопастей датчик. На кончики телефонного кабеля наживляем DuPont'овские коннекторы и изолируем их термоусадкой. Помня о том, что на сборку будет влиять вибрация мотора, фиксируем коннекторы на «ножках» датчика DHT22 лаком, им же покрываем дорожки, не защищённые маску платы. Результат — датчик надёжно зафиксирован, отлично обдувается, минимально мешает току воздуха. Лишнюю четвёртую жилу срезаем под корень (заземлять её было лень).

[Update: в комментариях справедливо заметили, что датчик нужно обернуть для защиты от пыли. Салфетка из нетканого материала отлично подойдёт.]



Поскольку телефонный кабель на срез оказался позорным (позорнее чем многие дешёвые китайские USB-кабели — оказывается, такое возможно!) сначала тестируем, «видит» ли Ардуина датчик. Берём первую попавшуюся UNO из ящика стола, наживляем на провод коннекторы, втыкаем в Ардуину. Питание подключаем к VCC и GND, сигнальную линию — к любому цифровому пину. Провода обжимал самым дешевым кримпером за 12 баксов — как бы не стращал уважаемый коллега yurok, результат получается достойный.



В Arduino версии 1.6.7 библиотека для работы с датчиком подключается из хранилища — её легко найти по ключевому слову «DHT22»:



После подключения в «Примерах» появляется новый, под названием «DHTester». Его и берём. Не забываем исправить номер пина в строчке
#define DHTPIN 2     // what digital pin we're connected to
на тот, в который воткнули сигнальный провод от датчика.



Загружаем пример в Ардуину, открываем Serial monitor и с облегчением видим, что данные с датчика идут, даже по трём метрам дерьмового провода.

Закрываем дверь в ванную, включаем душ. Опытным путём устанавливаем, что влажность более 72% — это тот «порог», от которого надо включать принудительную вытяжку. Тогда же обращаем внимание, что цифры пусть и незначительно, но скачут. Становится понятно, что надо брать подряд несколько замеров и вычислять по ним «скользящее среднее».

Начинаем собирать конструкцию так, чтобы уместилась в распайку. Для управления вытяжкой берём небольшое реле из старых запасов.

Я решил просто клеить компоненты на внутреннюю сторону крышки распаячной коробки «жидкими гвоздями». Так и надёжнее, и проще, и обеспечивается изоляция контактов реле на нижней стороне платы. Управление возложил на Arduino Mini — сторублёвую плату не жалко замуровать в стену.



Очень советую все контакты и прочую полезную информацию писать маркером там же, на изнанке крышки. Через год вы без этого не вспомните, что куда цеплялось и почему.



Подключаем сборку к сети, не забыв обесточить нужную зону в распред.щитке. Паяные контакты, которые я выполнил из обрезков витой пары, фиксирую теми же «жидкими гвоздями», т.к. одножильные провода из меди Cat5 очень любят переламываться. Все силовые соединения делаем на клеммниках Wago.

Ардуину Мини подключаем к компьютеру через адаптер USB-TTL. Мне было лень паять пятый провод к линии DTR, поэтому просто зажимаем кнопку Reset на Ардуине пальцем, жмём Upload и затем отпускаем Reset.

Код (не бейте тапком)
#define DEBUG 1 // Если поменять на "0", потребуется меньше памяти

#include "DHT.h" // Стандартная библиотека, подключается в меню "Скетч" -> "Подключить библиотеку" -> "Управлять..."
#define DHTTYPE DHT22 // Если используется не DHT22, надо поменять
#include <Average.h> // Источник - https://github.com/MajenkoLibraries/Average 

#define relaypin 9 // Реле  прицеплено к пину №9
#define dht22pin 5 // Датчик прицеплен к пину №5

DHT dht(dht22pin, DHTTYPE);
Average<float> ave(10); // Для усреднения последних значений с датчика создаём массив на 10 шт. float

float treshold = 72; // Процент влажности, по достижению которого включаем вентилятор

unsigned long runInterval  = 300000; // Если включаем вентилятор, то не меньше, чем на 5 минут (5 * 60 * 1'000 миллисекунд = 300'000)
unsigned long idleInterval = 120000; // Какая бы ни была влажность, после выключения даём мотору 2 минуты передышки

// unsigned long previousMillis = 0;
const long interval = 1000; // Опрашиваем датчик с перерывами в одну секунду

unsigned int i = 0; // Счётчик

void setup() {
  pinMode(relaypin, OUTPUT);
  digitalWrite(relaypin, HIGH); // По умолчанию вентилятор не работает (подключён к "N.O." - "normally open" разъёму реле)
  if (DEBUG == 1) {
    Serial.begin(9600);
    Serial.print("Starting, humidity treshold set to: ");
    Serial.print(treshold);
    Serial.println("%.");
  }
  dht.begin();
}

void loop() {
  if (DEBUG == 1) {
    Serial.print(i); i++;
    Serial.print(": ");
  }

  float t = dht.readTemperature(); // Опрашиваем датчик
  float h = dht.readHumidity();
  if (isnan(h) || isnan(t)) {
    Serial.println("Sensor error!");
    delay(interval);
    return;
  } else {
    ave.push(h); // Кладём результат измерения влажности в массив. В массиве помещается 10 измерений, новоприбывшее выталкивает самое старое.
    if (DEBUG == 1) {
      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Humidity running average: ");
      Serial.print(ave.mean());
      Serial.print(" %\t");
      Serial.print("Temp.: ");
      Serial.print(t);
      Serial.println("C");
    }

    if (ave.mean() >= treshold) { // Вычисляем "скользящее среднее" по последним 10 замерам, сравниваем его с пороговым значением
      digitalWrite(relaypin, LOW); // Если влажность высокая, врубаем вентилятор...
      if (DEBUG == 1) {
        Serial.println("Fan started.");
      }
      delay(runInterval);
      digitalWrite(relaypin, HIGH); // ...а потом даём ему остыть, какая бы ни оставалась влажность.
      if (DEBUG == 1) {
        Serial.println("Fan will cool down.");
      }
      flushData(); // После того, как мы остудили мотор, надо "прочистить" массив с замерами влажности актуальными замерами. Иначе мотор будет врубаться снова и снова.
      delay(idleInterval);
    }
  }
  delay(interval);
}

void flushData() {
  int k = 0;
  if (DEBUG == 1) {
    Serial.println("Flushing sensor readings.");
  }
  while (k < 10) {
    float t = dht.readTemperature(); // Опрашиваем датчик
    float h = dht.readHumidity();
    if (isnan(h) || isnan(t)) {
      Serial.println("Sensor error!");
      delay(interval);
      return;
    } else {
      ave.push(h); // Кладём результат измерения влажности в массив. В массиве помещается 10 измерений, новоприбывшее выталкивает самое старое.
    }
    k++;
    delay(100);
  }

}


Логика работы простая — Ардуина делает замеры влажности и вычисляет среднее из последних десяти. Если влажность превышает порог, заданный переменной «treshold», вентилятор врубается.

Чтобы не дёргать мотор часто, вентилятор врубается минимум на 5 минут. Затем, вне зависимости от того, какая влажность достигнута, мы даём вентилятору 2 минуты на то, чтобы остыть. Затем очередь из измерений прочищается, Ардуина делает новые замеры и цикл повторяется.

Для финального испытания, чтобы не устраивать «баню» лишний раз, ставим treshold в 30%. Включаем воду и убеждаемся, что всё работает как надо. Как видите по скриншоту, как только скользящее среднее превысило порог, вентилятор включился:



Возвращаем «рабочее» значение влажности в 72%, отцепляем USB-TTL адаптер и аккуратно закрываем крышку. Убеждаемся, что светодиоды не просвечивают наружу и конструкция не даёт нагрева.

Собираем всё, подметаем, радуемся:





P.S. В процессе написания кода стало понятно, что понадобится его дорабатывать летом. По скриншотам видно, что благодаря полотенцесушителю в ванной у меня под 28С. Во время летнего отключения воды температура в ванной упадёт и это повлияет на расчёт относительной влажности датчиком. Надо будет посмотреть и, возможно, переработать логику.

P.P.S. В цепь к вентилятору стоило бы поставить плавкий предохранитель, но под рукой не оказалось подходящего под такой случай крепления «на кабель». Позже куплю и поставлю.

(Всё барахло, упомянутое в обзоре, куплено в разное время на свои кровные, почему-то «халявы» даже после пары десятков тысяч, оставленных на АлиЭкспрессе, не предлагают :)
Планирую купить +144 Добавить в избранное +94 +207
+
avatar
  • lev777
  • 26 декабря 2015, 18:12
+7
Спасибо за обзор. А почему нельзя было взять готовый вентилятор с датчиком влажности? Я конечно за «рукоблудие» и сам часто так делаю)) но может есть какая то фишка интересная? ps.+ к карме за обзор))
+
avatar
  • Sanja
  • 26 декабря 2015, 18:19
+11
тут на mysku как-то был обзор готового — вскрытие показало, что китаец подключил героя обзора, DHT22 (цифровой датчик) в какую-то готовую схему регулировки частоты оборотов вместо аналогового датчика температуры. Этот «кентавр» по определению работать не мог. Я прочитал, огорчился и понял, что надо делать самому.

У меня ещё в эту же коробку выведены провода от счётчиков воды. Дойдут руки — поставлю туда Ethernet-модуль и та же самая Ардуина будет у меня учёт воды вести.

P.S. Вот, нашёл — mySKU.me/blog/china-stores/35177.html Камрад AleksPoroshin выбросил на ветер $4
+
avatar
  • tirarex
  • 26 декабря 2015, 18:26
+1
Посмотри на Esp8266, тоже может этим заниматься но уже по wifi
+
avatar
  • Sanja
  • 26 декабря 2015, 18:32
+2
у меня их парочка валяется, одну уже спалил даже ;)

WiFi многим хорош, одна закавыка — по нему питание не подведёшь. Да и нехорошо — диапазон 2,4ГГц засран так что мама не горюй — сеток 30-40 ловится. Лучше я по Ethernet — тут и питание (которое приводится к нужным 5V крохотным и грошовым адаптером), и связь.
+
avatar
  • tirarex
  • 26 декабря 2015, 20:28
0
Как его спалить то можно?
+
avatar
  • kirich
  • 26 декабря 2015, 20:30
+6
Ну, ломать не строить :)))))
+
avatar
  • Sanja
  • 26 декабря 2015, 20:34
+1
второпях подключил 5V к земле (на плате-адаптере пометки на «пузе» не продублированы, а защитных диодов нету). Мгновенно унюхал «волшебный дым» :(
+
avatar
  • tirarex
  • 26 декабря 2015, 22:36
0
Печально эти модули чувствительны к питанию, а тут целых 5в.
Удачи в опытах с есп, сам жду модуль и реле, буду делать wifi розетку.
+
avatar
  • Sanja
  • 26 декабря 2015, 22:46
0
я купил ESP-07, ESP-12 и переходники — они оказались отвратительными. Разводка под AMS1117 неправильная, не предусмотрено место под кнопки PROG и RST. И watchdog там не хватает. И диодов для защиты от переполюсовки. И места, чтобы впаять гребёнку, стыкующуюся с USB-TTL не предусмотрено. Прям хоть свою разводи…
+
avatar
  • VladSher
  • 27 декабря 2015, 07:42
+1
Разводка под AMS1117 неправильная
Разводка там правильная. Просто она не под AMS1117.
+
avatar
  • Sanja
  • 26 декабря 2015, 22:53
+11
Upd: поглядите, что нашёл! 200 руб. за такой комбайн!



Даже вкрутили фоторезистор и RGB LED, чтобы было чем «поиграться» сразу.
+
avatar
  • CROGOT
  • 26 декабря 2015, 23:08
0
ссылку бы получить на данное устройство, я грешу, что 200 рублей это не очень правильная цена такого устройства
+
avatar
  • Sanja
  • 26 декабря 2015, 23:18
0
картинка кликабельна же
+
avatar
  • tirarex
  • 26 декабря 2015, 23:18
0
Больно интересное предложение, давайте ссылку!
+
avatar
  • Sanja
  • 26 декабря 2015, 23:19
+2
Картинка кликабельна. Тут обсуждение — www.cnx-software.com/2015/12/14/3-compact-esp8266-board-includes-rgd-led-photo-resistor-buttons-and-a-usb-to-ttl-interface/

Я не удержался и заказал :)
+
avatar
+1
с тебя обзор
+
avatar
  • Surami
  • 28 апреля 2017, 08:42
0
Обзор давно есть на Муське. mySKU.me/blog/aliexpress/38586.html
+
avatar
  • ksiman
  • 26 декабря 2015, 23:36
0
Не хватает микрофона и пищалки :)
+
avatar
0
Огроменное спасибо!
+
avatar
  • vevs
  • 30 декабря 2015, 09:00
0
Прикольный бутерброд, но лично мне вот такая штучка больше понравилась.
+
avatar
  • sim31r
  • 12 декабря 2016, 14:44
0
Мне тоже такие штучки нравятся. А как нужно что-то сделать, только Ардуино применяется, так как всегда в наличии и всё про нее известно.
+
avatar
  • SAIRUS
  • 26 декабря 2015, 19:25
0
первое видео из интернетов и всё у людей работает прямо с полки магазинов (смотреть 1:06)


За рукожопство 5
за рациональность 2 )))
+
avatar
  • Sanja
  • 26 декабря 2015, 19:59
+4
нахожу готовое китайское реле влажности на Али. Читаю отзывы:
Не знаю, как тут другие пишут, что все отлично работает — не дай Бог им погореть установив этот модуль с какой-нибудь 220В нагрузкой. Подстройка достаточно резкая, а сам модуль и датчик аналоговые. Нужна резкая смена влажности, чтобы этот модуль четко включился/выключился, но такого в жизни не бывает. В результате, при перемене влажности реле колеблется между включенным и не включенным, что быстро приводит к нагарам, порче нагрузки и пожару! Повторюсь! НИ В КОЕМ СЛУЧАЕ не используйте это устройство в быту (к примеру, для управления вытяжкой)
Не, мне спокойнее с моим самодельным.
+
avatar
  • Buzzard
  • 26 декабря 2015, 20:14
+3
нахожу готовое китайское реле влажности на Али
При чем здесь реле? На видео говориться о готовой вытяжке с таймером и датчиком влажности
+
avatar
  • SAIRUS
  • 26 декабря 2015, 20:17
+4
кто про китай говорит в оффлайне есть модификации вентиляторов с датчиком влажности всё работает и гарантия есть

Не, мне спокойнее с моим самодельным..
watchdog в проекте использовали ?))
коробки у вас конечно-же с пылевлагозащитой и плата залита кампаундом для водонепроницаемости?))
+
avatar
  • Buzzard
  • 26 декабря 2015, 20:20
-1
Там все герметично
+
avatar
  • Sanja
  • 26 декабря 2015, 20:28
+1
Uno применялась для отладки. В проекте используется Micro, залитая лаком. Зона со стиральной машиной и розетками отделена от ванной выступом стены, до ближайшего источника воды по стене — 5м. Так что единственный шанс быть залитой у платы — это чтобы в ванной случился потоп глубиной в метр двадцать. Только у меня трап в полу :)
+
avatar
  • SAIRUS
  • 26 декабря 2015, 21:01
+1
watchdog в проекте использовали?
+
avatar
  • Sanja
  • 26 декабря 2015, 20:25
0
Меня немношк не устроила цена единственного в «Леруа» варианта вентилятора с датчиком:



У OBI есть единственный вариант, но по факту его нет в продаже нигде: www.obi.ru/decom/product/%D0%92%D0%B5%D0%BD%D1%82%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BE%D1%81%D0%B5%D0%B2%D0%BE%D0%B9_Dospel_PLAY_100_%D0%BC%D0%BC/3354321&position=1&pageNum=1&pageSize=72
+
avatar
  • Buzzard
  • 26 декабря 2015, 20:42
+1
На Ходынке аж 27 шт.

Спасибо за «наводку». Заказал, завтра поеду забирать.
+
avatar
  • Sanja
  • 26 декабря 2015, 20:44
0
вы единственный отзыв прочтите )))
+
avatar
  • Buzzard
  • 26 декабря 2015, 20:52
0
Один отрицательный отзыв не показатель.

Завтра поеду, посмотрю…
+
avatar
  • Serj_I
  • 26 декабря 2015, 21:37
0
Покупал аналогичный. Датчик влажности в них не работает так как надо(алгоритм его включения и выключения ни как не связан с влажностью). Да и по конструкции там где установлен этот датчик он не может правильно измерять влажность. В конечном итоге поставил кнопку и отключение по таймеру.
+
avatar
  • Buzzard
  • 26 декабря 2015, 21:50
0
Покупал аналогичный
аналогичный Польский или Китайский?
Я думаю крупный магазин не станет писать фэйки в описании товара.
Я в начале года покупал на кухню Польскую вытяжку(над плитой) с двумя моторами, меня тоже цена смутила (дешевле в 1,5 раза брендов). Однако оказался отличный аппарат.
+
avatar
  • Serj_I
  • 26 декабря 2015, 22:37
0
аналогичный Польский или Китайский?
ВЕНТС

фэйки в описании товара
А я и не писал про фейки в описании товара. Купленный вентилятор как и было заявлено с датчиком влажности, только этот датчик не работает (Датчик меряет все что угодно но только не влажность).
+
avatar
  • Buzzard
  • 26 декабря 2015, 23:07
0
ВЕНТС – мировой лидер вентиляционного производства.
Не нашел в своем регионе продавцов. У них на Украине производство, насколько я понял.
Вы где брали?
+
avatar
  • Serj_I
  • 26 декабря 2015, 23:17
0
Вы где брали?
В Леруа.
+
avatar
  • Buzzard
  • 26 декабря 2015, 23:22
0
Этот или этот?
+
avatar
  • Serj_I
  • 26 декабря 2015, 23:23
0
Не такие. у меня с датчиком влажности и таймером. больше похож на первый
+
avatar
  • Buzzard
  • 26 декабря 2015, 23:28
0
Вот блин, пораньше бы этот обзор. Только сегодня утром в Леруа мотался.
+
avatar
  • Brim
  • 26 декабря 2015, 22:53
0
Это чего-то совсем перебор. За 500 рублей с датчиком влажности, конечно, не найдешь, но в 2 раза дешевле вашего варианта:

+
avatar
  • Buzzard
  • 26 декабря 2015, 23:09
0
Вы хоть ссылку на магазин давайте, что толку от скрина
+
avatar
  • Brim
  • 27 декабря 2015, 06:24
0
Обвинят же в рекламе за ссылку :)
Специально показал только название модели.

Во так наверное можно: yandex.ru/search/?lr=213&text=vq100th :)
+
avatar
  • Brim
  • 27 декабря 2015, 06:34
0
А вот, кстати, в Леруа есть вообще за 1428 рублей — leroymerlin.ru/catalogue/elektrotovary/klimaticheskie_sistemy/ventilyatory_vytyagnye/14335397/
Или за 2028 с претензией на дизайн — leroymerlin.ru/catalogue/elektrotovary/klimaticheskie_sistemy/ventilyatory_vytyagnye/14335400/

Правда оба намного более шумные, чем Вентс.
+
avatar
  • Serj_I
  • 26 декабря 2015, 23:19
0
Выше посмотрите. Я брал этой фирмы. Так и не смог настроить датчик влажности.
+
avatar
  • Buzzard
  • 26 декабря 2015, 23:23
0
Да я видел что эта фирма. У них там моделей пропасть! Вы какую модель брали?
+
avatar
  • Serj_I
  • 26 декабря 2015, 23:24
0
Давно было уже не помню.
+
avatar
  • Brim
  • 27 декабря 2015, 06:44
0
А Вы к производителю обращались? По гарантии меняли и проблема сохранялась?

Или вывод о всех вентиляторах с датчиком влажности сделан по одному, вероятно бракованному, экземпляру?

Просто если бы вентиляторы с датчиком влажности выпускал только Вентс, можно было поверить в маркетинговый обман. Но выше дал ссылки и на польские модели.

И их же довольно много:
Blauberg Sileo 100 H бесшумный вентилятор с датчиком влажности, тамером и обратным клапаном

Soler & Palau SILENT-100 CHZ DESIGN вентилятор с таймером, датчиком влажности, обратным клапаном

Electrolux EAF-150TН бытовой вытяжной вентилятор с таймером и датчиком влажности.
+
avatar
  • rentast
  • 08 января 2016, 17:56
0
он же в леруа leroymerlin.ru/catalogue/elektrotovary/klimaticheskie_sistemy/ventilyatory_vytyagnye/14333367/ 1880 руб.
а вот почему выключатель не встраивают в вентиляторы, может в определенное время я хочу эффект бани?
+
avatar
  • Brim
  • 08 января 2016, 18:02
0
Есть вентиляторы с выключателем — веревочкой (не помню как это правильно называется).
Обычный выключатель на нем не сделать — вентилятор же обычно под потолком.
Поэтому подключаете как нравится — хотите со светом, хотите отдельным выключателем, хотите с плавной регулировкой оборотов.
+
avatar
  • rentast
  • 08 января 2016, 20:35
0
Не правильную я ссылку привёл, он без датчика влажности.
У меня потолки 2,5 метров, я рукой до вентиляции достаю, можно и выключатель врезать, видел модели со шнурковым выключателем но все 35 Дб, вот только будет ли комфортно принимать ванну при 35дб?
+
avatar
  • Brim
  • 08 января 2016, 21:10
0
А Вы погуглите «Вентилятор VENTS 100 Квайт B бесшумный с обратным клапаном и шнурком». Я вон его вижу по 1350 рублей.
+
avatar
0
У меня плата управления от вентилятора (с таймером и датчиком влажности) — уже на втором похожем стоит. Никаких пожаров (землетрясений, эпидемий, резкого переключения) не наблюдается.
+
avatar
+1
А как ты предлагаешь его засунуть в уже готовую квартиру, где стоит внутриканальный вентилятор? Собственно и не в готовую такой конструктив не всегда вписывается.
+
avatar
  • Polyus
  • 27 декабря 2015, 20:47
+1
Два года назад сделал подобную схему. Использовал вентилятор Вентс на 12 VDC, т.к. вытяжка находится над ванной, недалеко от душа. Вторичную обмотку трансформатора не заземлял. В цепи 12 VDC использовал автомобильный предохранитель с разъемом на кабель.
Датчик разместил под потолком, в метре от вентилятора. Ардуину спрятал под потолком. Питание 220 VAC вывел на выключатель снаружи ванной комнаты.
Программу сделал несколько другую. При включении выключателя происходит включение вентилятора на 2 минуты. Затем если влажность повышенная, то вентилятор не отключается. Для управления вентилятором при изменении влажности использовал гистерезис. Включение происходит при превышении максимальной уставки, выключение — при понижении до минимальной уставки. Использовал минимальное время операции — одну минуту.
Так же недавно поставил счетчики с импульсным выводом. В планах сделать передачу показаний в управляющую компанию через сайт, но нужно разбираться как это сделать. Пока купил GPRS Shield для arduino, реализую отправку показаний по SMS, благо такая возможность есть. Планирую сделать следующим образом: 25 числа arduino отправляет отчет на мой номер телефона с показаниями, потребленным объемом воды и стоимостью. После подтвержнения с моего телефона arduino отправляет показания счетчиков в управляющую компанию. Для обеспечения бесперебойной работы планирую использовать powerbank.
В планах добавить в arduino контроль протечек.
+
avatar
  • Sanja
  • 29 декабря 2015, 16:09
0
Передавать на сайт УК — это перебор. Хотелось бы просто освобождения от необходимости снимать экран, искать фонарик и т.д.
+
avatar
0
Датчик DHT-22 весьма неплох, температурная компенсация там есть, так что влажность он и зимой и летом показывает корректно. А вот более метра в даташите провода делать до него не рекомендовано. Для задачи автора ардуина это все же оверкилл. Attiny10 было бы вполне достаточно, у меня Attiny13 читает такой датчик и отсылает результат по радио, типа метеостанция, и еще места в памяти осталось, несмотря на говнокод.
+
avatar
  • Sanja
  • 26 декабря 2015, 18:46
+3
Покажите, как вы с килобайтом памяти Attiny13 будете работать с массивом float'ов? У меня без отладочных сообщений код всё равно 5 килобайт занимает.

Впрочем, при цене Ардуин Мини в сто рублей споры «ардуина или тинька» стремительно теряют смысл. Что в ящике стола валяется, то и ставим.
+
avatar
0
За сто рублей соглашусь, но тинька стоит 50. Массив флоатов? Unsigned char! Кроме всего прочего в вашем случае абсолютно не важно, включится вытяжка при 90% влажности или при 92. Высчитывание среднего по десяти измерениям это как-то слишком, хотя если хочется, то почему нет.
+
avatar
  • Sanja
  • 26 декабря 2015, 19:03
+3
Я просто нагуглил первую попавшуюся на GitHub библиотеку для вычисления running average и использовал. От программирования конверсий float -> int -> char в Ардуине у меня всегда заболевает голова, в плане писанины кода на Си я «ненастоящий сварщик». Так что 50 руб. сверху в обмен на лишнюю память и свободу использовать готовые библиотеки — выгодный обмен.
+
avatar
+2
Надо просто делать не 10 измерений, а 8 или 16. Суммировать INT показания. А потом делить на 8 или 16. Это по факту битовый сдвиг. И все.

Но я тоже за простоту при однократном выполнении.
+
avatar
0
del
+
avatar
  • notemp
  • 27 декабря 2015, 01:27
0
Автор использует более подходящее в данном случае скользящее среднее. Может есть способ его подсчета с оптимизацией по памяти, но хранение массива значений кажется самым простым в данном случае.
+
avatar
0
Да, я уже понял про скользящее (и удалил предыдущий пост) )
+
avatar
+1
А зачем везде совать float? Мясо для стейков тоже с точностью в 0.001 мм отрезать?
Работаем с чем? С АЦП/процентами. Вполне себе конечные числа, всё прекрасно в них делается. Надо с точностью до десятых? Умножаем на 10, при выводе десятичную точку перед последним знаком вывести, главное смотреть дабы за -32768...+32767 для целых со знаком или за 0...+65535 для беззнаковых не вылезать. В крайнем случае можно до long расширится.
Но float на микроконтроллере? Это только от очень большой нужды может потребоваться.
+
avatar
  • Sanja
  • 27 декабря 2015, 02:38
0
библиотека заточена под float. Можно переписать и взять МК подешевле на аж целый полтинник, а можно решить, что время в выходной потраченное стоит дороже :)
+
avatar
  • Dimon_
  • 27 декабря 2015, 11:44
0
Датчик DHT-22 весьма неплох, температурная компенсация там есть, так что влажность он и зимой и летом показывает корректно.
Я так тоже думал, пока не купил и не подключил к одной ардуине одновременно три DHT-22, расположив их рядом друг с другом.
Так вот, они показывают не влажность. Возможно, они показывают погоду на Марсе. Или настроение председателя компартии Китая, я не в курсе.
Разброс в 30% — это как с куста. Чего не скажешь о температуре, там довольно точно.
Для себя определился с методом: покупать их сразу штук пять и отбирать пару с более-менее совпадающими цифрами. И условно считать, что они показывают примерно правду. Хотя лучше смотреть всё-таки в сторону специализированных датчиков.
+
avatar
0
Вероятно, мне попадались неплохие, во всяком случае ±10% с советским гигрометром показания совпадали.
+
avatar
  • VladSher
  • 27 декабря 2015, 14:51
0
У меня тоже проблем с DHT22 не было. Температура вообще идеально. +-0.1 по поверенному ртутному термометру. Влажность несколько рядом расположенных датчиков тоже показывали одинаково. С поверенным гигрометром сравнить не мог, потому что у поверенного точность +- трамвайная остановка и диапазон узкий.
Но разрешающая способность DHT22 просто поражает. Легко чувствует дыхание стоящего рядом человека.
+
avatar
  • reedcat
  • 26 декабря 2015, 18:31
0
По идее, DHT делает расчет влажности по текущей температуре (он не зря «двойной»), т.е. допиливать летом ничего не потребуется.
Единственно что, 90% для включения это over дофига, я бы начинал сушить при 75%. При таком сочетании температуры и влажности плесень будет расти буйным цветом.
+
avatar
  • Sanja
  • 26 декабря 2015, 18:34
0
Дом строили при Николашке, он сухой, без затхлости, вентиляция отличная. Просто нужен небольшой толчок в редкие моменты, когда из-за горячего душа приключилась «парилка».
+
avatar
  • Sanja
  • 26 декабря 2015, 20:00
0
Слушайте, вы правы насчёт 90%. Не знаю, почему у меня по результатам «пристрелки» в голове отложилось именно это значение. Ещё раз погонял, 72% — гораздо оптимальнее.
+
avatar
  • dia
  • 26 декабря 2015, 18:45
+4
Собрал эту...http___://cxem.net/house/1-374.php
Алгоритм мудреный на первый взгляд, но влажность отслеживает четко…
Может нужно кому…
+
avatar
  • Sanja
  • 26 декабря 2015, 18:48
0
Что-то это прямо overkill. Но всё равно снимаю шляпу.
+
avatar
  • Mark
  • 26 декабря 2015, 19:23
+2
Плюсанул… За рукоблудие))
А можно дополнить обзор, схемами подключения — подробными, что куда паять… Чтобы люди далекие от такого рукоблудия сами могли сделать?))) Я например… Давно уже тоже хочу такой в душ…
+
avatar
  • Sanja
  • 26 декабря 2015, 20:07
+2
Схему рисовать не о чем.

Есть реле, оно по команде замыкает силовой провод. Т.е. просто ставим его в разрыв цепи 220 вольт питания вентилятора.

На входе у реле 3 контакта — плюс, минус и управляющий. У датчика тоже 3 ноги — плюс, минус и сигнальный.

Плюсы и минусы реле, датчика и ардуины подключаем к адаптеру, переделанному из зарядника Нокии. Сигнальный провод от датчика припаиваем к контакту Ардуины номер пять. Сигнальный провод реле — к контакту номер девять.

Для того, чтобы залить программу в Ардуину, надо переходник и 4 провода. Но можно взять другую ардуину, чуть подороже — модель «Arduino Pro Micro (5 вольт 16 мегагерц)». У неё есть Micro USB, можно цеплять к компьютеру напрямую, без лишних проводков и адаптеров.

+
avatar
+1
Поддерживаю просьбу!
+
avatar
  • bm_s
  • 26 декабря 2015, 19:24
0
Впечатлен! Что значит руки по месту приделаны!
+
avatar
  • since88
  • 26 декабря 2015, 19:44
0
Кто то брал ещё готовое реле с датчиком рабочие, а то с ардуинкой это для меня тёмный лес))
+
avatar
  • olmer
  • 26 декабря 2015, 20:02
0
Навскидку, я бы:
— не ставил датчик прямо в поток воздуха. Обычно в вентиляторах есть место для датчика под крышкой;
— защитил датчик от пыли, т.к. он обязательно забьётся ею и перестанет работать. Самое просто, обернуть чем-то, да хоть салфеткой;
— коммутацию вентилятора сделал на симисторе — тише, в разы меньше места занимает и не залипнут контакты.
Влияние температуры на точность измерения влажности не так велико как кажется, так что я бы не заморачивался этим.
+
avatar
  • Sanja
  • 26 декабря 2015, 20:43
0
Мне жалко было туда пихать симисторый Omron. Тот и от 3.3 вольт питаться может, я его оставлю — играться с ESP8266.

Клацанья реле внутри распайки не слышно совсем, так что не проблема. Датчик, так уж и быть, оберну — но судя по чистоте вентилятора и сетки за полгода простоя — проблема преувеличена. Чисто у меня дома, ламинат, крашеные стены и наличие моющего пылесоса решают :)

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

Про влияние температуры — я понимаю, что датчик с термокомпенсацией. Я про то, что влажность при 28С и при 18С может восприниматься по-разному и может понадобиться корректировка.
+
avatar
  • mVlad77
  • 26 декабря 2015, 20:06
+1
Позвольте внести полезную идею: при подаче питания на модуль включать вентилятор на 5 минут вне зависимости от влажности.

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

Следующая мысль связана с датчиком освещенности. Как только включается свет в ванной/туалете стоит начать отсчет и через 3 минуты принудительно включить вентилятор пока свет не погаснет (с перерывами, если есть опасность перегрева вентилятора) + еще пара минут после выключения света.
+
avatar
  • Sanja
  • 26 декабря 2015, 20:16
0
Я не предусмотрел в стене стакан под установку выключателя. Впрочем, и пассивная вентиляция у меня справляется, вытяжка нужна только для того, чтобы побыстрее убрать влажность.

Если будет ставить курильщик, то да — выносная кнопка понадобится.
+
avatar
  • kirich
  • 26 декабря 2015, 20:11
+4
1. Датчик в потоке воздуха — смерть датчику.
2. Скорость я так понимаю одна? Лучше две.

Все никак не сделаю обзор, где 2 скорости и без всяких ардуин.
+
avatar
  • Sanja
  • 26 декабря 2015, 20:18
0
Я посмотрел, сколько у меня пыли на сеточке вентилятора через полгода после установки — кот наплакал. Так что за его судьбу не беспокоюсь.

«Скоростей» у меня две — пассивная тяга отличная, вентилятор её просто разгонять поставлен изредка.
+
avatar
  • kirich
  • 26 декабря 2015, 20:27
+2
«Скоростей» у меня две — пассивная тяга отличная, вентилятор её просто разгонять поставлен изредка.
Я специально делал две скорости. Большая настроена когда совсем влажно, вентилятор шумит на ней прилично, а чтобы помыться хватает и первой.
Вернее когда моешься, то влажность не успевает подняться до включения второй и не так шумит.
Да и пассивная тяга дело такое, сегодня аж гудит, а завтра вообще еле дует :(

Я посмотрел, сколько у меня пыли на сеточке вентилятора через полгода после установки — кот наплакал.
Датчик не сеточка, его не помоешь.
+
avatar
  • olmer
  • 26 декабря 2015, 22:00
0
Да, по доке запрещено платы даже мыть после установки датчика. Но вот недавно покрывал изготовленную плату с SHT20 лаком (Пластик 70)и, несмотря на все предосторожности и заклеивание датчика, в него попал лак… Тут же давай промывать его изопропилом, дистиллятом… Думал уже всё, капец ему, но… нет. датчик выжил. Было два датчика из одной партии, так что после сушки проверил показания — практически одинаковые.
Конечно же, это не руководство к действию.
+
avatar
  • Arm100
  • 26 декабря 2015, 20:18
0
мы бы с удовольствием посмотрели…
+
avatar
  • kirich
  • 26 декабря 2015, 20:29
+4
У меня недавно умер датчик, через 6 лет работы, наверное куплю, и буду обзор пилить.
+
avatar
  • detrin
  • 26 декабря 2015, 21:53
+1
Авансом лайкнул. Буду ждать))
+
avatar
  • Pash80
  • 27 декабря 2015, 00:00
+1
сделайте обзор обязательно!
+
avatar
0
Я советую автору покрыть плату ардуины и плату реле цапон-лаком или чем-то а алогичным. Иначе в ванной комнате платы долго не протянут…
+
avatar
  • kirich
  • 26 декабря 2015, 20:27
0
Для ванной лучше всего Уретан.
+
avatar
  • Sanja
  • 26 декабря 2015, 20:29
+2
Так уже.
+
avatar
  • REW_134
  • 26 декабря 2015, 20:50
0
А подскажите, реле времени для отсрочки выключения вентилятора, пожалуйста.
+
avatar
+1
DHT22 не очень хорош. с ростом температуры, влажность начинает безбожно врать. Советую присмотеться к HTU21D или к его брату близнецу Si7021 (советую Si7021 тк есть защитная противопыльная накладка на датчик). По ссылке найдете отличную библиотеку раскрывающую весть потенциал этих крох. Ссылка
+
avatar
  • detrin
  • 26 декабря 2015, 21:55
0
Автор, огласите, пожалуйста весь бюджет. Чтобы понять, насколько выгодно самому такому рукоделить, по сравнению с готовым заводским решением.
+
avatar
  • Sanja
  • 26 декабря 2015, 22:16
+2
Arduino ProMicro (чтобы с USB сразу была) — 215 руб. Или дешевле ProMini (107 руб) и
адаптер (45 руб)

Реле лучше твердотельное (у меня было обычное) — 136 руб.

Зарядка от Нокии — 100 руб. на Авито. Провода, припой, клей, лак — на сдачу.
+
avatar
  • batal
  • 26 декабря 2015, 22:17
0
Вроде прочитал два раза, но так и не нашел упоминания чем питается ардуинка (можно сразу ссылкой) :)
+
avatar
  • Sanja
  • 26 декабря 2015, 22:30
+1
но сейчас ограничился раздербаниванием старого заслуженного зарядного устройства Nokia на 5V и 300mA. Чтобы оно поместилось в распаячную коробку, переставил его из родного корпуса в коробочку из-под телефонной розетки, напаял выводы и зафиксировал термоклеем
Я разломал Nokia AC-3. C ним есть только одна особенность — абсолютно без нагрузки оно выдаёт восемь вольт, но при подключении Ардуины напряжение выходит на штатные 5V. Ну и для разбора нужна «нокиевская» трёхгранная отвёртка.
+
avatar
  • anni
  • 26 декабря 2015, 23:37
0
Хорошая вещица! Надо прикупить такую… Спасибо за обзор)
+
avatar
  • knn724
  • 26 декабря 2015, 23:50
+3
leroymerlin.ru/catalogue/elektrotovary/klimaticheskie_sistemy/ventilyatory_vytyagnye/14335397/
Вот такой вентилятор покупал в начале 2014 года, за 950 руб. Отрегулировал как мне надо влажность и таймер, работает почти 2 года. Вещь качественно сделана и не дорого (Польша). Очень советую и без всяких «колхозов» и самоделок.
+
avatar
  • achkov
  • 27 декабря 2015, 00:41
0
на ALI подобного никто не встречал?
+
avatar
0
Потолок рукожопы делали, проклейте отверстия, иначе 100% разойдётся.
+
avatar
  • achkov
  • 27 декабря 2015, 00:10
0
1) я так понимаю, вентилятор включается во время принятия душа? может стоило добавить датчик освещения (включение вытяжки после отключения освещения) или через оптопару с лампочек взять сигнал. 2) вентиляция это хорошо, но чтобы воздух выходил в вент камеру, надо что бы он откуда-то поступал… если двери плотные то смысл теряется. Возможно необходимо установить вентиляционную решетку на дверь.
Автору в любом случае большой плюс. Сам давно собирался делать нечто подобное тоже на Аурдино(досталась плесень от предыдущих владельцев квартиры), заказал компоненты, только у меня немного все сложнее: вытяжка идет сначала транзитом через туалет а потом уже в вент канал.
+
avatar
  • ksiman
  • 27 декабря 2015, 00:17
+2
Под дверью ванной комнаты специально делают щель для притока воздуха
+
avatar
  • SAIRUS
  • 27 декабря 2015, 00:29
0
Под дверью ванной комнаты специально делают щель для притока воздуха
Есть более изящное решение
+
avatar
  • ksiman
  • 27 декабря 2015, 00:45
0
Принцип тот-же
+
avatar
  • Sanja
  • 27 декабря 2015, 02:39
0
у меня проще — в ванной есть дверца для котов 20*20
+
avatar
  • Deema
  • 27 декабря 2015, 02:56
0
Коты любят ходить принимать душ?
+
avatar
  • Brim
  • 27 декабря 2015, 06:46
0
Да лоток скорее всего стоит в ванной. Так что коты любят ходить в уборную :)
+
avatar
  • Sanja
  • 27 декабря 2015, 11:05
+2
Любят ходить лечить сушняк:





(план переставить лоток в ванную был, да не сложилось)
+
avatar
0
А воду они себе сами включают? :) У меня так и не научился пока, так что смысла в дверце особо не вижу, ведь так и так включать идти
+
avatar
  • sav13
  • 27 декабря 2015, 08:14
+2
Поставьте вместо порога 72% влажности — увеличение влажности на 1-2% за маленькое время.
И тогда вам не нужно будет порог изменять летом, осенью и т.д.
Выключение происходит либо по времени, либо нужно запоминать изменение влажности до повышения.
Ну и датчик освещенности, как советовали выше.
Еще не помешает железная кнопка включить/выключить.
Посмотрите, здесь подобный проект делал.
Два года крутится, как часы
+
avatar
  • kams
  • 27 декабря 2015, 10:03
0
Я для себя остановился на таком варианте:
vents.ua/item/1101/BU-1-60/
Это готовый контроллер BU-1-60, у которого есть датчики влажности, присутствия (PIR), освещения, и он может настраиваться для работы по этим датчикам с регулировкой порогов. Купил в интернет-магазине.
+
avatar
  • akaba
  • 27 декабря 2015, 16:08
+1
За рукоблудие 10 баллов
За смысл 1
Кроме влажности вытяжка должна устранять ещё и запахи
Поэтому самый простой и эффективный вариант включение и выключение от веревочки и таймер
Все остальное ненужная и нерабочая ерунда
Имхо
+
avatar
  • Sanja
  • 27 декабря 2015, 19:08
0
Изю не надо нюхать, Изю надо учить ©

У меня в ванной нет запахов. Пассивная тяга справляется.
+
avatar
  • Chaosito
  • 28 декабря 2015, 19:37
0
По поводу кримпера (или как его), где найти коннекторы которые им обжимать, на али к примеру, как они называются чтоб в поиске вбить?
+
avatar
  • Sanja
  • 29 декабря 2015, 16:07
+2
dupont pins. «Мамы», «папы» и пластиковые корпуса на нужное число секций продаются разными лотами.

Выглядят так (они продаются на лентах):





Обжималку брал тут — aliexpress.com/item/SN-28B-Pin-Crimping-Tool-2-54mm-3-96mm-28-18AWG-Crimper-0-1-1-0mm2/32383094433.html
+
avatar
0
Благодарю! Название конечно странноватое Dupont… А сама лента я так понимаю не нужна, только для производства/транспортировки далее в утиль?

С этими штуками можно аккуратные модульные самоделки лепить :)
+
avatar
0
Названы так по названию фирмы, которая их изобрела и запатентовала.
+
avatar
0
За ссылку спасибо, но цена ахтунг. Это нужно часто применять такие штуки чтобы обжималку покупать.
+
avatar
  • vevs
  • 30 декабря 2015, 09:08
0
Хм… А если дополнить схему MQ-сенсором… :)
+
avatar
0
А чем вы шили ардуину в ванной? Планшет с виндой?