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



Цели, которые я поставил перед собой:

  1. Управление жалюзи с электроприводом через вай-фай.
  2. Управление по протоколу MQTT.
  3. Кнопочное управление.
  4. Использование недорогих общедоступных и напечатанных на 3Д-принтере деталей.

Шаг 1: Список необходимых компонентов



Шаг 2: Подключение двигателя и шилда





  • Соедините двигатель и шилд так, как показано на фото; запомните цвета проводов.
  • Припаяйте провода к контактам выключателя, как показано на фото. Если есть возможность, соедините белый, красный и черный провода так же, как на фото.
  • Соедините провода кнопки с выводами контроллера так же, как на фото.

Шаг 3: Настройка MQTT брокера



MQTT – легкий протокол, работающий по принципу издатель-подписчик, используемый для создания решений «Интернета вещей». Устройства обмениваются между собой сообщениями, этим потоком управляет брокер. Можно использовать локальный (например, Mosquitto) или облачный брокер.

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

Настройка облачного сервера:

  1. Зарегистрируйтесь на сайте cloudmqtt.com
  2. Создайте инстанцию брокера
  3. Кликните по кнопке instance info и оставьте вкладку открытой
  4. Для тестового использования установите MQTT.fx
  5. Добавьте профиль на MQTT.fx с учетными данными вашего облачного MQTT брокера
  6. Установите соединение. Если работает, значит у вас получилось создать работающее соединение с облачным брокером.

Шаг 4: Программа



Микроконтроллер ESP8266, на основе которого создана плата NodeMCU, — однокристальный компьютер, с модулем вай-фай и возможностью подключения других плат. Контроллер можно программировать разными способами, но наиболее популярными являются программирование в Arduino IDE и с помощью интерпретатора Lua. Мне удобней было использовать Lua из-за встроенной файловой системы.

Прошивка

Даже если ваш NodeMCU уже шел с прошивкой Lua, я бы советовал переустановить ее, используя последнюю версию Lua.

  1. Соберите нужный вам вариант прошивки здесь, укажите следующие модули: file, GPIO, MQTT, net, node, PWM, timer, WiFi, SSL (опционально)
  2. На электронную почту должно прийти письмо со ссылкой на файл с прошивкой, перейдите по ссылке и скачайте файл.
  3. Скачайте Flash tool

С помощью Flash tool прошейте плату:

  • запустите программу
  • нажмите на кнопку для соединения с NodeMCU
  • выберите последовательный порт
  • выберите файл в программе
  • нажмите Flash

Установите код для рулонной шторы

  1. Загрузите код
  2. Загрузите ESPlorer IDE
  3. Откройте ESPlorer
  4. Выберите последовательный порт
  5. Установите соединение
  6. Откройте все файлы lua
  7. Редактируйте настройки .lua и установите настройки вай-фай и протокола MQTT
  8. Загрузите в ESP все lua файлы
  9. Перезагрузите устройство

Шаг 5: Тестовый прогон


Пришло время проверить все соединения и программу.

  • Откройте esplorer и установите соединение.
  • Выполните следующие команды (на фото). Двиготель должен сделать 1000 шагов (повернуться на четверть оборота).

Шаг 6: Печать деталей на 3Д-принтере




Дизайн деталей выполнен в Fusion 360. Загрузите файл и печатайте детали.

Шаг 7: Сборка блока управления

Выполните следующие действия (показаны на видео):

  1. Нагрейте паяльник до примерно 200°С.
  2. Мягко надавливая жалом паяльника, вставьте резьбовые латунные гайки в углы пластикового корпуса.
  3. Уберите рычажок с выключателя.
  4. Нажатиями туда-сюда/внутрь-наружу разработайте пластиковую крышечку кнопку.
  5. Нажатием установите выключатель на место.
  6. Также нажатием установите шилд двигателя на место.
  7. Установите на место двигатель.
  8. Привинтите пластиковые детали друг к другу.

Важная информация по питанию: я установил, что для небольшого оконного проема или для короткого расстояния прокрутки хватит 5-тивольтового блока питания с USB разъемом. Если у вас большие окна и опускать штору нужно на большое расстояние, вам нужно установить внешний источник питания (максимально 9В). Источник питания подключите к шилду двигателя. Не забудьте отсоединить UDB если собираетесь что-то делать с вашей конструкцией.

Шаг 8: Установка рулонной шторы


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

Шаг 9: Калибровка

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

  1. Нажмите кнопку и удерживайте ее не меньше 2 сек.
  2. Электро жалюзи начнут двигаться вниз.
  3. Когда штора опустится до нужного уровня, снова нажмите на кнопку (короткое нажатие).
  4. Когда штора поднимется до нужной высоты, еще раз коротко нажмите на кнопку.
  5. Готово.

Шаг 10: Управление через протокол MQTT




  1. Загрузите MQTT.fx с сайта.
  2. Запустите эту программу.
  3. Создайте профиль к брокеру, который вы создали ранее.
  4. Установите соединение.

Подпишитесь на сообщения с топиком из файла конфигурации config.lua, например «/house/masterbedroom/#», без кавычек. Если на канале вашего брокера больше ничего нет, вы можете подписаться на что угодно, например, «#».

Каждые две минуты вы должны получать от вашего блока управления шторой сообщения такта состояния. Для управления механизмом отправьте сообщение с топиком, подходящим config.lua, например «/house/masterbedroom/rollerblind/0/set»

Конечно, вполне очевидно, что эта настройка не так уж необходима для ежедневного использования, но она поможет вам выявить и убрать все возможные ошибки. Для управления вашими устройствами через MQTT-протокол достаточно просто загрузить контрольную панель на ваш телефон. Если вы хотите автоматизировать свою домашнюю среду, лучше использовать для этого специализированное программное обеспечение для интеграции MQTT- протоколов.

Шаг 11: Интеграция с Openhab (опционально)


Я дам вам пример своего технического исполнения автоматизации домашней среды. Если вы уже используете решения Openhab для автоматизации или только собираетесь ими заняться, то для интеграции блока управления рулонной шторой вам нужно сделать следующее:

  1. Установите и настройте openhab в соответствии с инструкцией с официального сайта.
  2. Установите MQTT плагин (биндинг).
  3. Настройте плагин под ваш брокер (локальный или облачный).
  4. Добавьте блок управления шторой в свою номенклатуру и в файл структуры сервера. Пример ниже.

Добавление в номенклатуру:

Dimmer masterbedr_blind1 "Rullgardin 1"  { mqtt=">[ohab:/house/masterbedroom/rollerblind/0/set:command:*:${command}],<[ohab:/house/masterbedroom/rollerblind/0/status:state:default]" }

Добавление в структуру сервера:

Slider item=masterbedr_blind1