Обучаемое DMX реле для отключения блоков питания LED

В статье  LED освещение с использованием DMX. Как построить я описал о том, как просто и удобно получается управлять всем LED освещением дома при помощи DMX диммеров и контроллера умного дома LightHub

Есть одна особенность: LED диммеры регулируют низковольтное напряжение (12 или 24В), поступающее с импульсных блоков питания.

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

Для решения данной проблемы, я подобрал вот такое изделие Итальянских мастеров (тех самых, которые сделали Arduino). 

Оно имеет на борту четыре качественных 10А реле производства известной компании Finder, микропроцессорный модуль Atmega 32U4 и приемник RS-485. А также, линейный стабилизатор, позволяющий питать плату от 12В (в некоторых материалах заявляется до 24В, но я не рекомендовал бы по причине возможного перегрева стабилизатора)

Качество сборки платы приятно радует после некоторых китайских изделий. Плата отлично размещается в распаечной коробке в непосредственной близости от управляемых блоков питания. (Что делает не обязательным протягивание силового кабеля от каждого блока питания на щит управления)

От щита управления к данной плате достаточно подвести DMX шину управления диммерами  (2 провода) и дежурное питание 12В (еще два). (я это делаю одной витой парой, к которой, также, параллельно подключены DMX и Modbus диммеры)

Изначально, данная плата - это просто DMX реле. То есть, каждое реле имеет свой DMX адрес и устанавливая соответствующий канал в ненулевое значение, включаешь реле.

Наша задача чуть сложнее. 

Реле должно знать, какие DMX каналы обслуживаются каким (какими) блоками питания. Если на этих каналах появляется ненулевой уровень - надо сразу же включить нужный блок питания. Ну и, спустя какое-то время после выключения последнего LED можно выключить блок питания.

Для этого  доработал данному реле "Умный режим" и "Режим обучения"

