Очередной привод форточки. Проветриваем помещение правильно!
Проветривание очищает воздух, снижает концентрацию углекислого газа и микробов, улучшает самочувствие и делает дыхание более комфортным. Но в ручном режиме оно может быть нерегулярным, а в холодное время года даже небезопасным для здоровья. Для решения этой проблемы уже давно существуют приводы для форточек, но удовольствие недешевое. Тем временем в сети лежит множество DIY-проектов, которые намного дешевле и удобнее в кастомизации. А еще это просто интересно! Под катом рассмотрим занятный механизм, а также его адаптацию под то, что «валялось в ящике стола», и автоматизацию проветривания через умный дом.
Итак, я вдохновился проектом Window Chain Actuator, который лежит на Thingiverse. Проект представляет собой цепной привод, в котором используется шаговый мотор для одновременного движения цепи и ее протяжки внутри механизма. Это вполне промышленное решение, используемое во «взрослых» приводах. Оно позволяет механизму быть достаточно компактным в закрытом состоянии и удерживать любое положение даже при внешнем давлении.

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

Воодушевившись, я распечатал необходимые детали и приступил к сборке.
Механизм
Корпус, а также шестерни и ролики распечатались без проблем, так что потребовалось просто собрать все воедино. По инструкции для роликов требовались металлические валы диаметром 2.4мм, которых у меня не оказалось. Но не зря же блог называется DIY? Вместо валов я нарезал гвозди подходящих диаметров. Для роликов — 2.4мм, для цепи — 1.7мм. В оригинале автор использует отрезки филамента для сборки цепи, но на мой взгляд это как-то слабовато.




Детали пришлось «разработать» и смазать, так как подходили они впритык. Для смазки червячного привода использовал PTFE-смазку, как советовал автор оригинала.

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

Проверить работу механизма без мотора не представлялось возможным (привод-то червячный), потому пришел черед «сердца» механизма.
Силовая часть
В оригинале используется шаговый мотор 28byj-48 12V stepper + ULN2003. В модифицированной версии движок тот же, но переделанный под биполярный драйвер A4988 (что дает дополнительную мощность). Мне же показалось, что скорость открытия черепашья, потому я было решил использовать другой подход.
Мне пришла в голову мысль использовать мотор-редуктор N20, и я даже распечатал перемоделированный вал и отсек мотора. В тот момент я хотел управлять устройством через радиосигнал.


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

Этим шаговиком оказался 28byj-48 на 5В. Решение даже слабее того, что в исходном проекте. Но поскольку переделка движка на биполярный — дело пары минут, то я решил не заморачиваться и собирать как есть. И не зря! Вхолостую мотор заработал вполне неплохо, хотя, как и ожидалось, медленно.

Но со скоростью я уже смирился, так что приступил к подготовке электронной начинки.
Электроника
В оригинале используется контроллер Wemos D1 на базе ESP8266 и датчик температуры, который и контролирует степень открытия. Делался проект для форточки на майнинг-ферме, так что неудивительно. Я же решил использовать контроллер, который выдрал из умной лампочки на прошивке ESPHome. Такой же я недавно запихнул в умную розетку. О том, что еще полезного было в умных лампочках по 100 рублей, тоже был отдельный опус.

Так что схема начала вырисовываться очень простая. Мотор с драйвером, да контроллер с линейным стабилизатором. И все это питается от 5 Вольт, которыми снабжает самодельная низковольтная розетка из компьютерного БП. Разве что драйвер чуть не влез в корпус, пришлось отпилить кусок платы.

