Авторизация
Регистрация

Напомнить пароль

Слишком умные жалюзи 2 - теперь еще и компактные!

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

Собственно, почему я разобрал первое поколение?


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

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


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

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


С 3д принтером мне даже колхозить не нужно — пару итераций на попасть в размеры и готово. У меня на все про все час ушел. Впрочем, даже без принтера можно добиться успеха, поработав дремелем над какой-нибудь пластмасской. Но такое удовольствие оставляю сугубо на ваше усмотрение.

Теперь дело оставалось за электроникой. В качестве мозгов взял чип, выдранной из умной лампочки, коих я закупил мешок по 80 р. (лампочку я реверс-инжинерил в давнишней статье).


LibreTiny (а именно на нее я собирался шить) огорошила меня отсутствием поддержки. Но посоветовавшись с умными нелюдями, обнаружилось, что это скорее отсутствие тестирования. А сама прошивка отлично залетела на базовой конфигурации от bk7231n.

Esphome:
  name: autoblinds
  friendly_name: AutoBlinds

bk72xx:
  board: generic-bk7231n-qfn32-tuya

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "********************************************"

ota:
  - platform: esphome
    password: "**********************************"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "****************"
    password: "**********"

captive_portal:

Был, кстати, приятно удивлен потреблением — жалкие 42 мА. Не Zigbee, конечно, но втрое скромнее ESP8266. А пинов и памяти вполне хватает. Кстати! Есть встроенный Bluetooth Low Energy. В дальнейшем хочу поиграться с режимом глубокого сна и сверхэнергоэффективными синезубыми датчиками на базе этих чипов. Это вложение денег меня радует все больше и больше!

Но вернемся к начинке привода. Для управления сервой SG90 нужен всего… 1 пин.


Ну это просто смешно, а как же остальные 7? Непорядок. В схему был добавлен драйвер DC моторов TA6586 из соображений дальнейшей модернизации — планирую добавить еще привод для поднятия жалюзи. Большая точность там не нужна, а мощность пригодится. Драйвер переваривает до 12В 5 Ампер в пике, а может и больше.


Ну, и вишенка на торте — сонар. Зачем? Захотелось управления жестами. Подносишь руку (ногу, домашнего питомца, бюст Сталина) на определенную дистанцию — жалюзи открываются. Подносишь еще раз — закрываются. Выглядит эффектно, управляется довольно удобно, плюс потыкал сонары — давно хотел.


Примерно накидал схему этого всего.


Собирал на макетке, так что не заморачивался с редактированием символов. Возможно, мог возникнуть вопрос, для чего понижающий преобразователь 12 — 5 Вольт (Mini360). Все дело в том, что я питаю жалюзи от своей низковольтной розетки.


И… уже все разъемы 5 Вольт кончились. А кроме того мне пришла мысль, что для привода поднятия жалюзи может пригодится повышенное напряжение. Так что это еще и задел на будущее. И плюсом, чем выше напряжение — тем меньше потери в тонком проводе. Мелочь, а приятно. В итоге получил следующую платку.


Пришлось постараться, чтобы она влезла аккурат в щель с приводом. Зато как приятно было потом все плотно запихивать… Ммм, красота! И не торчит совсем.


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


Дальше я просверлил боковой держатель, чтобы было отверстие для разъема питания и выставил серву в базовое положение — это нужно для настройки диапазона открытия. Вуаля!


Но пока что эти жалюзи даже неудобнее своих глупых предшественников. Приступаем к написанию конфигурации и автоматизаций!

Прошивка довольно простая, а самое нестандартное в ней — управление жестами. В остальном имеем две сущности cover, servo и сонар.


sensor:
  # Сонар
  - platform: ultrasonic
    trigger_pin: P8
    echo_pin: P9
    name: "Sonar Distance"
    id: sonar_dist
    update_interval: 150ms
    filters:
      - filter_out: nan

output:
  # ШИМ-выход для сервы SG90
  - platform: libretiny_pwm
    pin: P6
    id: servo_pwm
    frequency: 50Hz

servo:
  # Конфиг SG90
  - id: sg90_servo
    output: servo_pwm
    min_level: 2.7%
    max_level: 11%
    auto_detach_time: 1s
    transition_length: 3s

binary_sensor:
  # Виртуальная кнопка для переключения
  - platform: template
    id: sonar_toggle_trigger
    internal: true # Не выводим в интерфейс HA, это служебная штука
    lambda: |-
      if (id(sonar_dist).has_state() && id(sonar_dist).state < 0.6) {
        return true;
      }
      return false;
    filters:
      # Рука должна побыть 0.2 сек, чтобы не сработало от случайной помехи
      - delayed_on: 350ms
      # После убирания руки ждем 3 секунды, прежде чем система готова к новому жесту
      - delayed_off: 3s 
    on_press:
      then:
        - lambda: |-
            // Проверяем DC-мотор
            if (id(servo_cover).position >= 0.5) {
              // Если открыт больше половины -> Закрываем полностью (0%)
              id(servo_cover).make_call().set_position(0.0).perform();
            } else {
              // Если закрыт -> Открываем полностью (100%)
              id(servo_cover).make_call().set_position(1.0).perform();
            }