Пользоваться им так:

  1. Подключите разьемы D+ и D- к шине DMX, +VIN- к источнику постоянного напряжения 12В, убедитесь, что засветился LED DMX-RX. Это значит, реле распознало ваш DMX сигнал

  2. Включаем Switch #10 в положение on (и оставляем навсегда. Теперь реле в "Умном режиме"), Switch#5-#8 -  в положение ON (задержка канала по-умолчанию, см ниже), остальные свитчи в положение  off 

  3. Переводим Switch #9 в положение on и перезапускаем плату нажатием кнопки Reset. (Включился режим обучения, старые "знания" стерлись из оперативной памяти, оставшись в постоянной. Включение Switch#9 без рестарта не очищает память от старых данных, что позволяет "доучивать" систему.

  4. Если вы ошиблись и хотите вернуться к сохраненным данным - выключите питание, верните switch #9 в положение off и снова включите питание)

  5. Теперь выключите абсолютно все DMX каналы.

  6. Включаем Switch#1 и хотя-бы на секунду задействуем те DMX каналы, которые надо ассоциировать с Relay#1  (для светодиодных лент, отрегулируйте яркость так, чтобы, хоть однажды, засветились LED каждого цвета)

  7. Выключаем Switch#1 и  все DMX каналы.

  8. Повторяем обучение для каналов 2-4 (соответственно, используя  Switches #2-#4)

  9. Выключаем Switch#9 (Режим обучения отключен, все данные записаны в EEPROM)

  10. Задайте задержку выключения реле по-умолчанию. Когда Switch#9 выключен- Switch #1-#8 определяют задержку по-умолчанию, между моментом, когда будет выключен последний LED и моментом отключения блока питания (в десятках секунд). После изменения значения, для вступления изменения в силу, перегрузите реле кнопкой Reset.
  11. Все. Проверяем что все работает. Устройство можно замуровывать в стену, дальше оно работает само.
  • Реле включается сразу же, как обнаруживается активность хотя бы одного канала, ассоциированного с данным реле.

  • Индивидуальную для каждого канала задержку, можно настраивать в процессе обучения (на шаге №5), используя Switch #5-Switch #8. Если все четыре находятся в положении ON, (как описано на шаге №2) - используется задержка по-умолчанию. Иначе, задержка канала задается как 10 сек * установленное значение. 
  • Если установлена задержка == 0, тем не менее, будет использована задержка в 1 сек, чтобы избежать повреждения блока питания возможными частыми переключениями.
  • При кодировании задержек, а также, для указания DMX адреса устройства в НЕ "Умном режиме", естественно, используется двоичное кодирование. Самый левый из группы переключатель имеет вес 1, последующие - соответствуют степени числа 2. То есть 1,2,4,8 и так далее. Соответственно, максимальная задержка по-умолчанию равна 255 десятков секунд, максимальная индивидуальная задержка канала 14 десятков секунд (значение 15 зарезервировано под задержку по-умолчанию). Минимальная задержка - одна секунда при установке числа 0.

 

Заказать перепрошитое устройство можно через форму обратной связи за $45

Исходники прошивки доступны тут

 

0
0
0
s2sdefault

Наконец - то полностью завершил интеграцию приточной установки с контроллером LighHub и ПО Openhab2

Об этом сейчас подробно напишу, с фотографиями и скриншотами

Выглядит сооружение так:

Описываю справа налево:

  • Фильтр воздушный
  • Вентилятор
  • Система управления (описана ниже)

потом снизу вверх:

  • Калорифер
  • Датчик температуры
  • Глушитель

Управление системой выглядит так:

Как видно на скриншоте, система опрашивает контроллер Vacon 10, извлекая из него такие текущие показатели, как скорость вращения вентилятора, мощность нагревателя, температуру воздуха после нагревателя. Также, код аварии частотного преобразователя, если такая возникнет.

К контроллеру Vacon 10 подключен датчик перепада давления, который срабатывает в случае перекрытия потока воздуха или загрязнения фильтра. При этом, также, срабатывает аварийное отключение системы/

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

Далее, подробнее о системе управления:

Составные компоненты :

Частотный регулятор

Vacon 10

Твердотельное реле с токовым входом 4-20мА для плавной регулировки мощности калорифера и радиатор

Датчик температуры с токовым выходом 4-20мА 

ДТС015Л-50М.0,5.80.И[1]

 

 

 

Частотный регулятор:

Это самая младшая и маломощная модель частотного преобразователя производства известной компании, которая, тем не менее, обладает следующими свойствами:

  • Мощность достаточна для плавного управления скоростью нагнетающего вентилятора
  • Устройство имеет интерфейс RS-485 Modbus RTU, а это значит, что оно может быть удаленно управляемо нашим котнтоллером LightHub. Просто подключаем его на общую шину, параллельно диммерам освещения.
  • В качестве бонуса, устройство имеет на борту универсальный PI (Пропорциональный интегральный) регулятор. Подаем на его вход стандартный токовый сигнал с датчика температуры Овен, соединяем его выход с оптореле производства той же компании, программируем и система готова поддерживать заданную температуру воздуха
  • Устройство прекрасно документировано. Внимательно прочитав инструкцию, становится понятно как его программировать.

 

 Шпаргалка для программирования частотного регулятора:

Регистр Значение  Комментарий
P 15.1 3 На вход уставки PI преобразователя подаем данные, полученные по шине Modbus
P 15.4 1 На вход обратной связи PI преобразователя подаем сигнал с входа AI2 от датчика температуры
P 15.10 0 Нет инверсии преобразования (по умолчанию)
P 8.3 2 Ключ выхода D0 замкнут, когда двигатель включен (туда у меня подключено реле, которое отключает калорифер при неработающем двигателе)
P 9.1 4 Выход PI регулятора подключаем к AO  (на этом выходе твердотельное реле)
P 9.2 1 Выход соответствует стандарту 4-20 мА
P 6.5 1 Вход AI2 соответствует стандарту 4-20 мА
P 2.1 1 Управление по шине RS485
P 1.1 180 Номинальное напряжение выхода - 180В. Так как две обмотки  Асинхронного двигателя подключаем между двумя выходными фазами, больше напряжение ставить не надо
P 1.7   Выставить предельный ток двигателя
P 15.7 1000 Усиление PI регулятора. Выставляется по методике
P 15.8 250 Постоянная времени PI регулятора. Выставляется по методике
P 5.4 1 При замыкании DI1 на +24В инициируется авария. Сюда подключен датчик перепада давления

 

Вот такой тип вентилятора использован:

 

 

http://www.ostberg-rus.com/ire-160

Производительность 300-500 кубов/час

0
0
0
s2sdefault

 

Проектируя свое жилище, я долго и безуспешно пытался найти диммер для регулировки освещения с интуитивно понятной вращающейся ручкой, но управляемый при этом со стороны Умного дома

Нашел массу неплохих компромиссов.

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

Двух и, соответственно, четырехканальные диммеры, управляемые клавишными выключателями типа "кнопка"

Одновременно с этим, управляются централизованно посредством простого и стандартного интерфейса Modbus, соответственно, довольно легко были проинтегрированы с Arduino - контроллером

Но с вращающейся ручкой - нет

Пришлось сделать это устройство самостоятельно

Основные характеристики:

Смонтировано в корпусе от обычного диммера

Вместо переменного резистора использован Rotary-encoder

Контроллер, выполненный на ESP8266,  подключается по интерфейсу MQTT к MQTT брокеру mosqutto и может как получать команды на изменение уровня освещения так и транслировать команды другим устройствам

 

 

Софт выложил на GitHub

https://github.com/anklimov/rotary_mqtt_dimmer

Схему нарисовал тут:

https://easyeda.com/anklimov/New_Project-b717113a664a43bca59ec18532ddc205

В начале скетча задаются  номера пинов к которым подключается RotaryEncoder, оптопара тиристора и оптопара датчика перехода фазы через ноль.

Также, надо установить свои параметры вайфая

Если есть заинтересованность - пишите комментарии

0
0
0
s2sdefault

Контроллер LighthHub это полностью OpenSource решение многофункционального проводного контроллера Умного Дома (открыт как исходный код прошивки так и схема)

Основные функции :

  • Автономное локальное и внешнее управление устройствами с использованием открытого протокола MQTT (протестировано совместно с такими популярными открытыми системами как HomeAssistant, OpenHAB, IOBroker, NodeRed, HomeBridge). При помощи этих систем, контроллер прекрасно дружит с Apple HomeKit, Google Home, Алисой.
  • Управление освещением (Цветное LED освещение, диммируемое AC освещение). Фактически, неограниченное кол-во каналов освещения на шинах DMX 512 и Modbus. 
  • Подключение выключателей, кнопок и аналоговых регуляторов плавного управления освещением, при этом распознаются одинарные, двойные, тройные, длительные нажатия, кратковременные выключения и есть возможность подключения нескольких кнопок через резисторы на один аналоговый вход
  • Управление теплом (теплые полы, радиаторное отопление) - организовывайте хоть 16 термостатов (в пределах кол-ва свободных выходов контроллера). Они будут работать локально и независимо от сервера, сети, интернета, получая температуру с датчиков 1-wire. Каждый термостат, также, управляется из ПО Умного Дома (того же HomeAssistant), либо, с настенной климатической панели
  • Управление кондиционерами Haier (кондиционер пробрасывается как термостат в тот же HomeAssistant)
  • Возможность расширения кол-ва входов по интерфейсу I2C
  • Контроль протечек, расхода воды
  • Подключение датчиков движения, открытия дверей
  • Контроль температуры, влажности, CO2, управление вентиляцией. Реализованы гибко настраиваемые для этих нужд PID регуляторы
  • Поддержка Modbus RTU (возможно гибко настроить, фактически, на любое устройство), DMX512, 1-wire
  • Управление климатом - температура помещений, теплых полов, влажность, CO2,  (с использованием стеновых паанелей, подключенных по Modbus)
  • Управление форсуночной системой увлажнения до 14-ти помещений (требуется "премиальная" прошивка) 

Текущая и наиболее совершенная версия контроллера: 3.0

Отличия железа версии 3.0 от версии 2.2: добавлен интерфейс CAN, разъемы оптимизированы для возможности подключения "дочерних плат расширения"

Отличия железа версии 2.2 от версии 2.1

Отличия железа версии 2.1 от версии 2.0

Отличия железа версии 2.0 от версии 1.0

История изменений прошивки (Устарело, см коммиты на https://github.com/anklimov/lighthub)

 

 

Информация для заказа изделия (в связи с нестабильностью, может быть неактуальна на текущий момент)

Документация (WIKI)

Информация по подключению - внимательно изучите этот раздел перед подключением устройства

Пример настройки - скопируйте данный пример в Личный кабинет для быстрой настройки устройства

Код прошивки можно откомпилировать и загрузить в Arduino DUE, MEGA2560, ESP8266, ESP32 и попробовать до заказа контроллера. (Ну или даже использовать так, хотя, с контроллером, конечно, удобнее и надежнее)

Контроллер LighHub позволяет подключить к себе :

  • Выключатели и другие контактные датчики (например, датчики открывания окон/дверей)
  • Аналоговые датчики (регуляторы, датчики протечки) - до 12-ти штук
  • До 20-ти Реле, позволяющие включать/выключать силовую нагрузку (лампы, теплые полы, нагреватели и пр)
  • До 20-ти  1-Wire датчиков температуры DS18b20 на шлейфе до 100 метров
  • До 512-ти каналов освещения (как LED так и AC) через стандартный DMX модуль
  • Modbus RTU  устройства (фактически, любые)
  • До 12-ти аналоговых устройств со входами 0-10В через внешние преобразователи ШИМ в 0-10В
  • Датчики CO2, температуры, влажности
  • Сенсорные стеновые панели с выходом DMX для локального управления LED освещением 

Контроллер обеспечивает как автономное локальное управление (например, свет переключается выключателями или температура теплого пола поддерживается на заданном уровне) так и одновременное управление и мониторинг со стороны внешнего ПО (Протестировано с  Openhab, Domotics, NodeRed, IOBroker, HomeAssistant) с компьютера или мобильного приложения.

 

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

Для тех, кому не хочется устанавливать сервер: посмотрите на HomeRemote — замечательное мобильное приложение + ПО дизайнера интерфейса, которое нормально работает с LightHub через (в том числе, облачный)  MQTT 

Чем хорош OpenSource в отличии от закрытых решений:

  • Проект никогда не останется брошенным, если компания-производитель решит далее не развивать бизнес, сменить линейку продуктов или продаться Гуглу. Сколько у вас уже устройств, которые заброшены производителями и не обновляются? Какая вероятность, того, что купленные сейчас дорогие устройства, на которых вы построите свой Умный Дом через несколько лет просто перестанут работать?
  • Если у проекта есть Сообщество разработчиков - кто-то из них, практически, наверняка, сможет поддержать вашу систему или доработать необходимую функцию, даже если компании-поставщика уже нет на рынке.
  • Можно что-то доработать самому. Это вполне увлекательно )
  • Особо важна открытость, если речь идет про облачные решения. (Вспомним, как было отключено облако компании Nest, послее ее покупки компанией Google).

Вот хорошая статья на эту тему

  • Да, для настройки LightHub тоже разработан облачный портал, но никто не мешает перенастроить домашний контроллер на другой сервер или поднять все что надо дома на Raspberry PI или еще чем-то. 

 

 

 

Физически, контроллер Умного Дома "LightHub" представляет из себя совокупность из следующих компонент:

  • Arduino Mega 2560 или Arduino DUE (рекомендуется)
  • LightHub - Shield (плата, на которой смонтированы аппаратные интерфейсы LAN, мост интерфейса 1-Wire и три преобразователя RS-485 для обслуживания DMX-512 и Modbus, опторазвязки входных сигналов, защита входов TWS диодами, система питания и пр.)
  • Стандартный корпус для крепления на DIN рейку

Периферия  (см Компоненты с Aliexpress):

  • Внешний релейный модуль
  • 1-Wire датчики температуры
  • DMX-512 диммеры для управления LED или AC220В освещением, а также, реле, для отключение неиспользуемых блоков питания
  • Модули расширения формата UEXT, позволяющие подключить к контроллеру самую разнообразную периферию: сенсоры, радиомодули, GSM модемы, GPS, дисплей и многое другое  (поддержка на уровне прошивки будет реализовываться по мере необходимости)
  • Датчики температуры, влажности, CO2
  • Счетчики воды, оборудованные контактами
  • Сенсоры протечки
  • Управляемые краны перекрытия воды (Оттестировано совместно с кранами Aqualock Bugatti)
  • Любые устройства, управляемые по протоколу Modbus

Прошивка контроллера обладает следующей функциональностью:

  • Подключение к брокеру сообщений MQTT (Mosquitto) через проводное Ethernet соединение. Контроллер подписывается на соответствующие топики MQTT, что позволяет управлять устройствами, например, при помощи системы OpenHab, NodeRed) или мобильных приложений
  • Опрос 1-Wire термодатчиков. В зависимости от настройки системы, значения термодатчиков передаются в шину MQTT для внешнего мониторинга, а также, и используются для управления локальными нагревателями (теплые полы, калориферы)  через релейный модуль
  • Управление светодиодным или 220В освещением по протоколу DMX-512 при помощи внешних плат управления
  • Управление Modbus устройствами ( AC диммеры и частотники приточной вентиляции, а в последних версиях прошивки - вообще произвольное Modbus устройство, регистры которого описываются в конфиге)
  • Прием входящих воздействий (датчики, выключатели, кнопки), использование значений для локального управления и передача их в шину MQTT 
  • Управление задвижками центральной вентиляции/кондиционера при помощи конвертеров ШИМ в аналоговый сигнал 0-10В
  • Контроль протечек. При обнаружении - поступление воды перекрывается вне зависимости от наличия связи и Интернета. Информирование и управление клапанами можно настроить, например, на системе NodeRed
  • Опрос датчиков температуры, влажности, CO2
  • Одним выключателем, уходя из дома, вы можете выключать весь свет и приточную ветиляцию, одним потенциометром регулировать яркость освещения всей гостиной, включая LED и люстру и пр.

