В этой статье, я буду отмечать свой положительный и отрицательный опыт при создании Умного Дома. Что пробовал и не понравилось, что сделал бы по-другому, если бы начинал с начала. Этакая поополняемая шпаргалка.

  • Сразу определитесь с технологическими узлами, куда будет удобно стягивать коммуникации с близлежащих помещений. Таких узлов не должно быть много, но и не надо стремиться провода со всей квартиры в 150 метров или загородного дома стянуть в одну кладовку. Их будет очень много.
  • Между такими узлами надо проложить как очевидные коммуникации (электропитание, витую пару с запасом 30-50% от того кол-ва которое вы представляете на текущий момент) так и гладкую ПВХ трубу, минимум, сантиметра три в диаметре. При прокладывании надо избегать стыков/прямых углов.
  • Это сказки, что можно заменить провод в гофре. Только если она прямая и короткая. Особенно нереально заменить термодатчик под стяжкой пола. Используйте только гладкостенные трубы. 
  • В этом случае, проложить забытый дополнительный провод будет делом 15-ти минут. Если длины протяжки не хватает - можно использовать пылесос для протягивания первой прочной нитки, за которую вытянуть нужный пучок проводов.
  • Датчики лучше ставьте по два. Каждый в своей гладкостенной трубе. Второй не подключайте, просто подписав провод. Выжечь 1-Wire датчик оказалось достаточно просто. Очень обидно потом бывает разбивать пол, чтобы его заменить.
  • Разделяйте силовые и слаботочные цепи. В противном случае, замыкание одной на другую в тесном пространстве, способно разрушить то, что создавалось месяцы. Пример с картинками приведу
  • Если в узле нет места для UPS - предусмотрите силовой провод от ближайшего UPS
  • К крупным блокам выключателей (от 2-х) не поленитесь притянуть самую простую витую пару до ближайшего узла.
  • Не надо перегружать импульсные блоки питания. Если на нем написано 10 Ампер - не пытайтесь его загрузить на все 10. Лучше, если он не будет сильно нагреваться. В противном случае, он прослужит не больше года
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

Зачем это нужно:

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

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

Далее, контроллер обеспечивает как автономное локальное управление (например, свет переключается выключателями или температура теплого пола поддерживается на заданном уровне) так и одновременное управление и мониторинг со стороны ПО openhab (с компьютера или мобильного приложения)

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

Недавно открыл для себя HomeRemote — замечательное мобильное приложение + ПО дизайнера интерфейса, которое нормально работает с MQTT и с последней версией прошивки)

 

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

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

Переферия:

Три платы соединены между собой штатным для Arduino способом и, совместно, обладают следующей функциональностью:

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


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



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

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

Настройки хранятся в файле стандарта JSON

При первом запуске, через интерфейс командной строки задается MAC адрес устройства, который, затем, запоминается в EEPROM

Все это работает в продуктиве 24х7 с августа 2016 года, постепенно дописываясь.
Проект нуждается в  подробном двуязычном документировании.

Для этого приглашаются единомышленники! 

Сделано: разведении и заказе промышленного варианта печатной платы LightHub Shield 

Так контроллер выглядит сейчас:

Плата Arduino DUE установлена на материнскую плату. Плата снята, видны оптические развязки, защиты входов, драйверы DMX, Modbus, 1-wire, мощная транзисторная сборка (например) для управления реле. Плата на DIN рейке, рядом типовой модуль реле

Так контроллер выглядел полгода назад в макетном варианте (ESP 8266, установленная сверху, решает только вопрос перезаливки прошивки контроллера по воздуху, для эксплуатации не требуется)

Основные компоненты на плате - три преобразователя RS485 (DMX IN, DMX OUT, Modbus RTU) и аппаратный драйвер шины 1-Wire DS2482-100

 


FAQ:

Q: почему Arduino?

А:

Стоимость готовой платы на AliExpress приближается к розничной стоимости "голого" процессора

Плата нормально разведена, отлажена, не зависает

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

То, что стек библоитек Arduino повышает избыточность кода - терпимо. После того, как откомпилированный код перестал помещаться в AVR 328 я просто перешел на AVR Mega 2560. С учетом пренебрежимо малой стоимости и одного и другого - разницы нет. Быстродействия  хватает.

 В качестве бонуса получил 4 аппаратных последовательных порта: Первый пригодился - для отладки и перепрограммирования, Далее - DMX In, DMX Out, Modbus RTU

Ну и огромное кол-во переферии -

  • 12 PWM портов
  • 16 аналоговых и где-то +32 цифровых GPIO
  • Как обычно, SPI и I2C

Подробно все нарисовано тут

Ethernet Shield - штатный способ подключить Arduino к локальной сети

В данном модуле используется чип Wiznet WS 5100, сам по себе достаточно неплохой, но "благодаря" архитектуре Ардуино невозможно использовать возможности прямого доступа к памяти, при которой WS 5100 сам раскладывает принятый пакет в RAM

Взаимодействие WS5100 и AVR 2560 построена при помощи побайтного обмена по интерфейсу SPI. Ни о каких скоростях, соответственно, далее говорить не приходится.

В промышленном варианте я перешел на WS5500 

Узкое место Mega - объем RAM. Это не позволяет использовать всю возможную переферию на одном контроллере.

Но проект уже портирован на Arduino DUE (ARM) и эта проблема снята.

Кроме того, в моем проекте контроллеры распределены по зданию и обьеденены между собой и со средствами удаленного доступа посредством LAN и протокола MQTT.  Это обеспечивает, практически, ничем не ограниченную масштабируемость системы. У меня, например, один контроллер - управляет системами освещения (DMX, Modbus), вентиляции (Modbus, 0-10V), другой - устройствами 1-wire и теплыми полами. Если понадобится - их можно добавлять столько сколько надо и располагать в тех местах здания, куда проще дотянуть разводку от подключенных устройств.

 

 

 

 

 

0
0
0
s2sdefault

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

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

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

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

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

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

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

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

 

 

0
0
0
s2sdefault