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

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

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

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

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

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

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

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

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

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



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

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

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

Но пока что эти жалюзи даже неудобнее своих глупых предшественников. Приступаем к написанию конфигурации и автоматизаций!
Прошивка довольно простая, а самое нестандартное в ней — управление жестами. В остальном имеем две сущности cover, servo и сонар.
Такую прошивку вам сейчас накидает любой чатбот за минуту. В чудесное время живем, хоть и не все чудеса приятные.
Теперь можно и автоматизации прикручивать. Остановился пока на двух. Выключение света при открытии штор и включение оного при закрытии. Простенько, но вполне полезно. И интегрируется с жестами.


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

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

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

Несложно догадаться, что там имелся некий держатель сервы, переходник на вал, и, собственно, электронные кишочки.
Прикинув все это в голове, я накидал модель ободка на серву, а переходник на вал вообще по большей части слизал с прошлого проекта — очень мне понравилась возможность доворота вала рукой при отсутствии питания. Единственное, чуть доработал бортики и оптимизировал все для печати. Кстати, на 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, не жалко (мелочь еще всякая, обрезок макетки). В такую цену оно вам встанет, если захотите повторить (а вот и ФАЙЛИКИ моделек). По времени не считал. Счастливые часов не наблюдают. Да и ничего сложного кроме подгонки размеров там и не было. Полезно оно вам или нет, решайте сами.
А я в дальнейшем хочу вот такую штуку попробовать для контроля подъема — червячный привод. Естественно, это не весь редуктор.

И еще, не забывайте подкармливать сущность в виде гномика! Тогда жалюзи обязательно будут слушаться.
Самые обсуждаемые обзоры
| +33 |
1180
51
|
Неск раз ломался «барабан», а под конец еще и вся эта обойма рассыпалась!
Окно одно, но жалюзей на нём три (на каждой створке) и я уже убодался их починять.
Склонен выкинуть всё это к такой-то бабушке и поставить рулоны…
Ничего умного туда ставить нет ни малейшего желания уже :(
Потому в прошивке я замедлил движение створок до 3 секунд на полный диапазон, и поставил таймаут в секунду на отключение. Посмотрим, сколько поработает. Заменить несложно
не спятит?