Также, в отличие от похожих решений, прошивка обладает массой полезных особенностей-рефлексов, которые упрощают управление контроллером извне. Например:

  • Возможность собирать каналы управления в группы. При поступлении команды на групповой канал, она транслируется всем участникам группы. 
  • Наличие команд HALT и REST, дополняющих OFF и ON. Команда HALT выключает устройство (аналогично, команде OFF) а вот команда REST включает только те устройства, которые были реально выключены командой HALT. Это позволяет легко реализовывать, например Мастер-выключатель перед входом в дом. Он выключает все, но при включении, восстанавливает все устройства в первоначальное состояние
  • Команды XON/XOFF, упрощающие управление светом с датчиков движения, одновременно с локальным управлением
  • Также, при выключении устройства, контроллер запоминает такие параметры как уровень/яркость/цвет. После получения команды на включение они будут восстановлены
  • После холодного старта, контроллер восстанавливает значения всех устройств из persistent топиков  сервиса MQTT.

Это не полный перечень "полезностей". 


Конечно, все это управляется и мониторится удобно при помощи "родного" OpenHab мобильного приложения.
Конечно, поведение всех этих устройств можно диспетчеризировать как при помощи встроенных скриптов OpenHab так и с помощи сторонних систем типа NodeRed (например, управлять задвижками вентиляции, потоком и нагревом внешнего воздуха, температурой теплых полов в зависимости от температуры на улице и в комнатах, времени суток и сезона; управлять освещением в зависимости от высоты солнца над горизонтом и фазы луны, если кому такое надо))

