Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LazyRolls

Automatic motorized roller blinds project.

Моторизированный привод для рулонных штор. Управление по Wi-Fi. Питание внешнее. Возможна интеграция в системы умного дома.

Ссылки

Описание проекта: https://mysku.club/blog/diy/62110.html
Файлы для печати: https://www.thingiverse.com/thing:2857899
Видео работы: https://www.youtube.com/watch?v=lvBh_m7pOAI

Плагины для систем умного дома

Domoticz
Hubitat Elevation (Автор yix)
Home Assistant (встроенная поддержка через MQTT Discovery с версии 0.09)
Homebridge (Автор Vitva)
Управление с пульта ИК / RF433 (Автор SamoS)

Структура директорий

Firmware - готовые прошивки
Source - исходный код
Source\data - файлы для SPIFFS. Иконка, css-стили, java scripts
Board - файлы схемы и платы для DipTrace
Board\Gerbers - gerber files для заказа плат на фабрике
3D_parts - OpenSCAD и stl для печати

Changelog

05.04.2018 v0.01 beta

  • Более-менее рабочая версия с настройками. Не всё доделано, многого не хватает.

07.04.2018 v0.02 beta

  • Автосоздание файлов CSS и favicon в SPIFFS при их отсутствии/обновлении.

28.04.2018 v0.03 beta

  • Исправлен баг с закрытием шторы после перезагрузки.
  • Добавлена работа по расписанию.

22.02.2019 v0.05 beta

  • Управление двигателями идёт в прерывании, увеличилась плавность работы двигателя и отзывчивость интерфейса.
  • Номера пинов 4 и 5 исправлены, теперь типичное подключение ABCD. Настройки менять не надо.
  • Концевик можно инвертировать (нормальнозамкнутый - нормальноразомкнутый). Актуально для датчика Холла вместо концевика.
  • Добавлен http-запрос /set?pos=X (X = 0 - 100, в процентах).
  • Состояние можно получить в виде XML по адресу /xml.
  • Прошивка откомпилирована с поддержкой модулей с флеш памятью PUYA.
  • Отображается размер SPIFFS, ссылка на форматирование появляется при ошибке файловой системы.

16.03.2019 v0.06

10.04.2019 v0.07

  • Добавлена встроенная в esp8266 подтяжка пина концевика. На платах NodeMCU и тому подобных, отпадает необходимость во внешнем резисторе, R8 по схеме.
  • Добавлена настройка безопасного порога, количество шагов, при которых штора игнорирует концевик, пока не выползет из зоны его действия. Для герконов и датчиков Холла можно установить значение больше стандартных 100.

02.06.2020 v0.08

  • Сделан плавный пуск двигателя. Это чуть повысило мощность мотора и максимальную скорость, но незначительно. Пока в черновой реализации и без какой-либо настройки.
  • Прошивка проверена и скомпилирована с Arduino core for ESP8266 v2.7.1. Исправило отваливание wi-fi сети в некоторых случаях.
  • Исправлен баг в JavaScript, из-за которого иногда лагал веб интерфейс, при загрузке страниц и сразу после.
  • Во время движения по MQTT в формате JSON сообщается не только текущее положение, но и точка назначения (destination, в процентах).
  • Синий светодиод теперь используется. Он кратко моргает при подаче питания. После каждой неудачной попытки подключиться к основной сети зажигается на 1 секунду. Если к сети подключиться с трёх попыток не вышло, светодиод горит непрерывно, значит создана собственная WiFi сеть. (Оранжевый светодиод программно не управляется, подключен напрямую к питанию. Его можно только отпаять/откусить/заклеить.) В нормальной работе функцию диода можно указать в настройках, а также менять по http/mqtt. Более подробно imlazy.ru/rolls/led.html.
  • Отображается напряжение питания для новых плат. На старых, при желании, можно допаять два резистора. Цепочка Vin - 150K - esp_adc - 10K - GND.
  • Исправлен баг с максимальным количеством шагов игнорирования концевика при опускании шторы. Теперь работают значения более 255. До 65000. Актуально для герконов и датчиков Холла. Спасибо acu73.
  • Исправлен баг с невозможностью указать порт MQTT сервера более 9999. Спасибо George Tkachenko.

