Блог

Автоматизация рулонных штор (DIY)

20 января 2019, 17:39

Содержание

О проекте

1. Инструкция

1.1 Материалы

1.2 Механическая часть

1.3 Электронная часть

1.4 Программная часть

1.5 Настройка и калибровка

1.6 Питание и энергопотребление

2. Сторонний софт

2.1 OpenHab

2.2 Node-red в homekit

2.3 HomeBridge

2.4 HomeAssistant

3. Детальное обоснование

3.1 Мотор

3.2 Драйвер мотора

3.3 Крепление мотора

3.4 Плата управления

3.5 Корпус устройства

3.6 Концевики

4. Опыт использования

4.1 Возможные проблемы

4.2 Дальнейшее развитие

О проекте

Для кого этот проект:

1) у вас уже есть рулонные шторы и вы хотите их автоматизировать;

2) вы не хотите покупать готовое и дорогое решение;

3) вы умеете держать паяльник в руках (хотя бы немного);

4) у вас есть 3D принтер или вы можете где-нибудь распечатать модели;

Проект автоматических штор был начат в 2016 году, это моя самая первая поделка из электроники, я начинал с нулевыми знаниями, у меня был arduino kit набор для экспериментов. Со временем механизм развивался, ненадежные узлы заменялись более надежными, сложный проект превратился в максимально простой.

На начало 2019 года, стоимость одного комплекта модернизации шторы составляет всего 7$ (доставка включена).

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

1. Инструкция

1.1 Материалы

1) NodeMcu 1.0

2) Шаговый мотор 28BYJ-48 5V

4) DC-DC преобразователь понижающий 12V -> 5V

5) Конденсатор 100мФ

Даю ссылки на лоты с партией 5шт:

Расходники

1.2 Механическая часть

Прежде чем собирать электронную часть, поставьте на печать 4 модели: 3D модели на thingiverse

Я печатал PLA, 0.2 слой, 50% заполнение.

1.3 Электронная часть

1.4 Программная часть

Прошивка платы последней версии: github (не забудьте поставить звезду проекту)

MQTT

Тут я оставлю примеры команд:

mosquitto_sub -t "/popov/blinds1/#" -v - подписаться на все сообщения

mosquitto_pub -t "/popov/blinds1/command/meta" -m 1 - получить мета информацию

mosquitto_pub -t "/popov/blinds1/command/status" - статус шторы

Все команды можно посмотреть в файле Commands.ino, команды отправляются через топик /popov/blinds1/command/.

Для облегчения работы со шторой, был создан веб интерфейс (о нем дальше).

1.5 Настройка и калибровка

Веб сервер появился с 7 версии прошивки, был сделан на коленке за час. Ему нужно подключение к Интернету.

Определите IP-адрес вашей шторы. (через роутер или посмотрите в Arduino IDE порт OTA)

Когда будете сматывать штору, проверьте положение полотна.

Штора должна наматываться с наименьшим усилием, для этого полотно шторы должно располагаться ближе к окну.

Как калибровать штору

В любом из крайних положений (верхнее или нижнее) нажать на кнопку SET X. Затем, опытным путем подобрать количество шагов, необходимых на полный путь мотору. У меня 140см штора - 29000 шагов.

1.6 Питание и энергопотребление

Питание шторы - 12В.

Мощность в состоянии покоя - 1Вт.

Максимальная потребляемая мощность - 10Вт. (в момент разгона шторы)

Рабочая мощность - 6.6Вт. (движение на максимальной скорости)

Выбирая блок питания, закладывайте 12Вт мощности на одну штору.

Пример: если у вас 3 шторы, то 3*12 = 36Вт (3А, 12В)

2. Сторонний софт

2.1 OpenHab (2.4+)

Пример настройки для openhab 2.4 и выше, под 2.3 не сработает!

Я использую Expire Binding, советую поставить.

$ sudo nano /etc/openhab2/things/blinds.things Bridge mqtt:broker:blinds [ host="127.0.0.1",secure=false ] { Thing mqtt:topic:blinds1 { Channels: Type rollershutter : blinds "Штора" [ stateTopic="/popov/blinds1/position/percent", commandTopic="/popov/blinds1/command/stepper"] Type number : target "Target" [ stateTopic="/popov/blinds1/position/target", min=0, max=100, step=1] } Thing mqtt:topic:blinds2 { Channels: Type rollershutter : blinds "Штора" [ stateTopic="/popov/blinds2/position/percent", commandTopic="/popov/blinds2/command/stepper"] Type number : target "Target" [ stateTopic="/popov/blinds2/position/target", min=0, max=100, step=1] } }

