Мой погреб под гаражом держал лето ровно, а один август всё же дожал: пара банок вздулась, картофель дал ростки в полной темноте, на крышке люка каждое утро лежали капли. Датчик показывал девяносто два процента при плюс четырёх. Норма хранения — шестьдесят-восемьдесят процентов: ниже картофель вянет, выше просыпается плесень и ржавеют крышки. Девяносто два — уже не хранилище, а камера для испытаний банок на герметичность, и молчать дальше было нельзя.
Второй факт, который касается любого подвала: влажность живёт полосами, а не одним числом. У двери при проветривании — на пять-десять процентов ниже, чем в центре стеллажей; под потолком суше, у пола сырее. Практика хранилищ честно требует двух точек: одна в центре зоны хранения, вторая у входа, где воздух меняется первым, — а судить по двум сенсорам умеет урок про медианную выборку. И ещё: в подвалах влажность регулярно доходит до ста процентов, роса там не происшествие, а режим.
Соберём автоматику: DHT22 на пине 2, реле на пине 7 включает осушитель, светодиод на пине 12 дублирует его работу. Порог включения — восемьдесят процентов, выключения — семьдесят пять: коридор в пять процентов шире шума сенсора и не даёт реле жить в режиме трамвайного звонка. Сверху — счётчик циклов за сезон и зимняя блокировка по температуре. Подвальная тема в целом — со средними по чтениям и полками — разбирается отдельно, здесь же автоматика конкретного прибора с его пусковыми привычками.
Порог 80 % и почему не 60
Почему включаем именно на восьмидесяти, а не на шестидесяти. Хранение — не комфорт: при сорока процентах картофель и морковь вянут, при девяноста пяти на стенах цветёт плесень, а банки ржавеют по ободу. Коридор хранения — шестьдесят-восемьдесят, и внутри него осушителю делать нечего: каждый час его работы сушит воздух ниже нормы и жжёт электричество впустую. Включаем на восьмидесяти, выключаем на семидесяти пяти — правая граница коридора с запасом, чтобы прибор не гнал воду против нормы. Отсюда и правило запаса: порог включения ставят на пять процентов выше верхней границы нормы, чтобы работа начиналась до плесневой черты, а не после неё.
Проценты, впрочем, язык посредника: при плюс четырёх восемьдесят процентов — это совсем мало воды в граммах, чем те же проценты при плюс двадцати. Точная работа с влагой идёт через точку росы, как разобрано в уроке про осушение по точке росы. Автоматике погреба проценты всё же хватает: температура там стабильна весь сезон, и порог восемьдесят держит воздух в паре градусов от росы, не давая ей выпасть на банках. Проверить себя просто: посчитайте точку росы от своих показаний и убедитесь, что до конденсата на банках остаётся пара градусов — это и есть здоровый зазор автоматики.
Осушитель тоже не безразличен к холоду. Компрессорные машины на плюс трёх-пяти обмерзают: испаритель холоднее воздуха, конденсат на нём замерзает, производительность падает почти до нуля — адсорбционные в этом коридоре работают честно. Дешёвая альтернатива прибору — вытяжной вентилятор, выгоняющий сырой воздух на улицу, когда она суше; его автоматика разобрана в уроке про вентилятор-вытяжку. Реле из этого урока коммутирует розетку прибора; если осушитель тянет больше половины киловатта, ставьте промежуточный контактор — плате модуля такая нагрузка не по зубам.
Гистерезис 5 % против щёлканья
Наивный порог выглядит так: влажность выше восьмидесяти — включили, ниже — выключили. С шумом DHT22 в полпроцента-процент такие качели кончаются предсказуемо: сенсор дал восемьдесят ноль один — старт, через две секунды семьдесят девять девять — стоп, и так по кругу. Моя наивная версия отработала один вечер и семнадцать переключений, после чего я впервые услышал треск реле не из учебника. Реле живут десять тысяч переключений по паспорту, а компрессор осушителя повторный пуск без паузы не прощает: самый тяжёлый для него режим — старт под давлением, поэтому производитель требует паузы в три-пять минут. Механику окна с двумя порогами мы разбирали в уроке про клацанье реле.
Гистерезис на пять процентов развязывает решение и шум. Код — два независимых условия: выше восьмидесяти — в сушку, ниже семидесяти пяти — из сушки, между ними — состояние без изменений. Чтобы реле не щёлкало и на краях коридора от дрожи десятых, в скетч добавлена минимальная пауза между переключениями — три минуты через millis, а голоса тревоги, если они вам нужны, — тема отдельного урока про зуммер и пороги; в погребе я оставил тишину: гул компрессора — уже уведомление.
Счётчик циклов — моя любимая строка в этом скетче. Исправный погреб глубиной в два метра даёт осушителю десятки стартов за сезон; если за одну неделю счётчик вырос на треть от всего прошлого сезона, что-то изменилось: приоткрылась вентиляционная труба, поднялись грунтовые воды, лопнул жёлоб над люком. Пишу я его в энергонезависимую память при каждом старте, как в уроке про счётчик включений, — перезапуск платы статистику не стирает.
#include <DHT.h> DHT dht(2, DHT22); const int PIN_RELAY = 7; // осушитель через модуль релеconst int PIN_LED = 12; // дублирует работу осушителя const float RH_ON = 80.0; // выше — старт осушителяconst float RH_OFF = 75.0; // ниже — стоп, коридор 5 %const float T_FREEZE = 2.0; // холоднее — осушителю молчатьconst unsigned long MIN_PAUSE = 180000; // пауза между переключениями, 3 мин bool drying = false;int cycles = 0;unsigned long lastSwitch = 0; void setup() { Serial.begin(9600); pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, LOW); pinMode(PIN_LED, OUTPUT); dht.begin(); Serial.println("h | t | sushka | cycles");} void loop() { delay(2000); // темп датчика, не погреба float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("chtenie sorvalos, reshenie ne menjajem"); return; } bool wantOn = drying; if (h >= RH_ON) wantOn = true; if (h <= RH_OFF) wantOn = false; if (t < T_FREEZE) wantOn = false; // зимняя блокировка сильнее порога if (wantOn != drying) { if (millis() - lastSwitch < MIN_PAUSE) { Serial.println("pauza mezhdu puskami, zhdem"); } else { drying = wantOn; lastSwitch = millis(); if (drying) { cycles = cycles + 1; // тут же пишем cycles в EEPROM Serial.print("start osushitelya, cycles="); Serial.println(cycles); } else { Serial.println("stop osushitelya"); } } } digitalWrite(PIN_RELAY, drying ? HIGH : LOW); digitalWrite(PIN_LED, drying ? HIGH : LOW); Serial.print("h="); Serial.print(h, 0); Serial.print(" t="); Serial.print(t, 1); Serial.print(" sushka="); Serial.print(drying ? "ON" : "off"); Serial.print(" cycles="); Serial.println(cycles);}В симуляторе проживаются оба края коридора. Тащите влажность за восемьдесят — реле щёлкает, светодиод зажигается, в логе появляется start со свежим номером цикла. Теперь играйте в полосе семьдесят пять-восемьдесят: состояние замирает, сколько бы ни дрожали десятые, — это и есть работа гистерезиса, которую на реальном приборе слышно как отсутствие щелчков. Пауза в три минуты в симуляторе тоже честная: быстрые щелчки ползунком вверх-вниз не заставят реле стучать чаще, чем раз в три минуты.
На живом погребе первое включение проверьте с лампой вместо осушителя: реле должно держать нагрузку и не греться. Бак прибора за сезон собирает десятки литров — дренажный шланг в сток избавляет от утренних путешествий к бачку. И проверьте сам монтаж: коробки реле любят собирать пыль на плате, а пыль во влажном погребе ведёт ток по дорожкам — продувка раз в сезон обязательна. И следите за счётчиком осенью: пик сырости приходит в августе-сентябре, когда земля ещё тёплая, а погода уже холодная, — тогда циклы сыплются пачками, и это норма сезона, а не поломка.
| Условия | Реле осушителя | Почему так |
|---|---|---|
| h 92 %, t +4 °C | вкл | запас к росе кончился, сушим до 75 % |
| h 78 %, t +4 °C | как было | внутри коридора 75-80 решение не меняется |
| h 71 %, t +4 °C | выкл | норма хранения достигнута, экономим ресурс прибора |
| h 85 %, t +1 °C | выкл, блокировка | конденсат в приборе замёрзнет, холодный пуск ломает компрессор |
Журнал сезона и что дальше
Цифры без журнала забываются к утру. Serial-лог с влажностью, температурой и номером цикла — половина дела; вторая — чтобы он писался сам, когда вас нет: SD-карта с отметкой времени и ротацией файлов разобрана в уроке про метеологгер. По журналу за сезон видно, когда погреб дышит сам, а когда осушитель тянет лямку, — и это лучшая карта для поиска сырости в конструкции. Бумажный журнал тоже работает, если вы ходите вниз ежедневно, — но честнее признать, что ходим мы туда реже, чем пишем.
И про тишину: зуммер в погребе нужен ровно одному сценарию — влажность за девяносто при работающем осушителе дольше часа означает, что прибор не справляется или бак полон. Такой сценарий и его голоса — в уроке про зуммер и пороги. Остальные новости отлично видны по счётчику и журналу, когда вы сами пришли к стеллажам.
Следующая ступень — дельта двух датчиков на экране в гараже над люком: перекос центра и двери больше пяти процентов — вентиляция простаивает. Экран в гараже часто оказывается полезнее телефона: цифры видны в момент, когда вы уже стоите с ящиком яблок и решаете, нести ли его вниз. Дальше — MQTT, если захочется знать о погребе из отпуска. Но честно: счётчик циклов плюс журнал за сезон — восемьдесят процентов пользы за десять процентов усилий, и именно с них я советую начинать любой подвал.
- 1. Почему осушитель включается на 80 %, а выключается на 75 %?
- 2. Датчик на дверном косяке показывает 76 %, в центре стеллажа 83 %. Что делать?
- 3. Компрессорный осушитель при +4 °C — как он себя ведёт?
- 4. h = 84 %, t = +1 °C. Что делает скетч урока?
- 5. Счётчик циклов за неделю вырос на треть от всего прошлого сезона. О чём это?
- Норма хранения 60-80 %; порог включения 80, выключения 75 — коридор шире шума сенсора.
- Датчик в центре зоны хранения, не у двери: сквозняк занижает на 5-10 %.
- Гистерезис плюс пауза три минуты: реле живёт, компрессор не стартует под давлением.
- Счётчик циклов в EEPROM — сезонная карта погреба; скачок за неделю — ищите новую влагу.
- Холоднее +2 °C — блокировка: замёрзший конденсат ломает бак и компрессор.
Частые вопросы по теме урока
- Почему осушитель включается на 80 %, а выключается на 75 %?
- Гистерезис отделяет решение от шума: пока воздух внутри коридора, состояние не меняется. Сузите коридор — получите щёлканье на каждой дрожи показаний. Коридор шире шума сенсора — реле не щёлкает на дрожи десятых
- Датчик на дверном косяке показывает 76 %, в центре стеллажа 83 %. Что делать?
- У входа сквозняк занижает показания на 5-10 % — это место, а не поломка. Мерять нужно зону хранения, дверь — отдельная история. Перенести датчик в центр зоны хранения, дверь оставить контрольной точкой
- Компрессорный осушитель при +4 °C — как он себя ведёт?
- На плюс трёх-пяти конденсат на испарителе замерзает, и машина сушит почти вхолостую. Для погреба честнее адсорбционный прибор или вентилятор-вытяжка. Обмерзает: испаритель холоднее воздуха, производительность падает
- h = 84 %, t = +1 °C. Что делает скетч урока?
- При t ниже +2 скетч сбрасывает wantOn в false независимо от влажности: замёрзший в приборе конденсат и холодный пуск дороже, чем пара процентов сырости. Держит реле разомкнутым: зимняя блокировка сильнее порога влажности
- Счётчик циклов за неделю вырос на треть от всего прошлого сезона. О чём это?
- Счётчик — сезонная карта поведения погреба. Резкий рост без смены погоды означает новое поступление влаги или сломавшуюся вентиляцию. Что-то изменилось в погребе: вентиляция, грунтовые воды, крыша — ищите причину