switch:
  # Управление драйвером TA6586 (без интерлоков)
  - platform: gpio
    pin: P24
    id: dc_motor_in1
    restore_mode: ALWAYS_OFF
  - platform: gpio
    pin: P26
    id: dc_motor_in2
    restore_mode: ALWAYS_OFF

cover:
  # Кавер 1: Servo Cover
  - platform: template
    name: "Servo Cover"
    id: servo_cover
    has_position: true
    optimistic: true
    position_action:
      - servo.write:
          id: sg90_servo
          # HA присылает значение от 0.0 (закрыто) до 1.0 (открыто).
          # Серве нужно от -1.0 до 1.0. Делаем пересчет:
          level: !lambda "return pos * 2.0 - 1.0;"
    open_action:
      - servo.write:
          id: sg90_servo
          level: 100%
    close_action:
      - servo.write:
          id: sg90_servo
          level: -100%
    stop_action:
      - servo.detach: sg90_servo 

  # Кавер 2: DC Motor (TA6586)
  - platform: time_based
    name: "DC Motor Cover"
    id: dc_cover
    open_duration: 10s
    close_duration: 10s
    open_action:
      - switch.turn_off: dc_motor_in2
      - switch.turn_on: dc_motor_in1
    close_action:
      - switch.turn_off: dc_motor_in1
      - switch.turn_on: dc_motor_in2
    stop_action:
      # Обычная остановка (свободное вращение по инерции / Standby)
      - switch.turn_off: dc_motor_in1
      - switch.turn_off: dc_motor_in2

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

Теперь можно и автоматизации прикручивать. Остановился пока на двух. Выключение света при открытии штор и включение оного при закрытии. Простенько, но вполне полезно. И интегрируется с жестами.


Что имеем по итогу? Cебестоимость материалов:
— 80 р. чип (в довесок к нему полезный БП, светодиоды и корпус)
— 100 р. серва (брал оптом десяток, вполне дешево)
— Ta6586 — 7 р. (не шучу, давно брал на али)
— Сонар — 40 р.
— Пластик (даже неудачные образцы) — ~30 р.
— Mini360 — 20 р.
Итого: 280р. — округлим уж до 300, не жалко (мелочь еще всякая, обрезок макетки). В такую цену оно вам встанет, если захотите повторить (а вот и ФАЙЛИКИ моделек). По времени не считал. Счастливые часов не наблюдают. Да и ничего сложного кроме подгонки размеров там и не было. Полезно оно вам или нет, решайте сами.

А я в дальнейшем хочу вот такую штуку попробовать для контроля подъема — червячный привод. Естественно, это не весь редуктор.


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

Добавить в избранное
+18 +19
свернутьразвернуть
Комментарии (8)
RSS
+
avatar
0
Комментарий ожидает проверки администрацией сайта. Подробнее...
+
avatar
0
У меня в жалюзях регулярно рассыпается этот блок!
Неск раз ломался «барабан», а под конец еще и вся эта обойма рассыпалась!
Окно одно, но жалюзей на нём три (на каждой створке) и я уже убодался их починять.
Склонен выкинуть всё это к такой-то бабушке и поставить рулоны…
Ничего умного туда ставить нет ни малейшего желания уже :(
+
avatar
-1
За 100 рублей серва работает не долго, там в редукторе очень хлипкие шестерёнки, я сам как то накупил дешёвых и заколебался их менять. Нужно брать у проверенного продавца с металлическим редуктором.
+
avatar
0
Я как-то делал самодельный щуп для 3д принтера, и заметил, что им не нравятся резкие смены угла (шестерням) и постоянное поддержание положения (драйверу).

Потому в прошивке я замедлил движение створок до 3 секунд на полный диапазон, и поставил таймаут в секунду на отключение. Посмотрим, сколько поработает. Заменить несложно
+
avatar
+3
  • Skylab
  • 27 июля 2026, 21:33
При использовании бюста Сталина жалюзи будут работать безукоризненно. Даже без подачи питания.
+
avatar
0
а как кошка будет реагировать на постоянно включенный сонар?
не спятит?
+
avatar
0
Крайне слабый ультразвук. Не обратит внимания скорее всего.
+
avatar
+1
Такие жалюзи чистить трудно, приходиться снимать и мыть в ванной с моющим средством, а привод ещё усложнит процесс. :((
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.