Программа и последующая доработка привода
Для интеграции в умный дом я написал простейший скрипт, в котором был описан примитив мотора и шаблонный cover, который должен был управлять открытием/закрытием форточки. Но настройка шагов для крайнего положения форточки заставила меня пересмотреть подход.
globals:
- id: FULL_STEPS
type: int
initial_value: '29000'
stepper:
- platform: uln2003
id: motor
pin_a: P7
pin_b: P6
pin_c: P26
pin_d: P24
max_speed: 150 steps/s
acceleration: 200
deceleration: 200
sleep_when_done: true
# ==========================================
# ИНТЕРФЕЙС В HOME ASSISTANT
# ==========================================
cover:
- platform: template
name: "Форточка"
id: valve_cover
has_position: true
optimistic: true
open_action:
- stepper.set_target:
id: motor
target: !lambda 'return id(FULL_STEPS);'
close_action:
- stepper.set_target:
id: motor
target: 0
stop_action:
- stepper.set_target:
id: motor
target: !lambda 'return id(motor).current_position;'
position_action:
- stepper.set_target:
id: motor
target: !lambda 'return (int)(pos * id(FULL_STEPS));'Допустим, окно начинает открываться на 20000 шагов, а на первой десятке тысяч гаснет свет. Тогда окно после возобновления энергоснабжения будет считать себя закрытым (0 шагов), cover будет работать некорректно, а вернуть его с помощью стандартной программы будет нельзя, ведь шагает-то мотор в одну сторону относительно нуля. Мне пришло в голову сделать дополнительное поле калибровки, чтобы уже вручную все регулировать.
# Оставляем сырое поле управления на всякий случай для ручной отладки
number:
- platform: template
name: "Physical Target (Steps)"
id: raw_step_target
optimistic: true
min_value: -50000
max_value: 50000
step: 10
mode: box
set_action:
- stepper.set_target:
id: motor
target: !lambda 'return (int)x;'Но ведь и это неудобно! Надо руками все подкручивать, проверять насколько плотно закрыто окно, дергать механизм...
Подумав, я решил добавить в схему геркон. Это очень удобно, потому что плотность закрытия в этом случае можно не регулировать на глаз каждый раз, а подстроить точно и единожды, и при перезагрузке просто активировать скрипт закрытия, который точно спозиционирует форточку в крайнее положение и установит cover в ноль.
Но одно дело написать пару строчек кода, а другое дело установить датчик, которого нет на руках… Ждать не хотелось, потому я нашел в сети еще один проект, который и заменил мне покупку геркона.

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

Модель немного переделал под свои магнитики, плюс крепления изменил на боковые, в остальном оставил как есть.

С основной схемой соединил посредством разъема. В оригинале используется 2 симметричных разъема, чтобы можно было подключать питание с двух сторон. Я же для питания использовал разъем 5.5x2.1, а с другой стороны припаял 4.0x1.7 — для геркона. Это не позволит перепутать разъемы и спалить мозги приводу.

Схема изменилась не очень сильно.

А вот логика контроллера была серьезно доработана. Добавил скрипт калибровки нуля и вывел его отдельно на кнопку. Шаги отдельно настроил, чтобы обеспечить максимальную плотность закрытия окна. Получилось почти так же плотно, как от ручки окна — определил по затиханию фонового шума с улицы.
esphome:
name: automatic-window
friendly_name: Automatic Window
on_boot:
priority: -100
then:
- script.execute: calibrate_stepper
script:
- id: calibrate_stepper
then:
# ==========================================
# ЭТАП 0: ПРОВЕРКА И ОТСКОК (Clearance)
# ==========================================
# Если геркон УЖЕ замкнут на старте - сначала выезжаем из его зоны
- if:
condition:
binary_sensor.is_on: reed_switch
then:
# Отъезжаем на +1500 шагов от текущей точки
- stepper.set_target:
id: motor
target: !lambda 'return id(motor).current_position + 1500;'
# Ждем, пока мотор физически проедет эти 1500 шагов
- wait_until:
condition:
lambda: 'return id(motor).current_position == id(motor).target_position;'
# Даем небольшую паузу механике успокоиться
- delay: 200ms
# ==========================================
# ЭТАП 1: ПОИСК КРАЯ ГЕРКОНА
# ==========================================
# Теперь геркон точно отжат. Едем в глубокий минус искать его.
- stepper.set_target:
id: motor
# Берем -32000 от ТЕКУЩЕЙ позиции, чтобы точно хватило хода
target: !lambda 'return id(motor).current_position - 32000;'
# Скрипт замирает и ждет прерывания (замыкания геркона)
- wait_until:
condition:
binary_sensor.is_on: reed_switch
# Геркон сработал! Мгновенно тормозим мотор.
- stepper.set_target:
id: motor
target: !lambda 'return id(motor).current_position;'
- delay: 200ms # Пауза на торможение
# ==========================================
# ЭТАП 2: ФИНАЛЬНЫЙ ДОВОД (-1300)
# ==========================================
- stepper.set_target:
id: motor
target: !lambda 'return id(motor).current_position - 1300;'
# Ждем, пока мотор не доедет эти последние 1300 шагов
- wait_until:
condition:
lambda: 'return id(motor).current_position == id(motor).target_position;'
# ==========================================
# ЭТАП 3: ФИКСАЦИЯ НУЛЕВОЙ ТОЧКИ И КАВЕРА
# ==========================================
# Жестко моем мозги шаговику: здесь теперь 0
- stepper.report_position:
id: motor
position: 0
- stepper.set_target:
id: motor
target: 0
# Выставляем Cover в состояние "Закрыто".
# В Home Assistant 0.0 - это закрыто (0%), а 1.0 - это открыто (100%).
- cover.template.publish:
id: valve_cover
position: 0.0
binary_sensor:
- platform: gpio
pin: P8
id: reed_switch
name: "Герконный сенсор"
# Кнопка для ручного перезапуска скрипта калибровки прямо из интерфейса
button:
- platform: template
name: "Run Calibration Script"
id: run_cal_btn
on_press:
- script.execute: calibrate_stepperФинальные доработки и автоматизация
При монтаже устройства вылезли еще некоторые косяки. Во-первых, монтаж оригинального проекта производился на другой грани механизма (к верхней части над окном). В ремиксе проекта крепление верное, но, на мой взгляд, крайне хлипкое. Так что я взял оригинальное, и доработал его во FreeCAD.