$ sudo nano /etc/openhab2/items/example.items Group:Rollershutter:MIN Blinds "Шторы" <rollershutter> (Blinds) Rollershutter Blinds1 "Штора 1" <rollershutter> (Blinds) Number Blinds1_Target "Штора 1: Target" Rollershutter Blinds2 "Штора 2" <rollershutter> (Blinds) Number Blinds2_Target "Штора 2: Target"

<span class="cm-def">$ sudo</span> nano /etc/openhab2/sitemaps/example.sitemap Frame <span class="cm-def">label</span><span class="cm-operator">=</span><span class="cm-string">"Шторы"</span> { Default <span class="cm-def">item</span><span class="cm-operator">=</span>Blinds Default <span class="cm-def">item</span><span class="cm-operator">=</span>Blinds1 Default <span class="cm-def">item</span><span class="cm-operator">=</span>Blinds2 }

Habpanel виджет

Инструкция к плагину находится здесь

2.2 Node-red

2.3 HomeBridge

npm install -g homebridge-mqttthing

{ "accessory": "mqttthing", "type": "windowCovering", "name": "Штора 1", "logMqtt": true, "mqttOptions": { "keepalive": 30 }, "mqttPubOptions": { "retain": true }, "topics": { "getCurrentPosition": "/popov/blinds1/position/percent", "getTargetPosition": "/popov/blinds1/position/target", "setTargetPosition": "/popov/blinds1/command/stepper" }, "positionStateValues": [ "decreasing-value", "increasing-value", "stopped-value" ] }

2.4 HomeAssistant

Установить плагин для Lovelace UI cover-slider-entity-row.js

~.homeassistant/www/plugins/cover-slider-entity-row.js

#configuration.yaml cover: - platform: mqtt name: "Штора 1" command_topic: "/popov/blinds1/command/stepper" set_position_topic: "/popov/blinds1/command/stepper" set_cover_position: "/popov/blinds1/command/stepper" position_topic: "/popov/blinds1/position/percent" position_open: 100 position_closed: 0 qos: 0 optimistic: false retain: true payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP"

#ui-lovelace.yaml resources: - url: /local/plugins/cover-slider-entity-row.js?v=3 type: js views: - title: Комната - type: entities title: Шторы entities: - type: custom:cover-slider-entity-row entity: cover.blinds_2

3. Детальное обоснование

3.1 Мотор

Мотор выбирался исходя из цены, себестоимость одной шторы не должны была превышать 10$. Выбор шаговых моторов совсем небольшой. Nema17 не подходил по габаритам, 40х40 и вал ровно по центру - полная несовместимость со шторой.

Дешевый и надежный кандидат - униполярный мотор 28BYJ-48. У него есть две версии 5В и 12В.

3.2 Драйвер мотора

Выбор драйвера был долгим и неочевидным. Шло время, менялись драйверы, появлялись новые, уменьшались размеры...

Все изменилось с приходом 3д принтеров, появились новые, мощные, небольшие драйверы, выбор огромен. Я остановился на dr8825, как проверенном варианте.

3.3 Крепление мотора

На что надо обратить внимание:

1) соосность, представьте ролик шторы, он должен стоять ровно относительно горизонта, в одинаковом отдалении от окна, иначе штора будет наматываться неравномерно, мотору будет тяжело крутить;

2) нужно максимально облегчить работу мотора, полотно шторы должно располагаться ближе к окну (представьте рулон туалетной бумаги, как он у вас висит: кончиком к стене или наружу?). Ничто не должно тормозить или задевать штору;

3) пропуски шагов - нужно исключить полностью, если они есть - это значит, что что-то не так. Стандартные настройки прошивки сделаны с хорошим запасом по крутящему моменту;

4) не допускать перегрева мотора, в прошивке заложена защита от перегрева, если мотор работает 3 минуты подряд, скорее всего, что-то пошло не так и он отключается. Но если тестировать штору и "возить" ее вверх-вниз, то можно запросто перегреть мотор, который потом расплавит ваш PLA пластик:) Контролируйте температуру мотора.

3.4 Плата управления

Версия 1. Arduino, проводной вариант, с выносными кнопками.

Версия 2. Arduino, Bluetooth. Почему блютуз? Потому что только через него можно было удаленно прошить ардуину. Сам модуль, который мог бы прошивать ардуино надо было еще модернизировать из стандартных HC-05/HC-06, это было долго и сложно, поэтому за раз я сделал сразу 7 таких модулей. Чтобы шторы работали без задержек, приходилось держать блютуз соединение всегда открытым, а на малинку ver2, надо было устанавливать блютуз стик.

