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

20 янв. 2019 г.

Содержание

О проекте

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. Инструкция

Вот так выглядит моя штора, никакого конкретного названия нет, но знаю, что такой профиль очень распространен. Внутри находится сам ролик, это вал с диаметром 19мм.  Сверху виднеется проводок, это я заранее провел питание 12V.

Ничего ломать и высверливать не будем, заводские детали можно будет вернуть на место.

Если у вас вал другого диаметра, придется нарисовать 3д модель муфты, и не забудьте скинуть ее мне.

1.1 Материалы

1) NodeMcu 1.0

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

3) Драйвер мотора DRV8825

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

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


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

NodeMcu V3 1.0

ссылка - 15$ за 5шт

Не перепутайте плату, чип должен быть квадратный, как на картинке, у этой платы уменьшенные размеры.

28BYJ-48 5V

ссылка - 7.94$ за 5шт

Ищите лот без драйвера ULN2003, его мы не будем использовать. 5V версия и питать его будем 12V, все верно.

DRV8825

ссылка - 6.79$ за 5шт

DC-DC понижающий

ссылка - 3.83$ за 5шт

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

ссылка - 1.13$ за 10шт

Расходники

Макетная плата

ссылка - конкретно эти макетки легко режутся канцелярским ножем.

Коннекторы 2pin и 5pin

ссылка - 2pin под питание, нужно исключить неправильное подключение. 5pin - коннектор для мотора.

Dupont

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

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

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

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

1) Нужно переделать мотор в биполярный. Вскрыть крышку перерезать центральную дорожку. Заодно можно перепаять провода, необходимого размера и в белой термоусадке. Можно покрасить белым лаком.

2) Прикрутить мотор к держателю двумя болтами M3, болты любой длины, даже самые короткие подойдут. 

3) Запрессовать вал мотора в муфту. Входит достаточно туго, не надо клея. Затем всунуть муфту в ролик шторы, муфта становится плотно, никаких люфтов быть не должно.

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

Штора в сборе, теперь ее можно вернуть на окно.

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


Схема биполярного мотора 28BYJ-48

У всех моих моторов одинаковая цветовая схема, но вы проверьте, чтобы было как на картинке. 

У нас две обмотки мотора: 

Синий + желтый - это A1 и A2

Оранжевый + розовый - это B1 и B2


Схема подключения к NodeMcu

Reset и Sleep соединяем перемычкой.

Fault (3.3V) и GND это питание от NodeMcu.

Vmot и GND - это 12V входящее питание, между ними подключить конденсатор 100мФ. Vmot идет на красный пин мотора (его питание).

A1,A2,B1,B2 - это пины мотора.

На плате drv8825 есть потенциометр, нужно выкрутить в крайнее левое положение, иначе мотору будет слишком жарко. (ограничить ток)

Питание и DC-DC

IN+  входящие 12В


GND - общая земля, идет на nodemcu и на gnd драйвера.


VO+ выходное напряжение 5В (не забудьте подкрутить потенциометр на плате, чтобы на выходе было 4-5В)

Идет на Vin nodemcu - питание платы.

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

Компоненты идеально помещаются между пинами nodemcu.

Вырез на корпусе, специально спроектирован под эти коннекторы. Крайняя ножка 5pin (красный провод мотора) соединен с 2pin ножкой питания. Таким образом на мотор приходит 12V.

Тут я использую цветовую схему: синие проводки - одна обмотка мотора, желтые - вторая.

И конечно все заливаем термоклеем:)

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

Закрываем крышкой и вешаем на двустороннюю ленту над шторой.

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

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

Открыть файл blinds_popov.ino и внести несколько изменений:

1) Данные wifi сети (ssid должен быть без сложных символов)

2) OTA - данные для беспроводной прошивки, лучше без пароля

3) MQTT сервер, где установлен mosquitto.

namespace и device формируют топик mqtt сообщения, по умолчанию будет: /popov/blinds2/#, device должен быть уникальным.

4) WEB Server - имя и пароль для авторизации на сервере.

Прошивка

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

Если в Arduino IDE, нет Network Ports, то надо перезагрузить программу - они появятся.

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)

Веб интерфейс для управления и настройки

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

Зеленые кнопки: 100%, Вверх, Стоп, Вниз - управление шторой.

Синие кнопки -  для калибровки.

SET TOP - установить верхнее положение шторы

SET BOTTOM - нижнее положение

MOVE - двигаться на Х шагов вниз или вверх, игнорируя лимиты.

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

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

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