Во-вторых, защелка окна оказалась слишком короткая. Из-за чего после полного открытия форточка не могла закрыться, упершись в корпус привода. Пришлось удлинить на 2 мм.

Для фиксации защелки в оригинале используется винтик, но это неудобно, если нужно вручную открыть окно (помыть, например). Я просто вставил мини-отвертку в качестве фиксатора. Вытащил — и окно свободно открывается. Теперь удобно!
Плюс не хватало укладочных креплений для проводов. Нарисовал свои.


Наконец, чисто косметическая проблема горба на стыке двух половинок корпуса. Решил ее металлической пластиной, которую посадил на один из винтов корпуса.

После этого, наконец, основной проект был завершен.

Осталось добавить органы управления на панель в HomeAssistant.

Поехали!

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

Теперь перед отходом ко сну я ставлю проветривание, и сплю уже со свежим воздухом в комнате. Красота! А форточка сама захлопывается, когда становится слишком холодно. Причем, несколько раз я уже засыпал до закрытия. То есть работает она настолько бесшумно, что не будит своим перемещением в тихой комнате. Хотя в целом, работает она не сказать, чтобы совсем бесшумно. Но звук не раздражает, слышно только слабое гудение катушек шагового движка.
Финальные мысли
Уже прикупил датчик углекислого газа SCD40, планирую его разместить в другом умном устройстве, о котором пойдет речь в следующей статье. С его помощью я смогу в HomeAssistant полностью прописать автооткрытие и автозакрытие. Наконец-то дома появится весенний свежий воздух! В целом, ради этого все и задумывалось.

По итогу, мне понравился и сам проект, и процесс его адаптации. По бюджету дороже всего вышла пластмасса. С учетом непропечаток и прочего — рублей 200-250. Контроллер я выдрал из лампочки за 100 рублей (все еще остались блок питания и светодиоды), мотор с драйвером стоил рублей 130. Гвоздей, наверное, рублей на 20 потратил. В общем, рублей 500 по материалам вышло :)
Конечно, и времени потратил достаточно, но зато с удовольствием! И хлама теперь поменьше валяется… Да, это не цельнометаллический механизм, и мотор без переделки не столь мощный и быстрый. Но устройство вполне удобное и законченное. Статья, тем временем, тоже подошла к концу. Спасибо за внимание! Ну и напоследок...

