Умные шторы своими руками
Однажды, после тяжелого рабочего дня, я пришел домой и понял, что хочу отдохнуть, а не ходить и закрывать шторы. Хочется увидеть их закрытыми вечером и открытыми утром, при этом не выделывать танцы перед окном. Погуглив разные решения, было принято решение сделать все самому.
По многочисленным просьбам, выкладываю все свои наработки по переделке обычных рулонных штор в автоматизированные с удаленным управлением. Осторожно, много фотографий!
Для начала про рулонные шторы:
- Плюсы: рулонные шторы визуально расширяют пространство, красивые и недорогие. Очень простой монтаж. Можно каждым окном управлять отдельно. Высвобождается место на подоконнике.
- Сложности: вручную открывать 5 окон уже занимает долго времени. Открыть полностью угловое окно мешает сам механизм (пример: механизм вверху балконной двери упирается в стену и не дает открыть проход полностью). Из-за этого необходимо вешать шторы с наружной стороны окна. Цена даже на китайские моторизированные шторы начинаются от 2000 рублей, умножаем на 5 и уже сразу же думаем, как сделать все подручными средствами.
Немного про задачи:
Необходимо добавить к обычным рулонным шторам из строительного магазина удаленное управление и подключить к умному дому на openSource платформе Home Assistant. И еще необходимо сохранить обычное управление за веревочку.
Если все автоматизировать, то скорость не играет роли, поэтому можно применять двигатели с редуктором. Коллекторные двигатели дешевые, но не самая надежная вещь для ежедневного применения. Сервомашинки тоже имеют коллекторные двигатели и плюс не стабильные при постоянном вращении. Отличным вариантом выглядят шаговые двигатели. Бесшумные, можно контролировать положение, стоят копейки. В итоге, комплект из 5 двигателей 28BYJ-48 с драйвером ULN2003 обошелся мне в 10$
Про двигатель 28BYJ-48:
Подробно о нем можно почитать здесь.
Были вопросы о мощности этого двигателя. Опасения что он будет слабым, не оправдались. Вернее так — если использовать полношаговый режим, то двигатель очень хилый, если использовать полушаговый, то вал уже голыми руками не остановить. Кому будет мало мощности, в интернете много статей как приподнять напряжение, превратить его в биполярный и прочие улучшения.
Так как у нас осталось ручное управление, и мы не хотим впустую гонять двигатель, то необходимы датчики положения штор. Минимум необходим один датчик на одном конце, но лучше два. Можно использовать любой концевой, оптический и т.д., но я лично выбрал герконовый, т.к. приклеить неодимовый магнитик с другой стороны очень просто и работать должен стабильно и долговечно. Сами герконы я выбрал для эстетики уже в корпусе. Плюс предусмотрел настройку по расстоянию от вала. По высоте можно регулировать проставками.
Про конструкцию крепления:
Задача была спроектировать корпус максимально простой для изготовления на 3д принтере с минимальными доработками. Моделировал в Fusion 360. Комплектное крепление цепляется за верх окна, но такую конструкцию на FDM принтере будет трудно сделать с нужными требованиями по прочности, поэтому была придумана конструкция с одним винтом для регулировки.
Итого получилось три детали для 3д-печати. Ссылка для скачивания 3д-моделей.
thingiverse
Основная часть для двигателя, платы управления на ULM2003, креплением герконов, двигателей, лески для стабилизации штор, и регулировочного винта.
Крышка для закрытия всего этого безобразия. Зажим или по-другому крюк.
Сама конструкция штор содержит несколько пружин, которые работают как тормоз если тянуть за шторы(пружина затягивается) или отпускает если крутить за веревку.
При сборке надо сделать одну доработочку: кусачками сломать ободок, который прикрывает веревку, т.к. теперь у нас есть свой неподвижный ободок, который не дает выпасть веревочке.
Управлять шаговым двигателем будет NodeMCU на ESP8266. Он выбран из-за дешевизны, наличия резервного канала wi-fi и на нем достаточно легко написать нужные скрипты. Если нужно больше чем две шторы или дополнительные датчики, то ножек микроконтроллера уже не хватит, можно посмотреть в сторону ESP32. (на фото esp32 не приведена, т.к. она в распределительной коробке)
Среда разработки может быть любая. ESP32 может программироваться через Arduino IDE. Но я для себя выбрал Visual Studio Code из-за скорости, модульности и бесплатности. В этой среде можно разрабатывать почти под любые платформы (не только железо). Можно даже подключить IAR ARM.(но это уже совсем другая тема)
Задача программы простая:
Подключиться по Wi-fi
Подключиться к MQTT брокеру
Подписаться на топик
Управлять скоростью двух моторов
Следить за состоянием концевых датчиков
Отправлять брокеру текущие шаги
Исходники можно взять отсюда.(осторожно это самый первый быдлокод для пробы штор). В коде надо указать свой логин и пароль от wi-fi. А также параметры MQTT-брокера.
Заливаем программу и пробуем отправить первые данные через MQTTBox. Все работает! Как добавить шторы в систему home-assistant я напишу отдельную статью, если будет интересно всем.
Небольшое видео как это делалось:
Плюс выступление на какой стадии находится у меня умный дом.
Всем пожелаю расслабиться дома!
UPD: Ссылка на скачивание файлов для печати на 3д-принтере
Источник
Автоматические рулонные DIY шторы v2.0
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Этот проект был задуман два года назад, в мае 2018 года, ровно в тот момент, когда я купил свой 3D принтер. Немного ранее я стал интересоваться «Умным» домом. От идеи до первого «запуска» прошёл ровно год, за это время я перечитал тонну статей в интернете. Первый «запуск» произошёл в июне 2019 года.
Первая версия привода была на базе шагового двигателя 28BYJ-48 и драйвера ULN2003 ESP8266 (прошивка от wifi-iot), для рулонной шоры Blackout, купеной в «Леруа Мерлен». Длина 2.0 м, вес 2,5 кг. Штора была куплена в 2014 году и ежедневно поднималась и опускалась «врукопашную». Выбор пал на готовый вариант с Thingiverse, в том числе, из-за наличия прошивки, а также опубликованных автором исходников модели.
Мощности привода оказалось недостаточно. Поскольку штора расположена на застеклённой, но не отапливаемой лоджии, то во время дождей она впитывала в себя влагу и её и так не малый вес значительно возрастал. Как вариант увеличения мощности, было протестировано:
- для 28BYJ-48-5V, поднятие напряжения до 7,5 вольт;
- для 28BYJ-48-12V, поднятие напряжения до 19 вольт.
В обоих случаях был значительный нагрев двигателя, но и был прирост мощности на 20%-30%. По итогу, всё через пару недель было демонтировано и штора вернулась к заводским параметрам.
- если штора была размотана, то приводу не хватало мощности на её поднятие;
- если штора была поднята, то под собственным весом она сама постепенно опускалась, т.е. просто «падала».
Поняв, что необходимо увеличить мощность, из имеющихся комплектующих была собрана следующая версия, но уже на Nema-17. Также была попытка «изобразить» редуктор, который, по задумке, должен был удерживать штору в поднятом состоянии.
Переход на Nema-17 потребовал новый контроллер управления шаговым двигателем на драйвере A4988. Также в момент проектирования контроллера были протестированы драйверы DRV8825 и TMC2208. Два последних тише, но и дороже, поэтому остановился на A4988.
За время проектирования было множество экспериментов и, как следствие, многие компоненты выпустили волшебный сизый дым на котором они работают, тут только некоторая их часть.
Версий контроллеров управления шаговым двигателем также было множество, были как на «готовых» платах для A4988 с Aliexpress, так и на полностью самодельных макетных платах.
Поскольку пришло понимание, что без редуктора штора будет постоянно «падать», решил использовать Nema-17 с редуктором 27:1, хотя, возможно, хватило бы и редуктора 5:1.
Поскольку я уже получил полностью работоспособную штору на балконе, мне захотелось повторить опыт, но уже со шторой Blackout на Кухне. Длина 1.2 м, вес 1,4 кг. Поскольку Nema-17 я уже освоил, решил добавить в копилку 28BYJ-48 и ESP-01S.
После переделки 28BYJ-48 в биполярный, он заиграл новыми красками, а именно, значительно прибавился крутящий момент, примерно на 40%-50%, естественно, помогло поднятие напряжения:
- для 28BYJ-48-5V, до 12 вольт;
- для 28BYJ-48-12V, до 24 вольт.
Вариаций на тему было очень много, но, по итогу, остановился на одном, который в дальнейшем просто масштабировал, от управления с одной платы одним двигателем и до четырёх. Поскольку на схемах все компоненты подписаны, думаю нет необходимости их отдельно перечислять.
Отдельно хотелось бы обратить внимание на вопрос питания Nema-17, не вдаваясь в технические дебри. Напряжение 12 вольт — это минимум, намного правильнее использовать напряжение 24 вольта, т.к. мы получаем дополнительный прирост мощности и оборотов двигателя.
Программное обеспечение (прошивка)
Постоянные поиски достойной прошивки привели меня на статью уважаемого Андрея Попова (andreypopov), за что ему огромное спасибо. Благодаря его статье мне конечно удалось избежать некоторых ошибок, но и своих я наделал предостаточно.
В скетче управление двигателем 28BYJ-48, а мне требовалось управление двигателем NEMA-17. Поэтому скетч пришлось немного доработать. После чего я счастливо жил 4 месяца.
Далее поиски прошивки привели меня на гитхаб Tasmota, где в тот момент сделали первую версию поддержки драйверов A4988. В чате Discord поддержки я выложил схему моего контроллера для A4988 и несколько фотографий, схему далее добавили в первую статью.
И всё закрутилось, мне предложили принять участие, в качестве «тестировщика», в новом варианте поддержки для A4988. По прошествии двух месяцев мной была написана часть новой статьи и нарисованы несколько схем для применения драйвера A4988 (с кратким описанием для каждого).
В итоговом варианте я использую прошивку от Tasmota, и переходить с неё не планирую. Всё, что мне нужно от прошивки — это стабильность и управление по MQTT.
Поскольку мне уже наскучило делать всё на макетных платах, то не долго думая принял решение сделать полноценную плату контроллера. На Easyeda были созданы и заказаны три разновидности платы привода.
Получив заказанные платы, я принялся за уже привычную по ночам работу — паять в тишине.
Первый рабочий контроллер на полноценной плате, на котором ставились множественные эксперименты.
Вдоволь наигравшись, плотно засел за Fusion 360, дабы окончательно решить вопрос со шторой на балконе.
Ну и войдя во вкус, решил доделать привод на кухне. Дабы не изобретать велосипед, взял за основу готовый проект.
И уже используя полученный опыт, начал делать автоматизацию для двух «карнизных» штор в комнате. Что, собственно, в настоящее время и продолжаю. Осталось спроектировать корпус для платы, и натянуть второй ремень.
Производители готовых комплектов приводов, как например DOOYA или XIAOMI, делают конечно хорошие вещи, но как мне кажется, это немного дороговато. Да и сделать самому намного приятнее, и ещё при этом сэкономив немного.
Ну поскольку, за время экспериментов, шторы мне несколько раз сильно «пожевало» — захотелось минимальной защиты.
Вариант 3.0 (в мечтах)
Изначально мне очень хотелось получать обратную связь от шагового двигателя, т.е. сделать свой серво-шаговый двигатель. Ну и естественно, я начал его делать. Использовал магнитный датчик положения AS5600, и мне даже удалось получить от него данные с помощью прошивки от wifi-iot, а также взяв из описания стороннего проекта готовый скетч.
Но, как обычно, споткнулся о программное обеспечение (ну не программист я, а клавиатуру в лесу нашёл), и не найдя готовой прошивки, отложил проект до лучших времён.
Фактически за один год я получил огромный опыт в 3D проектировании и создании своих плат, а также подтянул навыки пайки.
Поскольку проект изначально планировался как не коммерческий, друзьям я иногда делаю автоматизацию штор, что называется по себестоимости комплектующих, т.е. абсолютно без прибыли для себя.
Все 3D модели, если кто-то захочет их повторить, вместе с исходниками в формате Fusion 360, мной выложены на Thingiverse, найти их там можно просто набрав в поиске мой ник.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Источник