Версия 3. Ardunio, Bluetooth, Радио 433mhz. Танцы с блютузом надоели, он был оставлен исключительно для удаленной прошивки, сам канал связи был через обычные радио модули. Был разработан простенький протокол передачи данных с проверкой по crc сумме.

Версия 4. Arduino, Bluetooth, nrf24. Эта версия проработала дольше всего. Глюков с сигналом было очень много, nrf24 требовало то питания, то антенны, бывало что несколько модулей из одной партии работали совсем по-разному. Сначала была прошивка на nrf24, потом nrf24network, затем я остановился на MySensors, как на наиболее стабильной. Извечная борьба за место на ардуине, 32кб не хватит никому, со включенным дебагом не хватало места для прошивки.

Версия 5. NodeMcu и ничего лишнего. Теперь я точно могу сказать, что ненавижу ардуину и nrf24.:) NodeMcu дало мне абсолютную власть над кодом и железом. Можно, легко и непринужденно, прошивать девайс по воздуху, 1Мб памяти уж точно хватить всем, встроенный веб сервер для настройки. MQTT протокол, передача данных по wifi - идеально.

На 5 версии прошивка с номером 7, потому что на версии 4 было 3 полностью разных прошивки.

3.5 Корпус

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

Проблемы пришли, откуда я их ждал. Потолок у меня алюминиевый, он отлично пропускал блютуз сигнал. А вот с nrf24 были большие проблемы, сигнал не доходил, даже установка более мощных nrf24 модулей, с антенной, не улучшали ситуацию. Мне пришлось пойти на отчаянный шаг - вынести nrf24 модуль за пределы потолка, именно поэтому я начал экспериментировать с крышкой на крепление мотора, в нее я и прятал сам модуль.

Теперь нам пора заглянуть в музей самодельных штор...

3.6 Концевики

Да, в первых версиях устройства, я использовал концевики, сначала 2, потом 1, потом null :)

4. Опыт использования

4.1 Возможные проблемы

Тут список казусов, которые произошли за время использования штор.

1) Самый жесткий фейл был с мотором, с которого я не снял напряжение:) Он работал что-то около двух часов подряд, пока я не почуял запах расплавленного абс пластика. Мотор накалился настолько, что краска на нем вспузырилась, всё пластиковое крепление было желтым и расплавленным. С тех пор, в прошивке, появились дополнительные проверки и защиты. А этот мотор был списан из-за внешнего вида, хотя он продолжал исправно работать.

2) Штора ехала вверх и зацепилась за выступающую часть осушителя воздуха - сбилась калибровка.

3) Штора опустилась на монитор, который стоял слишком близко к окну.

4) Сложности доступа к электронике под потолком. Вся начинка первых версий штор была спрятана под потолком, если что-то выходило из строя, приходилось частично разбирать потолок. Иногда потолок стоял разобранным месяцами!

5) Не разъемные соединения электроники и механики. Сначала к моторам шел длинный метровый провод, чтобы поменять мотор, приходилось разбирать почти все.

6) Однажды мотор не выдержал нагрузок и "раскрошился" изнутри. У этого мотора пластмассовое сердце в виде шестеренок, я не думал, что они могут сломаться, но в одном из моторов сломались, позже этот случай был признан единичным и неподдающимся объяснению.

7) Свежая проблема. Библиотека drv8825 имеет недостаток, если штора уже едет и в этот момент ей указываешь новую команду, она останавливается и начинает выполнять команду, хотя если выбрано одинаковое направление, она не должна останавливаться. OpenHab, по какой-то причине, начал слать по несколько одинаковых команд в секунду, и штора практически стояла на месте, двигалась на пару шагов и получала новую команду. Такая ситуация могла перегреть мотор.

8) Проблема которой не случилось за все время использования. Если штора едет и в этот момент выключается свет - получаем раcкалибровку шторы. Придется указать крайнее положение.

4.2 Дальнейшее развитие

Передаю проект сообществу, буду поддерживать его еще год, а дальше меня ждет переезд, и таких штор там уже не будет.

Жду ваших Pull Requestов в гит.

Жду улучшенных 3д моделей корпуса и крепления.

Было бы круто разработать одноплатный девайс, может кто-то сможет сделать схематику.

Changelog

2019-02-01:
- добавлен конфиг для homebridge;
- поддержка в homeassistant;

2019-02-07:
- прошивка обновлена до версии 7.1.2
Была проблема с retained сообщениями, любая команда могла попасть в retained, и при подписке на штору, эта команда выполнялась. Теперь retained это только позиция шторы. При подписке на штору, сразу получаем статус шторы.

2019-02-12:
- добавлен раздел 1.6 о потребляемой мощности и выборе блока питания;
- прошивка обновлена до версии 7.2, теперь опция реверса мотора работает.

2019-03-18:
- почти 2 месяца тестов на 6 шторах сразу, по работе 95/100 баллов, никаких серьезных косяков нет, боялся за работу штор на окнах, в режиме проветривания, но все оказалось не так страшно: штора спокойно ездит под углом, а чтобы кабель не попадал в окно, при закрытии, я напечатал небольшой фиксатор-крепления к потолку.
Сейчас наблюдаю небольшую раскалибровку некоторых штор. Калибрую штору на определенную отметку, а через некоторое время замечаю, что калибровка сбилась на 100-200 шагов (примерно 5мм). На старых версиях штор, я не видел такого эффекта, калибровка сбивается только на определенных шторах, виной может быть: 1) неравномерная намотка шторы, 2) резкое торможение, возможно надо добавить параметр деакселлерации, 3) железная проблема драйвера или мотора.

2019-04-22:
- убрана устаревшая настройка HomeAssistant - set_cover_position;
- дополнен раздел 1.4 о прошивке nodemcu;
- добавлены, в гитхаб, сторонние библиотеки, которые используются в скетче;

2019-05-26:
- добавлен топик для управления группой штор, теперь все шторы дополнительно подписываются на групповой топик MQTT_device_group;

2019-08-18:
- добавлены примеры для node-red, чистое флоу.с mqtt и множеством штор;


"Теперь я точно могу сказать, что ненавижу ардуину и nrf24.:)" (с)


Блин, я аш прослезился. тоже намучался с глюками НРФок...

Подписался ))) сижу слежу ;) огонь )

Это обязательно нужно перенести в статьи, очень круто!

Классно сделано! Сколько времени на создание модели бокса для nodemcu ушло? Намерен позаимствовать и добавить ещё место для сервопривода и oled экрана.

Заняло не больше часа. Я всегда сначала смотрю thingiverse, если там есть что-то похожее, то беру за основу и переделываю.

Тут я две модели совместил:  бокс для nodemcu и крепление от mini коробочек

зато без пропуска шагов. а спец мотор без какого либо отслеживания. только по времени управлять...


28BYJ-48 не пропускает шаги совсем, ни разу, только если не держать рукой штору.


Полезная тема, хотя и гиковская)
Если не секрет, почему на новом месте не планируете использовать такие шторы? Что вместо них?

Да, Андрей, расскажи что на в новом доме по управлению рулонными шторами, есть вариант проще? 

Достаточно ил кинуть 12 в кабель к шторам, чтобы потом при желании их автоматизировать?



В доме у меня шторы размером 2 на 2 метра, конечно, там нужен будет вариант посерьезнее. Куплю трубчатый мотор на 220В. 
Вроде бы эти моторы не бывают 12В, только 24В или 220В, когда закладываешь кабель, надо учитывать потери напряжения на расстоянии

https://www.calc.ru/poteri-napryazheniya-v-kabele-kalkulyator.html">Калькулятор потерь напряжения 

30 метров, 1мм2, 12В  - 0.878 В (7.32 %) - то есть приходит 11В вместо 12В

30 метров, 1мм2, 24В - 0.439 В (1.83 %) - потери незначительные 23.5В приходит

1000x_image.png?1552283686

У меня окно 2.70 в ширину на 2 в высоту. Получается тоже надо на 220 кабель. А с Новым мотором определился?

Подскажите пожалуйста, как отправить команду на 5%, 10%, 25%... открытие с консоли? (Хочу в сценарий domoticz вставить. Ну а если сразу для него команду подскажите, буду чрезмерно благодарен :)

Вот такая mqtt команда:

mosquitto_pub -t "/popov/blinds1/command/stepper" -m 20

Также принимает команды: stop, down, up, 0, 10, 20 ... 100 , может принять и 15, но округлит до 20, калибровка по десяткам только.

А есть какая-то тайная фишка калибровки? Верхнюю и нижнюю точку держит, а вот с процентными данными ерунда полная. 10% это пол окна, а 70% где-то на 80-85%. А еще она иногда сама по себе включается. Выставляю ~50%, система открывает и останавливается, все ок,  а через некоторое время система сама открывает окно.. 
Так же хотел уточнить, esp держит свою wifi сеть, как отключить ее видимость, или пароль поставить? (Как понимаю, это сеть веб сервера.)

С калибровкой есть фишка, есть массив со значениями шагов для каждого десятка - надо их поменять в самой прошивке. Пиши в телеграм мне, помогу.

Спасибо за наводку, массив нашел и скорректировал под себя. Но вот с задачей хоть какого-то управления с Domoticz не могу справится. Как бы отправлять MQTT команды через html или script? Или там все проще, и я не туда копаю. Увы, но в скриптах совсем не силен, все делаю через blockly в Domoticz. 

Если зайдешь на WEB UI штор и посмотришь какие там ссылки, то это и будет html управление

пример: http://192.168.1.24/down">http://192.168.1.24/down - это сработает:)



Я хотел бы отключить веб сервер, он у меня в wifi сетях светится, да еще и не запароленный почему-то... 

Или даже если я его отключу в конфигах, ссылки все равно останутся рабочими? Или может есть возможность убрать/скрыть eps-шную сеть, которую он транслирует.

1000x_image.png?1556803017


1000x_image.png?1556803261
А не было мысли то же самое приспособить под протяжку самой шариковой нити, как у Soma https://www.somasmarthome.com">https://www.somasmarthome.com??? 

нет, никогда не думал об этом



Подскажите пожалуйста, скетч на GitHub полностью рабочий? Или требует каких то изменений (кроме настроек wifi). У меня скетч не компириуется если не править его. 

1000x_image.png?1566238754

если в этих строках убрать "D" то компиляция проходит, но после прошивки модуль не загружается. В мониторе порта по кругу крутиться 

1000x_image.png?1566238920

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

у тебя nodemcu либы не установлены, D8 это константа там должна быть


напиши в телегу мне может, если не разберешься

Все, разобрался, либы были установлены, только я шил Generic ESP8266 module, а нужно было выбирать NodeMCU Module. Все завелось, спасибо за подсказку.



Подскажите, плиз! Залил все на плату, плата стартует в логах есть запись что все ок, а через браузер не могу зайти,  даже винду в паралелсе поставил думал может из-за мак оси бета такая проблема, но дело не в мак оси:( 

1000x_image.png?1566491885

P.s. и network ports для OTA не появляется. 

Даже если к ней по wi-fi подключиться все-равно веб интерфейс не доступен. 

Я разобрался, сорри за беспокойство. Если кто столкнётся  с таким же, имейте ввиду что без поднятого брокера интерфейс не открывается в браузере и для заливки прошивки по OTA в IDE не появляется (для меня так и непонятно почему). 

Пытаюсь приспособить это все для управления рулонными шторами с цепочкой. Силы этого моторчика недостаточно для таскания  цепочки буду думать что можно использовать  качестве моторчика. Может кто-то подобное реализовал и поделится опытом, или советом. Нужен компактный и более мощный. 

Добрый день. Пытался скомпелировать проект, но adruino ide пишет Arduino: 1.8.10 (Windows 8.1), Плата:"Arduino/Genuino Uno"

blinds-popov:1:10: error: ESP8266WiFi.h: No such file or directory

compilation terminated.

exit status 1
ESP8266WiFi.h: No such file or directory   Как мне выбрать плату 

NodeMCU.

Все разобрался. Нужно в настройках, дополнительные ссылки для менеджера плат ввести: http://arduino.esp8266.com/stable/package_esp8266com_index.json">http://arduino.esp8266.com/sta... Затем в  инструментах, плата, в менеджере плат набрать esp. Загрузятся  платы. 



Нужна помощь, в home assistent в configuration.yamls строка sset_cover_position:s"/popov/blinds1/command/stepper" дает ошибку при проверке конфигурации


https://sprut.ai/static/media/cache/00/24/80/5/1952255/46699/1000x_image.png?1574089352" alt="1000x_image.png?1574089352" />

Та же проблема. Вы не разобрались что делать? 



Я думаю, там кака то ошибка, потому как если её удалить (строчку), ошибка исчезает.  Но штора из НА управляется, если вручную из панели разработчика вызывать службы cover.close_cover, open_cover и set_cover_position. Но у меня не получается запустить карточку шторы с ползунком, UI ругается. Вероятно, я не понимаю как правильно установить плагин  для Lovelace UI https://github.com/pleeja/Lovelace1/blob/master/cover-slider-entity-row.js">cover-slider-entity-row.js ...

https://sprut.ai/static/media/cache/00/54/64/5/3890363/60781/1000x_image.jpg?1592410063" alt="1000x_image.jpg?1592410063" />

Да нет, все заработало нормально. Ползунок работает. Уже и забыл про эту строчку.

- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: iframe
url: 'http://192.168.31.144'
aspect_ratio: 50%
title: Зал право
- type: iframe
url: 'http://192.168.31.158'
aspect_ratio: 50%
title: Зал лево

так настраивал, как и гуру прописал. Все прекрасно. За пол года использования здох один драйвер мотора, поменял. Остальные 4 без нареканий.

В общем, разобрался. 1. Из настроек configuration.yaml нужно убрать строку "set_cover_position: "/popov/blinds1/command/stepper"", выдает ошибку потому что параметр больше не поддерживается. 2. "resources:
- url: /local/plugins/cover-slider-entity-row.js?v=3" нужно прописывать не в ui-lovelace, а в configuration.yaml  в раздел Lovelace: 3. ну и не забывать в entity: cover.blinds_2 "blinds_2" менять на то, что у вас получилось в строке name платформы cover


И тогда всё работает.


Нет, у меня ""resources: - url: /local/plugins/cover-slider-entity-row.js?v=3" прописано в ui-lovelace. Видимо, просто строку с ошибкой нужно убирать.



И почему то не работает, через веб интерфейс управляется, а хоме ассист не работает. Вроде все по описанию. Создалась менюшка шторы, но она не активна. Прошу помощи...

https://sprut.ai/static/media/cache/00/24/80/5/2000269/46701/1000x_image.png?1574090709" alt="1000x_image.png?1574090709" />

Проверить нет возможности, не смогу подсказать.

Может ну по удаленке, чтоли. А тот и спросить не у кого.


День добрый.

Аналогичная ситуация, менюшка создалась, а моторчик на ползунок никак не реагирует. Решили как-то свою проблему? 

Нужна помощь, в home assistent в configuration.yamls строка sset_cover_position:s"/popov/blinds1/command/stepper" дает ошибку при проверке конфигурации


https://sprut.ai/static/media/cache/00/24/80/5/1952255/46699/1000x_image.png?1574089352" alt="1000x_image.png?1574089352" />

Спасибо огромное за проект, он реально очень интересен. Я его реализовал с другой механикой редуктором под рулонную штору. Кстати у моторов есть слабое место, при тяжелых шторах начинает прокручиваться шестерня на выходном валу, пробую фиксить каплей суперклея, посмотрим как жить будет. 


А меня подвела математика, я почему-то решил что холостое потребление 0.06A при 12 вольтах что это не 0.72 Ватта, а 0.072, и запитал это дело от 18650, на тестах при сборках и печатях шестерен по паре часов за заход успешно крутило туда/сюда и как-то незаметно было расход батареи. А запустил уже в реальности и за пару суток разрядив Аккум расстроился... Ну сам себе злобный Буратино, в след раз буду точнее считать. 


Отказываться от аккумуляторов в целом не хочется, собственно вопрос: что можно оптимизировать для питания от батарей и нет ли планов на такую оптимизацию? 


Теоретически же можно сократить холостое потребление за счет глубокого сна mcu (если она это умеет), из автоматизаций можно понять что дома никого нет и спать переодически просыпаясь для опроса, на ночь после захода солнца в закрытом состоянии и до восхода тоже может спать глубоким сном. 


P.s. непонятно зачем в твоей схеме DCDC, ведь MCUшке все-равно что на vin приходит The device can operate on an external supply of 6 to 20 volts. If using more than 12V, the voltage regulator may overheat and damage the device. The recommended range is 7 to 12 volts. Я так и запитал от 12 вольт повышающей от батарейки. Во время тестов MCUшка спокойно жила на напряжениях до 16 вольт.

Я не занимался вопросами работы от аккума, конечно, все можно сделать, имея желание и достаточно времени:)

ps: у меня при 12В довольно сильно грелась, не знаю почему

Странно у меня больше недели висела на ЛБП на 12.4 вольтах и мотор крутился нонстопом по 20-30 минут подряд во время тестов, не заметил нагрева ни у MCU ни у мотора, ни у драйвера. 

Во-первых, огромное спасибо автору за труды! Серьезный проект и гениальная реализация! А отказ от концевиков и использование пзу esp - просто достойно уважения! Я уже начал чертить крепления для 3d печати. 


У меня есть немного вопросов: (я новичок, впервые работаю с шаговыми двигателями)


1) Вы питаете драйвер 12v, а мотор используете 5v. Насколько я понимаю, мотор должен перегреться, если не в режиме движения, то в режиме удержания положения то точно. Почему этого не происходит у вас? Когда мотор не двигается, он отключается полностью?


UPD. На сколько я понял, вы отключаете мотор пином D5, когда движение закончено. Попробовал на своей шторе, при отключении мотора вроде не разматывается, но не знаю как будет на ветру. Выбираю между двух вариантов, сделать как у вас (повышенное напряжение и отключение движков при отсутствии движения) и номинально напряжение и удержание положения двигателя после остановки.


2)

Мотор у меня такой же как у автора (28BYJ-48-5V). Но на данный момент есть только драйвер "EasyDriver A3967" (такой же как на фото в пункте 3.2, красный слева). Подключил его (к esp подключил только пины dir и step, питание 12v) - работает, но крутит медленно (4 оборота/мин, при цифре 30 в web интерфейсе). При остановке и мотор и драйвер дико греются (но держит положение хорошо, рукой трудно сдвинуть). Стоит ли полностью переходить на dr8825, если нет, то что изменить в скетче для правильно работы с A3967 ? Собирать я проект я 100% буду - хочется, чтобы все нормально было. 

UPD. Уже понял почему грелся мотор =) Поясните, зачем нужна отдельная библиотека для драйвера? Разве не достаточно просто дергать step и dir? 


3) У меня 5 рулонных штор. Висят подряд одна за одной. Я правильно понимаю, что под каждую нужна будет отдельная esp? 

UPD. За весь день "экспериментов", понял, что лучше на каждую штору по esp. И так баги постоянно в web-интерфейсе (очень криво работают настройки в правом столбце, при нажатии кнопок в левом столбце постоянно выкидывает на окно авторизации в интерфейс).

Извиняюсь, может быть за глупые вопросы - я дилетант в данной теме. 

1) мотор и перегревается, поэтом его надо отключать, причем в коде, есть программная защита, после трех минут непрерывной работы - он отключается. 

Никакой ветер не меняет положение мотора, держится нормально, если попробовать рукой размотать - чувствуется усилие.

2) стоит переходить, я долго подбирал разные варианты драйверов/моторов, остановился на этом, уже год проблем не знаю, работает как часы всегда

3) у меня 6 штора, висят подряд, каждая - это свой отдельный девайс.

Пока редактировал сообщение, вы успели ответить. 



Поясните, зачем нужна отдельная библиотека для драйвера? Разве не достаточно просто дергать step и dir?  

 

Под Икеевские шторки корпус для мотора такой печатал https://www.thingiverse.com/thing:2065722">https://www.thingiverse.com/th... 

Андрей, спасибо за проект. Почти реализовал у себя, осталось напечатать детали.)

Есть такой вопрос. У меня шторы день-ночь и вот хотелось бы, чтобы шторы открывались-закрывались не кратно 10%, а с единицами. Я пока в программировании новичок, подскажите куда посмотреть, какой код поковырять, чтобы можно было задавать точный процент?

Всплыл один баг, который никак не могу одолеть. 

При полном опускании шторы командой stepper 100 или down, штора через пару секунд ожидания перемещается в положение 70. Если отправить команду на перемещение в любое другое положение, то все нормально. Куда копать? 

напиши в телеграм мне, может найдем в чем дело

начать надо с калибровки,  я думаю

Шаги уменьшить, вместо 29000 попробуй 27000.

Баг крайне странный. 

Вылезает только на определенном mqtt брокере. Подключаю к другому брокеру - все норм. При чем если отслеживать брокер по подписке # (то есть показывать все сообщения), то перед возвратом штор на 70% в брокере ничего не отправляется. Просто появляется сообщение от шторы, что она поехала к 70%. Изменил в прошивке mqtt фразу подписки с /popov на /popov1 и баг пропал. 

Кстати, сильно большое значение общих шагов тоже вызывает баги (web интерфейс начинает дико глючить)

Наконец, все заработало как в видео. Огромное спасибо. Немного разбогатею на днях, обязательно закину денежек в поддержку. Вопрос такой: кто нибудь пробовал подключить шторы к кубу, ну чтобы повернул, как кран, против часовой открыл шторы, по часовой закрыл шторы. Что-то не получилось градусы сделать.

Здравствуйте! Проект очень понравился. Сделал на свои рулонные шторы, но с приводом на цепь. На AliExpress есть вариант, но управление по 

Bluetooth (https://a.aliexpress.ru/b8UEjJKa">

https://aliexpress.ru/item/4000385972077.html?spm">https://aliexpress.ru/item/4000385972077.html?spm

). Как можно добавить кнопки в скетч для ручного управления? Прошу помочь.

hi , sorry if i write in english. I have a question. Is there any chance that this project will work with A4988 driver and nema17 motor?

i use wemos D1 mini and i uploaded the file but the problem is that the nema motor works only in one direction.


hi, i tried nema17, indeed there was problem with direction, somehow I solved it but there was not enough torque. I have no plans to support nema17

is there any chance to send me the files for Nema17? the thing is i want to try it to pull some light curtains. I dont need so much torque because they are verry light. PS: does it work with A4988? or i need a server like yours?

Sorry. I tried to find it, no luck

ps should work

Ok thanks.  Good work for this project. i dint find anything like this. I will try to see how i manage.   You will have any updates soon ?

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