И вполне возможно, что будет очень даже ничего себе так. Возможно.
Ещё такой момент.
Вы пробовали срезать кусочек филамента PETG? А они там исключительно на срез работают. Ну и ваш выбор -разломанная цепь или выломанное из окна крепление? Ответ очевиден? Или нет?
И, если первый этаж, с улицы открыть, думаю, не сложно будет.
Она снимается в секунду!
Это, к тому же, и проще…
Другое дело, что не в каждую квартиру её можно эстетично воткнуть.
И открытое окно ещё как-то можно сравнить с самым бюджетным бризером, но каким боком тут полноценная вентиляция, для которой надо и место за потолками, полноценный ремонт, развод воздуховодов и куча других мероприятий, в отличие от дырки в стене.
У дочки, к примеру, кухня и спальня были рядом и с общей уличной стеной — можно повесить установку под потолок кухни на межкомнатную стену впритык к уличной, забирать грязный воздух с кухни — выбрасывать на улицу, с улицы подавать свежий через стену в спальню, и никаких воздуховодов.
Установка невелика, легко можно оформить под шкафчик.
у меня и у Майкла Джексонав спальне и в другой спальне.Афигенный*
*по моему скромному мнению
Лучше уж без него, чем лишать себя нормального управления окном и поганить все это таким колхозом, без обид.
На голубом сайте полно готвого и для откидывания и для открывания от 1.9к, причем в готовом виде и корпусе, смысл?
Ну и для уменьшения размера, конечно, просится актуатор.
Ну да. Без электроники и силовой обвязки.
Это и есть актуатор :)
у автора получилось практически полностью воссоздать готовые промышленные варианты, но не в металле
Если прям очень нужно проветривать или открыл и через минуту закрыл или можно не плотно закрывать, тогда через уплотнители сифонит потихоньку.
Ходить периодически открывать можно днем. А если лег спать с закрытым окном — то проснешься с чугунной головой. И да, когда сильно дует — то слегка поворачиваю ручку чтобы уменьшить прижим, через уплотнитель слегка сифонит, но к утру ветер как правило стихает и опять полная герметичность и привет чугунная голова.
При таком разбросе притока, когда за несколько часов то микропроветривания много, то открытого окна — мало, без автоматизации мне кажется не обойтись.
Это эффект «плацебо» — нет проветривания — все пропало, есть такие любители. Но мама без проветривания просто задыхается, наверное это у каждого свое
И, не в обиду автору, проект выглядит не как изделие, а как поделка. Хотя объем работ проделан не маленький…
но это реально весьма дешевая алтьтернатива например бризеру:
— сам бризер — 18-30 тыс рублей (а посмотрите, сколько tion стоят)
— подготовка места под него (отверстие в стене, диаметр 100-200 mm(sic!), подвод электричества) — думаю 6-10 тыс.
и это еще если повезет, и вы место под бризер подходящее найдете на стене!
а тут автор конечно лукавит, что 500 рублей поскольку:
— пластмасса (и принтер чтоб распечатать!!!)
— тихий шаговик
— одноплатник на esp
— сетевая инфраструктура ( wifi, HA)
— металические части(всякие шурупы) конечно нужно использовать неокисляемые и нержавеющие — иначе и без того, какой
видок, будут еще добавлены подтеки ржавчины через год-два.
— прямые руки
— смелость испоганить окно ( 8-) ) но окошко в конце концов несложно и восстановить, в отличии от громадной дырищи в стене!
но это никак не 24-40 тыс рублей! — тыс 4-5 максимум. ну и опыт — бесценно!
Нравиться мне все-таки DYI рубрика на PlusPda.
Очень вдохновляет!
Хотя тридцатка сейчас вообще ни о чем…
Это как включить паяльник и шуруповёрт.
там на окне ( в зависимости от размеров (иногда 2-3 штуки ) еще и фиксатор есть — которые окно плотнее прижимают )
И их надо открывать ручками
И что-то подобное как раз хочу поставить, ибо сидеть задраившись не вариант и ходить проветривать каждые 5 мин не будешь
Интересно, на сколько циклов этой лески и печатных роликов хватит?
А так, в целом… Интересно… Я поступил проще. Прорубил в раме дырку, вставил туда вент.канал и поставил вентилятор, который можно вкл/выкл. Плюс сейчас на этапе моделирования «дроссельных заслонок» на зиму, чтобы перекрывать оный наглухо. Читаю про сервоприводы и прочее…
Кстати да, надо будет фильтр поставить. И датчик разряжения :)
Пусть лучше он забивается, чем весь подоконник в песке…
Дружочек, дырку прорубить просто :) Стеклопакет потом менять замучаешься…
Ставил готовый привод такого плана на верхнюю фрамугу, в верхней части створки. Вот так створка откидывается, нормально проветривание. Да, дорого, но гораздо удобней, надежней и функциональней.
За колхоз, конечно, зачёт.
Зы. Имхо, датчик углекислого газа не даст нужной точности для адекватной оценки воздуха в помещении. Если автоматизировать, то, к примеру, открывать когда никого нет дома или в определенный час ночью, контролируя температуру в удаленной точке помещения.
быстрее, выше, сильнеереализовано как надо.Пользуясь случаем хочу поблагодарить автора за подробное описание и ссылки. Такие отчёты стимулируют что-то своё запилить.
Кронштейны на 3д принтере. Минус только в том, что привод торчит перпендикулярно раме. Но места хватает.
И все stl выложены.
Посчитал, 17 файлов, а вам сколько надо?
Фаил pok016.zip
Себе в заметки сохраню, у меня (во всей стране) сдвижные алюминиевые окна. Может идея какая родится из этого.
Даже про видео, вызывающее Эпилептический приступ никто ничего…
:)))))))))
Для этой конструкции лучше применить отключение по току.
Это снег/дождь, ветер, шум и грязь.
Во-вторых — идея открывать его автоматически, получите всё перечисленное в самые неожиданные и неподходящие моменты.
Ну и в-третьих, да, — «Кислотный геркон, коробок привода, провода», — общий вид создаёт впечатление какой-то мастерской или лаборатории, а не семейного жилища.
Впрочем, это субъективно, и если домочадцам норм — то и ок, я-то писал про свои ощущения и свою супругу.
Кайф от рукоприкладства понимаю и одобряю, сам такой, но это изделие мне представляется непригодным — как по замыслу, так и по результату, извините)
Я бы согласился насчет геркона (и его можно заменить на любой промышленного образца). Но в остальном, оно и покупное будет выглядеть примерно так же.
Касаемо проводов, устройство потребляет определенную мощность, и к нему надо подводить питание при регулярном проветривании (как и к любому коммерческому приводу). Я мог бы провод полностью скрыть белыми напечатанными сегментами (либо купить белый провод), но тут дело вкуса.
Сам же механизм тоже сильно не выделяется цветом от окна. Конечно, смотрелось бы намного лучше, если бы он стоял сверху. Но штробить оконный проем ради этого я бы точно не стал.
Впрочем, спасибо за подробный отзыв. А скажите, что думаете касаемо этого привода. Если не затруднит :)
Причины указал.
И? ))
Слегка эстетичнее, но недостатки-то те же.
https://www.ozon.ru/product/reversivnyy-vytyazhnoy-ventilyator-s-distantsionnym-upravleniem-150mm-kanalnye-ventilyatory-310-kub-3249868636
Взял такой, мне правда нужно только летом для мансардного окна закрытие при дожен.
можно дешевле найти, если без датчика дождя.
пока плюс за старания и в надежде на будущее
Другое дело, что идея оконного привода как будто многим не по душе. Я не спорю, что автоматическая вентиляция лучше, но окно намного проще переделать при отсутствии вентходов.
Впрочем, если не затруднит, хочу услышать от вас идеи модернизации. Всегда рад конструктивной критике!
Чтобы пользоваться окном как обычно, достаточно вытащить черный фиксатор из сочленения цепи и окна. Я не знаю, как это проще реализовать.
Что касается попользоваться, я уже успел недельку-полторы погонять — у меня пока нет нареканий. Но да, не мешает попользоваться еще
Шестерня. Движок загуглите, если хотите.
https://www.ozon.ru/product/elektroprivod-okonnyy-tsepnoy-24v-vynos-300-mm-kontroller-pereklyucheniya-pult-3828982186
также такие продаются 1,5-2тыс без пульта и БП.
там БП 220/24В совмещенный с кнопками и пульт. от БП идет 2 провода питания. скорее всего кнопки на БП тоже работает через RF433 как и пульт. в крайних положениях останавливается по усилию, мотор достаточно мощный DC.
то есть автоматизировать через RF-пульт скорее всего получится только «открой/закрой». либо запускать движение и высчитывать тайминги и вовремя останавливать автоматически. с учетом низкой скорости может и получится даже.
PS В реальности на один или два нолика больше.