В любом из крайних положений (верхнее или нижнее) нажать на кнопку 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) {channel="mqtt:topic:blinds1:blinds",expire="60s"}
Number Blinds1_Target "Штора 1: Target"                                                      {channel="mqtt:topic:blinds1:target"}

Rollershutter Blinds2 "Штора 2" <rollershutter> (Blinds) {channel="mqtt:topic:blinds2:blinds",expire="60s"}
Number Blinds2_Target "Штора 2: Target"                                                      {channel="mqtt:topic:blinds2:target"}
$ sudo nano /etc/openhab2/sitemaps/example.sitemap    

Frame label="Шторы" {         
        Default item=Blinds
        Default item=Blinds1
        Default item=Blinds2
}

Habpanel виджет

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

2.2 Node-red в homekit

Я использую такую связку openhab+nodered+homekit

Код для импорта смотрите ниже.

[{"id":"9b64f009.c36cd","type":"homekit-service","z":"ef73185f.17c5f","bridge":"7533f3d.82ae90c","name":"Шторы","serviceName":"WindowCovering","manufacturer":"Default Manufacturer","model":"Default Model","serialNo":"Default Serial Number","characteristicProperties":"{\n    \"CurrentPosition\":{\n        \"minValue\":0,\n        \"maxValue\":100,\n        \"minStep\":1\n    },\n    \"TargetPosition\":{\n        \"minValue\":0,\n        \"maxValue\":100,\n        \"minStep\":10\n    },\n    \"PositionState\":{\n        \"minValue\":0,\n        \"maxValue\":2,\n        \"validValues\": [0,1,2]\n    }\n}","x":460,"y":1120,"wires":[["e38ee0e4.170eb"]]},{"id":"3719073f.474648","type":"openhab-v2-in","z":"ef73185f.17c5f","name":"Штора 1 Current","controller":"5fca308.f613bd","item":"Blinds1","ohCompatibleTimestamp":false,"eventTypes":["ItemStateChangedEvent"],"outputAtStartup":true,"storeStateInFlow":false,"x":120,"y":1160,"wires":[["ecafef8c.23a71"],[]]},{"id":"ecafef8c.23a71","type":"function","z":"ef73185f.17c5f","name":"to homekit","func":"msg.payload = {\n    \"CurrentPosition\":parseInt(msg.payload)\n};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":1160,"wires":[["9b64f009.c36cd"]]},{"id":"333eb0e7.0fed8","type":"openhab-v2-out","z":"ef73185f.17c5f","name":"Шторы","controller":"5fca308.f613bd","item":"Blinds","topic":"ItemCommand","topicType":"oh_cmd","payload":"payload","payloadType":"msg","storeStateInFlow":false,"x":760,"y":1120,"wires":[]},{"id":"e38ee0e4.170eb","type":"function","z":"ef73185f.17c5f","name":"to openhab","func":"// filter events which did not originate in HomeKit\nif (msg.hap.context === undefined )\n{\n    return null;\n}\n\nif (typeof msg.payload.TargetPosition !== 'undefined')\n{\n    msg.payload = msg.payload.TargetPosition;\n    return msg;\n}\nelse {\n    return null;\n}\n","outputs":1,"noerr":0,"x":610,"y":1120,"wires":[["333eb0e7.0fed8"]]},{"id":"c79446ac.d89c38","type":"openhab-v2-in","z":"ef73185f.17c5f","name":"Штора 1 Target","controller":"5fca308.f613bd","item":"Blinds1_Target","ohCompatibleTimestamp":false,"eventTypes":["ItemStateChangedEvent"],"outputAtStartup":true,"storeStateInFlow":false,"x":120,"y":1100,"wires":[["c2cec09b.c24a5"],[]]},{"id":"c2cec09b.c24a5","type":"function","z":"ef73185f.17c5f","name":"to homekit","func":"msg.payload = {\n    \"TargetPosition\":parseInt(msg.payload)\n};\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":1100,"wires":[["9b64f009.c36cd"]]},{"id":"7533f3d.82ae90c","type":"homekit-bridge","z":"","bridgeName":"NodeRed","pinCode":"111-11-110","port":"","manufacturer":"NodeRed","model":"NodeRed","serialNo":"1.0"},{"id":"5fca308.f613bd","type":"openhab-v2-controller","z":"","name":"OpenHAB2","protocol":"http","host":"127.0.0.1","port":"8080","path":"","username":"","password":"","allowRawEvents":true}]

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В. 

28BYJ-48-5V  - Показал наилучший крутящий момент с питанием 12В. Тестов было много. Начинает нагреваться после 3х минут использования, после 5 минут становится реально горячим. Его нельзя перегружать работой. При питании 5В не показывает должного крутящего момента.