29.01.2021 v0.09

  • Исправлен баг со сбивающимся временем.
  • Пресеты для точного позиционирования шторы. Актуально для штор день/ночь. Положения задаются в настройках. Могут использоваться в расписании.
  • Добавлены команды для MQTT. "=NNNNN" (без кавычек) - позиционирование шторы в шагах. "@N" - переход к пресету N.
  • Добавлен http-запрос /set?steps=NNNNN (NNNNN = 0 - 65000, в шагах мотора).
  • Добавлен http-запрос /set?preset=N (N = 1 - 5). Переход в заданное положение.
  • Добавлено автоматическое перенаправление на страницу настроек при подключении к шторе в режиме точки доступа (первоначальная настройка).
  • Добавлены MQTT-комманды open и close. Равнозначны on и off. Для удобства интеграции с HA.
  • Добавлен MQTT Discovery для Home Assistant. Включается в настройках, автоматически добавляет штору в HA.
  • Библиотека для работы с MQTT изменена с AdaFruit на PubSubClient (by Nicholas O'Leary).
  • Концевик может быть установлен на полностью закрытое положение, вместо открытого. Например, для жалюзи.
  • Проценты в MQTT командах и статусах можно поменять на обратные, т.е. 0% значит закрыто, 100% - открыто. Так по умолчанию считает Cover в Home Assistant.

30.03.2021 v0.10

  • Исправлен баг с количеством шагов игнорирования концевика. Фактическое было в 8 раз меньше указанного в настройках.
  • Повышена точность измерения напряжения, на платах с резисторами на ADC.
  • Добавлена поддержка драйверов Step/Dir моторов (например, NEMA17). Можно подключать двигатели и драйвера от 3D принтеров. Распиновка пока фиксированная, En 4, Step 13, Dir 12.
  • Минимальное время шага уменьшено до 50 мкс (было 100). Этого должно хватить, чтобы крутить обычный NEMA17 на практически максимальной скорости при 1/16 шага.
  • В MQTT добавлен топик присутствия (alive/живой). В него отправляется "online" при подключении к MQTT и "offline" при отключении, в т.ч. аварийном, по "завещанию" (LWT). В Home Assistant используется как availability topic, для определения состояния привода.
  • В настройках можно изменить количество шагов, которое привод прокручивает вверх в поисках концевика после предполагаемого нуля. Если поставить 0, запаса не будет. Если поставить большое число, будет дольше крутить вверх, пока не сработает концевик. Но в случае проблем с концевиком, может привести к перегреву мотора или поломке шторы. Менять не рекомендуется.
  • Добавлена возможность подключения кнопки для управления. Подключается на Gnd и один из пинов GPIO 0(DTR)/2/3(RX), который выбирается в настройках. При движении нажатие кнопки останавливает штору, двойное нажатие - останавливает и перезапускает в противоположном направлении. Долгое нажатие (1 секунда) - отправляет в первый пресет или во второй, если штора уже в первом.
  • Синий диод можно настроить на мигание при нажатии на кнопку.
  • Легкий редизайн внешнего вида, в первую очередь мобильной версии. JS-код вынесен в отдельный файл в spiffs.
  • Статичные файлы сжаты gzip'ом.
  • Обновлена страница /update, добавлены подсказки по перепрошивке.

05.08.2021 v0.11

  • Экспериментальная фича: режим мастер/ведомый по проводу. Подробнее imlazy.ru/rolls/master.html.
  • Помимо кнопки, можно задействовать ещё один дополнительный вход. Например, для геркона, определяющего открытие окна. Статус передаётся по MQTT в выбранный топик.
  • Новый топик MQTT, сообщает в формате JSON состояние (ip, rssi, uptime, voltage, aux_input). При включенном HA MQTT Discovery, автоматически добавляет эти сенсоры в Home Assistant.
  • (v0.11.2) Исправлен баг с получением времени по NTP при старте.

09.11.2021 v0.11.3

  • Исправлен баг с отображением hostname в сети. В XML статус добавлен hostname. Разрешена отдача XML сторонним страницам (CORS). Спасибо Samos.

27.01.2022 v0.12

  • В MQTT Discovery добавлены фичи Home Assistant 2021.11: ссылка на страницу конфигурации (visit device), доп. статусы попадают в раздел "Diagnostic".
  • Добавлены команды click, longclick для MQTT и /set?click, /set?longclick для HTTP. Делают то же самое, что и кнопка управления (открыть/закрыть/стоп; пресет1/2). Для работы этих команд, включать аппаратную кнопку не требуется.
  • Можно изменить название шторы в настройках, для удобства. Отображается в заголовке окна и в поле name в XML.
  • Настройка статического IP.
  • При прошивке на чистый модуль поле SSID остаётся пустым и привод сразу стартует в режиме точки доступа, а не пытается приконнектиться к несуществующей сети lazyrolls.
  • Исправлена (надеюсь) верстка страницы расписания.
  • Проект модифицирован для компиляции в PlatformIO, но можно откомпилировать и в ArduinoIDE. Часть кода переписана для экономии памяти. Arduino core for ESP8266 обновлено до v3.0.2.
  • Добавлен лог событий. Открывается в веб-интерфейсе по ссылке из блока информации. Лог на английском, но думаю там и так понятно. Отображаются основные события, причина перезагрузки, отвалы от сети и mqtt-сервера, срабатывание концевика в движении, синхронизация времени. Для отладки возможных проблем.

10.12.2022 v0.13

  • Поддержка приемника 433МГц.
  • Восход и закат в расписании.
  • Поддержка двух физических кнопок с возможностью выбирать действие по нажатию и, в режиме мастера, кем управлять. Можно сделать раздельные кнопки Открыть и Закрыть, а можно разделить кнопки для управления только этой шторой и всей группой.
  • На главную страницу добавлены кнопки пресетов. В режиме мастера добавлен выбор, кем управлять, всеми, этой шторой или ведомыми.
  • В режиме мастера можно в расписании раздельно управлять ведущим и ведомыми.
  • Можно задать пароль для режима точки доступа, создаваемой после включения привода при отсутствии Wi-Fi.

26.01.2023 v0.13.1

  • Добавлена единица измерения для напряжения в Home Assistant.

26.03.2023 v0.14 beta 1

  • Добавлена поддержка моторов постоянного тока, в том числе с энкодером. Подробнее imlazy.ru/rolls/motor.html.
  • Добавлен второй концевик, на противоположной стороне.
  • Добавлены команды MQTT. По команде "report" сообщает по MQTT свой статус. Командой "endstop" можно эмулировать нажатие концевика, например, zigbee датчиком открытия двери.
  • По MQTT отправляются статусы open / opening / close / closing / stopped для Home Assistant.
  • Добавлен gratuitous ARP. Привод постоянно сообщает свой IP в сети. Включается автоматически, если не используется MQTT. Может предотвратить некоторые случаи недоступности привода в сети.

Authors

About

Automatic motorized roller blinds project

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages