Привет всем!
Намедни я озаботился, а чтобы такого мне еще автоматизировать в своем доме? Поразмыслив, решил, что неплохо бы обзавестись «умными шторами» для окна в гостиной — телевизор находится прямо напротив окна, и дневной свет создает неприятный отблеск на экране. Тут, конечно, некоторые могут заметить, что «нефиг днем телевизор смотреть, пахать надо!», но мы отметём эти реплики, как неорганизованные?
Сначала я решил установить high tech решение — поляризующуюся «умную» плёнку, о которой читал много лет назад. Но, погуглив чуток, убедился, что «фиг вам, изба индейца» — плёнка такая есть в продаже, и даже от многих производителей, но вот стоимость на площадь моего окна будет выше $800 ☹ Даже крохотные engineering samples, размером с лист бумаги, они пытаются продать по ценам от $75 и выше…
«Ну, ладно», подумал я, поищу «штору с мотором» на Amazon-е. Поискал… Тут возмутилась моя «жаба»: после «кастомизации», «умная» моторизированная штора обошлась бы мне минимум в $262 + налог на продажу! А «делов-то» там?!
Нечего делать, пришлось самому «наардуинить». Понятное дело, гуглением находится множество подобных проектов, но плох тот DIY-щик, который будет тупо следовать чьим-то рецептам (да, и я не понимаю, зачем я, зная это, пишу-таки эту статью ? )
Исходный код проекта находится вот тут; там же есть BOM (bill of materials) со ссылками на Amazon-овские продукты. Искренне надеюсь, что у русских читателей будет более широкий и дешевый выбор компонентов (самыми дорогими оказались, собственно, сама шторка, и geared stepper motor).
Схематика проекта весьма проста, поэтому я даже не стал «заморачиваться» рисованием. Достаточно обеспечить питание 12V через драйвер A4988 (также не забудьте запитать A4988 через 5V или 3.3V через ESP32), и подключить пины «direction» и «step». Хорошее руководство по этому мотору и драйверу находится вот тут.
Пара слов о драйверах A4988: да, они дешевы, но «горят», как спички (я «спалил» парочку в процессе экспериментов). Греются, кстати, тоже «будь здоров». Я таки заставил такой драйвер стабильно работать с моим решением, но есть и более надежные (хотя и более дорогие) варианты.
Да, Nema 17 geared stepper motor — вторая по дороговизне часть проекта. Изначально я пробовал с более дешевым степпером, без шестеренок, но у него не хватало «силёнок», чтобы смотать штору (48» x 72»). Можно, конечно, попробовать удачи с более дешевыми DC high torque motors, но там возникнет другая проблема, обычно эти моторы высокооборотные.

Управление шторой я решил сделать многовариантным (моя жена очень не любит командовать гуглу, и предпочитает обычный IR remote). Поэтому я добавил к своему решению и IR receiver, запрограммировав неиспользуемые кнопки с IR пульта телевизора (ну, и еще с парочки тестовых пультов).
Помимо этого, через встроенный web server, предлагается элегантная landing page для удаленного управления. Кстати, эта страничка может быть добавлена в вашем smartphone, как апплет на home page. Мой друг, профессиональный industrial designer, заметил, что у него нет практически никаких претензий к дизайну — хоть прямо сейчас в production ?
Интеграцию с Google Home изначально я сделал через Adafruit IO + IFTTT, но shit happened, и в один «прекрасный» момент мои IFTTT апплеты отказались работать, притом поддержка IFTTT совершенно не смогла помочь (у них какие-то «непонятки» с гуглом, не принимают их всерьез и не пытаются разрешить давно существующую проблему). Пришлось искать замену, и, к счастью, такая быстро нашлась! Рекомендую вниманию всех DIY-щиков — Sinric Pro. Эти ребята предлагают бесплатную поддержку 3-х «умных гаджетов» (да и платная весьма недорога), отвечают моментально на гитхабе, приятны и отзывчивы в диалоге. Более того, интеграция через Sinric Pro куда более «правильная», чем, нежели, через Adafruit IO+IFTTT — вместо workaroundа пользовательских скриптов, Sinric Pro предлагают реальную интеграцию в виде «нативных смарт-устройств», поддерживаемых Google Home/Alexa etc. Настоятельно рекомендую!
Пара слов о «физической» реализации: в качестве вала был использован обточенный напильником (ну, куда уж без него!) стальной гвоздь, правда, пришлось докупить shaft coupler (так как токарным станком за $1.5K я пока не обзавелся, вот и приходится докупать мелочевку за $6 ?). Этот вал был укреплен во вращающемся «коннекторе» шторы с помощью эпоксидного клея — получилось вполне надёжно.
Вот так выглядит мотор; я подумывал закрыть его чехлом из разрезанной белой ПХВ трубы, но потом решил оставить as is, потому, как он полностью скрыт шторой.

А вот так выглядит мой контроллер — «макетка» с напаянными ESP32, voltage converter и драйвером A4988. Кстати, с этим драйвером приключилась «история»: припаянный к макетке, он отказывался работать, но «навесным» монтажем работал безукоризненно. После пары попыток, я просто подвесил его «в воздухе», укрепив термоклеем.

А вот, собственно, видео моей «smart blind» in action:
«Нативные» команды, понимаемые Google Home mini speaker: «close/open the blinds», «close/open the shades». К этим командам я добавил «close/open window», а также «let there be light/darkness», на что мой друг заметил: «Ты играешь с огнём» ?
Вот, собственно, и все. Если будут какие-то вопросы, то я с удовольствием на них отвечу.
Enjoy!
P.S. Sorry за «смайлики» в тексте; я знаю, что на «хабре», по непонятной причине, почему-то ненавидят смайлики, но я не знаю, как можно иным путем добавить в текст эмоции (особенно, если ты — не писатель, а простой юзер). Так, что прошу прощения у публики!
Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.