28BYJ-48-12V - Не оправдал моих ожиданий, пробовал питание 12В и 24В, оказался хуже 5В версии. Но это было с другими драйверами! Прямо сейчас еще несколько таких моторов едут ко мне для новых тестов - не будем списывать его со счетов.

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

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

Драйверы моторов из музея.

Изначально планировалось, что одно устройство, будет управлять сразу двумя шторами, для этого был куплен MotorShield на ld293. От этой идеи быстро отказался из-за размеров "бутерброда" плата.

Все драйверы давали разных крутящий момент для мотора. Рекордсмен - зеленая квадратная плата со съемным uln2003. У меня были еще точно такие же, но по каким-то причинам они не достигали таких показателей. 

Последний uln2003mini оказался совсем слабым, просто отказывался работать.

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

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

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

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

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

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

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

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

С появлением 3д принтера, все круто поменялось. Правда похоже на оригинал?

Создание крепления занимает всего 2 часа времени, которое не надо тратить!

Чужой среди своих, каждая деталь подгонялась точно под изделение.

Мои попытки скрыть мотор не увенчались успехом, результат не нравится. (я не силен в 3д моделировании)

Одна из последних версий с крышкой. Я бросил попытки сделать красиво, оставил как есть.

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 модуль за пределы потолка, именно поэтому я начал экспериментировать с крышкой на крепление мотора, в нее я и прятал сам модуль.

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

Похоже на спрута?:) 

Первая серийная версия, было собрано целых 5 штук.  


 
Места так много, что в корпусе гулял ветер и поместилась макетка целиком.         

Эпоха 3д принтера, но старая начинка все еще занимает кучу места.

Все вырезы делают под конкретную деталь, всё четко и красиво.

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

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;
- добавлены, в гитхаб, сторонние библиотеки, которые используются в скетче;


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Никита Герасимов  (Rapidshe)
    Никита Герасимов (Rapidshe) отредактировано 4 месяца назад

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

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

  2. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 4 месяца назад

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

  3. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 4 месяца назад

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

  4. Руслан Г (Rus)
    Руслан Г (Rus) 3 месяца назад

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

    • Андрей Попов (andreypopov)
      Андрей Попов (andreypopov) 3 месяца назад

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

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

  5. Никита Герасимов  (Rapidshe)
    Никита Герасимов (Rapidshe) 3 месяца назад

    а не думал использовать такой мотор? https://ru.aliexpress.com/item...

    • Андрей Попов (andreypopov)
      Андрей Попов (andreypopov) 3 месяца назад

      Такой я не видел, цена высокая и размеры большие, лучше тогда специальный мотор для рулонных штор - aliexpress 

      • Никита Герасимов  (Rapidshe)
        Никита Герасимов (Rapidshe) 3 месяца назад

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

  6. Андрей Попов (andreypopov)
    Андрей Попов (andreypopov) 3 месяца назад

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

  7. (maikl)
    (maikl) 2 месяца назад

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

  8. Александр Окороков (Jigi84)

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

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

    • Андрей Попов (andreypopov)
      Андрей Попов (andreypopov) 2 месяца назад

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

      Калькулятор потерь напряжения 

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

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

      1000x_image.png?1552283686
  9. Александр Окороков (Jigi84)

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

  10. (Locy)
    (Locy) 23 дня назад

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

    • Андрей Попов (andreypopov)

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

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

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

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

        • Андрей Попов (andreypopov)

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

          • (Locy)
            (Locy) 18 дней назад

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

            • Андрей Попов (andreypopov)
              Андрей Попов (andreypopov) 18 дней назад

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

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

              • (Locy)
                (Locy) 18 дней назад

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

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

                1000x_image.png?1556803017
К списку блогов

Похожие записи

25 мар. 2019 г.
Нативный Homekit на ESP8266 Relay_8CH
13 февр. 2019 г.
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
19 апр. 2019 г.
Требуется ваше мнение!
26 апр. 2019 г.
Обновление Умного зеркала, доработали, причесали, и теперь почти закончили наворачивать функционал зеркала.
31 мар. 2019 г.
Нативный HomeKit датчик температуры и влажности своими руками самый бюджетный вариант.
16 февр. 2019 г.
в процессе разработки
19 февр. 2019 г.
Ответы на вопросы, заданные в ЛС в телеграмме
30 янв. 2019 г.
Я построю свой луна-парк, с блекджеком и шлюхами! Хотя, к черту лунапарк !
25 апр. 2019 г.
Новая информация по будущему стриму