Система получилась достаточно надежной и масштабируемой (для доп. надежности задействован встроенный Watchdog а масштабируемость обеспечивается тем, что кол-во устройств не ограничено. Дополнительный контроллер просто ставится в удобном месте помещения и подключается к локальной сети ) 
Также, как писал, контроллер является абсолютно настраиваемым. 

При старте, контроллер пытается загрузить настройки с нашего сервера. (Вы можете его легко заменить на свой). Настройки хранятся в файле стандарта JSON. Их можно редактировать прямо из браузера в Личном Кабинете, добавляя столько контроллеров сколько вам надо по их MAC адресу.

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

Первые инсталляции работают в продуктиве 24х7 с августа 2016 года, код прошивки постепенно дописывается и улучшается, обрастая все новыми функциями. За это время, мы выпустили три версии платы LightHub Shield. 


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


0
0
0
s2sdefault

UPDATE: Последние версии прошивки LightHub уже успешно обновляются по воздуху без использования описанного ниже костыля. Логгирование LightHub тоже уже умеет делать в syslog, так что актуальность несколько утратилась. Но так как этот подход тоже может кому-то оказаться полезным (в случае Меги OTA требует бутлоадера optiboot) - статью оставляю


Сегодня обнаружил, что после установки моего контроллера умного дома на Arduino Mega 2560 на его постоянное место под потолком будет крайне тяжело до него добираться, чтобы загрузить новую прошивку через USB кабель

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

Недолгий поиск вывел меня на великолепный проект на Github

Если коротко, то добавив к контроллеру недорогой WiFi модуль ESP8266, мы получаем возможность как заливать новую прошивку в AVR так и получать доступ к отладочной информации из последовательного порта контроллера просто подключив этот модуль к сети WiFi

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

И это все без дополнительного Ethernet shield. Через одно единственное последовательное соединение между Mega 2560 и ESP8266

Библиотека для Arduino тут 

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

 

 

0
0
0
s2sdefault