А нельзя ли как то более подробно про прошивку? Для тех, кто с нуля - чем, как, может скрины какие? MQTT сервер - как его поднять дома и на чем лучше? А то Все комплектующие купил-напечатал, хочу заняться воплощением уже...


Спасибо-пожалуйста.

Ура! Железная часть сделана. Спасибо автору.

Но с управлением что то не выходит - через веб-интерфейс все нормально работает (

Кстати, выше уже говорили, действительно, без поднятого Москито в веб-интерфейс не заходит), а через HomeBridge на айфон пробросить не получается... Вроде всё установил, но штора в ХоумКите не появляется. В коммандной строке Хоумбридж пишет "Loaded config.json with 0 accessories and 0 platforms."

Куда копать?

Можете уточнить на какой версии Arduino вы писали этот код?



Просто у меня проблема, не компилируется скетч. Прилагаю скрины с ошибками и настройками платы.

https://sprut.ai/static/media/cache/00/56/34/5/3878499/58858/1000x_image.png?1590271188" alt="1000x_image.png?1590271188" />https://sprut.ai/static/media/cache/00/56/34/5/3878499/58857/1000x_image.png?1590271161" alt="1000x_image.png?1590271161" />
"Вырез на корпусе, специально спроектирован под эти коннекторы. Крайняя ножка 5pin (красный провод мотора) соединен с 2pin ножкой питания. Таким образом на мотор приходит 12V." - в этом описании всё правильно?  Красный провод мотора это средний в 5пин и крайний в 2пин. Как бы...

Проект супер!!! Заранее, очень далёк от программирования, прошу не судить строго. Как-то можно ещё реализовать (к этому всему добавить) дополнительное управление с кнопок, иногда удобнее просто подойти к подоконнику и нажать кнопку чем искать телефон, допустим добавить две кнопки (вверх и вниз) которые будут открывать и закрывать пока удерживаете их, а двойное нажатие откроет или закроет штору до конца. Ещё возможно ли при таком управлении  соединить несколько штор (а именно 3), тоесть что бы с двух кнопок управлять несколькими шторами одновременно? 
Заранее всем огромное спасибо за помощь!!!

У современных драйверов (например, TMC2209) есть технология  "stallGuard", которую на 3d принтерах используют как концевик. В данном проекте это можно как-то применить?

И всё таки хотелось бы попробовать подобрать такой мотор, который будет работать в штатном режиме без перегрева. Если не ограничиваться такими жесткими ценовыми рамками, как у вас, можно подобрать прям хороший вариант? 

Коллеги! Не могу понять в чем проблема. Собрал всю эту конструкцию на макетной плате, и всё вроде заработало. Через какое-то время добавил штору в HomeAssistant, всё добавилось, но при попытке покрутить мотором, он только напрягался (как будто на удержании), но не крутился. Решил зайти в вебсервер и настроить шаги и скорость мотора, но веб-сервер перестал открываться, при этом роутер ip адрес ему присваивает.

Уже заново заливал прошивку, включал только плату без двигателя и других проводов, никаких изменений, ip адрес присваивается, но веб сервер не открывается. Что можно с этим сделать?

P.S. На NodeMcu заливал стандартную прошивку мигания светодиодом - всё работало, следовательно плата цела

klishchenkov
Выше писали пока nodemcu не подключится к mqtt брокеру морда по ip не откроется. 

Посмотрел лог mqtt брокера и он выдает такую информацию:

1619369363: New connection from 192.168.0.31 on port 1883.
1619369363: New client connected from 192.168.0.31 as bedroom_blinds (p2, c1, k10, u'mqtt').
1619369363: Socket error on client bedroom_blinds, disconnecting.

Плата действительно не может к нему подключиться, но в чем может быть проблема, если логин/пароль точно верны?

Нашел решение своей проблемы: почти в самом начале скетча нужно отредактировать параметр "MQTTClient client" дописав к нему (256), получилось: MQTTClient client(256);

Если я правильно понял, то по-умолчанию топики имеют размер 128 бит, и если название устройство будет длинное, то оно просто не поместится в указанный объем, а дописав параметр (256) мы расширили объем топика до 256 бит.

Теперь у меня другая проблема: не получается скомпилировать прошивку с параметром "MOTOR_MICROSTEPS = 2" (т.е. в режиме half step). На строчке №60: "DRV8825 stepper(MOTOR_STEPS, PIN_DIR, PIN_STEP, PIN_ENABLE, PIN_MODE0); //half step" начинают выскакивать ошибки. 

Как заставить работать эту всю систему с дроблением шага?

andreypopov
Подскажите как к алисе подключить? Пробросил по mqtt в homebridge, но плагин g-on не работает, существуют еще варианты?

Спасибо за проделанную работу!


Вернуться назад
Вернуться назад