Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Вступление
Всем привет, сегодня я хотел вы вам поведать мою историю разработки, сборки и использования устройства для автоматизации жалюзи. Причиной начала их разработки стала по классике лень — мне было лень постоянно открывать и закрывать жалюзи когда на улице светлело или же темнело. Изначально планировалось закрывать шторы, но механизм для них выходил громоздким, да и у штор большое разнообразие в креплениях и механизмах работы. У жалюзи же нет такого разнообразия, да и интеграция автоматики в них заметно проще, поэтому были выбраны именно они.
Идея
Автоматику хотелось сделать не абы какую, а с wifi, что бы можно было управлять удаленно или же интегрировать в систему умного дома. Поворачивать жалюзи было решено в зависимости от освещенности на улице. Также необходимо ручное управление, идеально для этого подошел энкодер с кнопкой — можно и жалюзи покрутить и автоматику кнопкой включить. Непосредственно вращение выполняют сервоприводы, подключенные к валу жалюзи. Изначально я попытался использовать мотор с кнопками, но конструкция из кнопок, как датчиков открытия/закрытия, работает через раз и в совокупности с обычном мотором не позволяет открывать жалюзи плавно.
После составления примерного списка деталей необходимо было выбрать мозги данной конструкции. Выбор пал на wemos d1 r2 на базе чипа esp8266 — плата компактная, достаточно дешевая, имеются все необходимые порты и, самое главное, имеется встроенный wifi. По сути, можно было использовать голый esp8266, но мне хотелось максимально упростить сборку, чтобы любой мог без проблем все повторить.
Какая же функциональность ожидалась от проектируемого механизма? Естественно в первую очередь — умение закрывать и открывать жалюзи в автоматическом режиме в зависимости от освещенности на улице. Также необходима возможность открыть или закрыть жалюзи вручную. Ну и конечно же должна быть возможность менять настройки без необходимости перепрошивать контроллер, которые будут храниться в энергонезависимой памяти.
Для удобства сборки была разведена плата, которая по своей сути является шилдом для wemos. Плату проектировал в онлайн редакторе easyeda , печать заказал у них же. Кроме выведенных на нее портов подключения, на ней также распаян преобразователь 5в в 3.3в, потому что внутренний преобразователь довольно сильно греется и мне это не очень понравилось. Сама PCB схема:
Скачать можно по ссылке
Список деталей
Что в конечном счете понадобится для сборки:
wemos d1 r2 mini
распечатанная плата
два сервопривода
один фоторезитсор MLG5516B
один энкодер с кнопкой
разъем питания 5,5x2,1 мм и блок питания с таким же штекером на 5в
рассыпуха — ams1117, электролитические конденсаторы 10мкФ и 22мкФ, оба на 10в в корпусе K50-35 , резисторы на 200ом 10Ком, выпрямительный диод, я использовал 1N4001, ну и маленький диод для индикации питания
Описание схемы
Куда что припаивать подписано на плате для удобства сборки:
Led — диод индикации питания, квадратное отверстие плюс.
Photo — место для фоторезистора. Я его припаял через провода, чтобы его было удобнее закрепить на окне и направить на улицу.
Gnd, clck, sw и dt — разъемы для подключения энкодера. Подключать надо к соответствующим разъемам энкодера. Подключать 3.3в к нему не нужно.
Left и right — место для подключения сервоприводов. Для удобства подключения/отключения я припаял туда пины. Sig, + и — сигнальный провод, + и — соответственно.
Так же для удобства советую не впаивать wemos, а припаять разъемы для нее, которые обычно идут в комплекте.
Для желающих добавить какой-то датчик или же диод (например индикация работы автоматики) оставил место для подключения к линиям 3в и земли.
Сборка
Моя пайка пока что оставляет желать лучшего, так что слабонервных прошу пропустить это раздел. Сначала я припаял ams1117, так как на начальном этапе это сделать проще всего:
Дальше идут резисторы, конденсаторы и диоды:
Разъем питания, разъем для wemos и пины для сервоприводов:
Ну и последний штрих — подключаем энкодер и фоторезистор через провода:
Убираем остатки флюса, вставляем wemos (не путаем направление) и получаем что-то такое:
Установка сервоприводов в жалюзи
Необходимо снять жалюзи и аккуратно вытащить ось механизма. После этого вытаскиваем родной поворотный механизм, так как он не позволит нам самостоятельно крутить ось сервами. Выглядит он примерно так:
Для соединения оси сервопривода и оси жалюзи необходим переходник, я распечатал такой на 3д принтере. Спроектировал его во FreeCad, но в принципе можно использовать любой удобный 3д редактор, коих сейчас много (один из самых популярных - AutoCad). Если у вас нету 3д принтера можно воспользоваться услугами печати у специализированных контор или же попросить хорошего знакомого.
Далее необходимо подточить или вообще удалить крепления на сервах, что бы ее можно было установить непосредственно в корпус жалюзи.
Соединять серву и ось пока не надо, это будет чуть позже.
И крепим на свои места датчик света (должен смотреть на улицу) и энкодер.
Установка прошивки
Скачиваем скетч с github https://github.com/PavelProjects/SmartLouvers. Список необходимых библиотек указан в ReadMe. Подключаем wemos к компьютеру и прошиваем. По поводу как это сделать есть куча статей в интернете, поэтому этот этап я пропущу. В дальнейшем для обновления прошивки нам не понадобиться подключать ее к компьютеру, так как используется библиотека ArduinoOTA, позволяющая загружать обновления по wifi. Про ее возможности также множество информации в интернете.
Настройка
Подключаем питание, должен загореться диод питания, а wemos начнет мигать. Мигание означает что она пытается подключиться к wifi. Если у нее не получилось этого сделать, то она мигнет чуть медленнее, что означает запуск режима точки доступа. При первом запуске необходимо будет подключиться к ней - wifi с именем MY_SMART_LOUVER. После подключения переходим в браузере по адресу 192.168.4.1 — страница настройки:
Для начала нажимаем кнопку открытия жалюзи, далее выставляем сами жалюзи в открытое положение и соединяем серву с осью. Больше ничего делать с ними не понадобиться, их можно повесить на место и больше не трогать.
При первой настройке указываем данные wifi и по желанию имя устройства. Не забываем нажимать кнопку save. Когда все настройки сохранены необходимо перезагрузить устройство нажатием красной кнопки restart. После перезагрузки устройство подключится к указанному wifi. Если подключение не удалось запустится точка доступа с названием «MY_SMART_LOUVER» или же с указанным именем устройства.
После подключения к wifi находим ip устройства любым удобным способом: из логов в serial monitor или с помощью сканера сети. Подключаемся по новому ip и продолжаем настройку.
Для работы автоматики необходимо для каждого действия (открыть, закрыть,блокировать яркий свет) указать значение фоторезистора, при котором это действие будет срабатывать. Значение фоторезистора изменяются от 0 (очень темно) до 1024 (очень ярко). Жалюзи будут:
закрываться, если значение фоторезистора меньше указанного в поле close
плавно открываться, если значение фоторезистора между значениями close и open
открываться, если значение фоторезистора больше значения open
блокировать яркий свет, если значение фоторезистора больше или равно значению bright
При любом ручном управлении (энкодер или же кнопки управления на странице в браузере) автоматика выключается. Включить ее можно на странице настроек или нажатием кнопки энкодера. При нажатии кнопки энкодера на плате мигнет диод - автоматический режим был включен.
Api
Для встраивания в систему умного дома или же написания приложения, для управления с мобильного устройства предусмотрено RPC api (обработчик висит на порту 3257):
GET /json — вернет информацию об устройстве в формате json
POST /smarthome — принимает json объект с действием, возвращает информацию об устройстве в json.
Json объект действия должен иметь поля:
action — название действие, которое необходимо совершить (есть в начале программы)
value — при действиях open/close/middle здесь передается тип сервы, которую нужно повернуть (1 — левая, 2- правая, 3 — обе). При действии включении автоматического режима передается on/off. При действии сохранения настроек здесь передается значение настройки.
setting — название настройки, которую нужно сохранить (описаны в начале программы).
В завершение
Изначально данные проект задумывался как очередной эксперимент на пару дней, но по итогу этим "экспериментом" я пользуюсь уже месяц и не думаю прекращать. Если вы тоже решите собрать себе данный девайс и у вас возникнут какие либо вопросы - буду рад помочь, чем смогу. Так же буду рад любой конструктивной критике и предложениям. На этом все, спасибо за внимание.
Список ссылок на исходники
pcb платы
скрипт