xRoom. Введение
Добавлено: Пн авг 19, 2019 3:11 pm
Всем привет!
В данной статье хочу рассказать про будущий концепт построения своего умного дома на базе устройств под кодовым названием xRoom. Что это такое? xRoom это очередной мой проект, а если более точно - серия контроллеров, каждый из которых можно охарактеризовать как ПЛК, состоящий из двух плат - процессорной (верхней) и силовой (нижней). Обе платы будут расположены в DIN-реечном корпусе (D9MG или аналогичном).
Перед тем как более детально описывать данный концепт, я хочу поделиться своим скромным опытом использования такого чуда современной науки и техники, как система умный дом.
Внедрение умного дома началось около трёх лет назад. До этого момента также были попытки автоматизации отдельных элементов, но системно я на это взглянул с появлением в своём поле зрения платформы MajorDomo. Так как я отношу себя к так называемым "железячникам", я сразу же начал искать пути входа в данную программную платформу через своё железо. Для этого я создал пост "Разработка собственного железа" , который потом перерос в раздел "Авторские проекты" (спасибо Сергею за поддержку идеи). Со временем точка входа была найдена - MуSensors . Совместно с Иваном (передовой майсенсоровец:-) ) мы разработали серию устройств различного назначения, глянуть можно здесь . Наиболее успешным оказался гейт MDMSGate . Успешность гейта я определил двумя факторами - стабильная и надёжная работа, а также, хоть и небольшой, а спрос. Я продал несколько десятков штук. за бугор, причём меня очень удивила география - в списке есть Австралия и Новая Зеландия. В страны СНГ - около 5 шт. Исходя из этого, хочу дать совет всем железячникам, кто хочет не только самостоятельно юзать свое железо, но и продвигать его в массы - пиартесь на зарубежных ресурсах. Так вот, родив номенклатуру устройств MySensors, я сразу же начал усиленно юзать их у себя дома. Ничего плохого как про свои устройства, так и про сам майсенсорс сказать не могу. Работают хорошо, да и сам проект майсенсор постоянно обновляется, выходят новые библиотеки, короче, проект живой и перспективный. В основном, пользователи майсенсорс используют радиомодули для общения между устройствами. Есть поддержка RS-485, но почему-то она не такая популярная.
Всё как бы хорошо и радужно, но все же.... Cо временем мне пришло понимание того, что я хочу и чего не хочу при использовании умного дома. ИМХО что одним из слабых мест в работе экосистемы умного дома есть использование усторйств с радиомодулями. Это относится к вопросу - провод или радио? На эту тему есть ярые сторонники как с одной, так и с другой стороны, спорить не буду, это моё личное мнение. Особенно, это касается использования батарейных устройств, которые имеют ограниченный ресурс. Кстати, мне понравилось вот это видео на эту тему. В проводной умный дом можно интегрировать радиоустройства и прочее (MajorDomo это позволяет сделать без всяких проблем), но радио не должен быть основным каналом, и это первое что я хочу изменить. Второе - это децентрализация. К сожалению, MуSensors не соответствует данным требованиям, и поэтому я оставляю его у себя как вспомогательный.
Вернемся снова к xRoom. xRoom будет иметь несколько модификаций, отличающиеся нижними платами. Верхняя плата для всех модификаций будет одна и та же. Она будет наподобие платы Arduino с микроконтроллером STM32F407, но с наличием интерфейсов связи (Ethernet + RS-485) и дополнительной защитой для входов/выходов. Формат нижней платы, а точнее перечень её железа, будет определять предназначение самого контроллера. Применение контроллера будет дифференцироваться в зависимости от помещения или, так сказать, по-английски, Room-а. Отсюда первая (основная) догма - для обслуживания различных помещений требуются определённый набора "железа" в контроллере. Например, для применения xRoom на кухне, уклон должен делаться на датчики, снятие показаний со счётчика, управление светом, движение. В ванной - уклон на датчики, свет, теплый пол, а в жилой комнате уклон на свет, розетки, жалюзи, движение и т.д. На рис. 1 показана топология расположения различных модификаций xRooma в квартире.
Рис. 1. Топология контроллеров xRoom.
На первый взгляд функционал пересекается, но вот пропорции различных датчиков и актуаторов (синие прямоугольнички) для различных помещений точно будут отличаться (по крайней мере в моём случае).
Вторая догма - работа каждого контроллера должна быть автономной и децентрализованной, по заранее заложенной в него программе. Все контроллеры должны быть равноправны и подчиняться более высокому по архитектуре контроллеру. В моём случае это будет RPI3, на котором будет крутится MajorDomo. Контроллеры не должны инициировать передачу данных или любых других запросов в магистрали, связывающей межкомнатные контроллеры (красная линия на рис. 1), а только обрабатывать их. По данной магистрали MajorDomo будет собирать статистические данные контроллеров и позволит организовать дополнительный канал управления, функцией которого будет осуществление межкомнатного взаимодействия между контроллерами.
А где тогда основной? Основное управление контроллером, и, соответственно, подключенными к нему узлами, осуществляется по специальному алгоритму, реализованному в виде загруженной программы. Например, нажимая на кнопку установленного на стене включателя, мы получаем сигнал на включение лампы и включаем её. Но если мы хотим выключить ту же лампу с помощью телефона, нам надо отправить команду на выключение через дополнительный канал. Для этого мы заходим на веб интерфейс MajorDomo и нажимаем на соответствующую кнопку (или вызываем из какого-либо сценария).
Магистраль, связывающая устройства внутри комнаты (зелёная линия на рис. 1), обслуживается внутренней программой контроллера, на ней строится внутренняя подсеть. К данной подсети планируется подключать датчики, панели отображения или дополнительные контроллеры имеющие RS-485 интерфейс. Сам xRoom в такой магистрали будет служить мастером. Таких вспомогательных магистралей может быть несколько. Как межкомнатная, так и внутрикомнатная магистрали будут основываться на стандартных интерфейсах Ethernet и RS-485. Отсюда и третья догма - все сосновые каналы связи и управления - проводные, а протоколы обмена - стандартные. Для Ethernet это будет MQTT или Modbus TCP, а для RS-485 Modbus RTU.
Работа сети RS-485 по протоколу модбас, в основном, строится по схеме мастер-слейв. То есть одному физическому порту любого устройства может назначаться один из этих режимов работы, а во всей сети может быть только один мастер. Одновременная работа в режимах мастер и слейв требудет нескольких физических портов, причем появление нового мастера - это новая подсеть. Топология на рис. 1 построена именно по этой схеме. Использование Ethernet даст возможность на одном физическом порту организовать несколько каналов, подключаемых через разные виртуальные (логические) порты. Это значительно расширит функциональность.
Проводной умный дом требует решения проблемы с большим объёмом проводов. Зачастую такой вариант приемлем на стадии ремонта/стройки, когда эту проводку можно скрыть. Либо укладывать её в короба и пускать наружу. Также, этот вариант будет дороже по стоимости. По данному вопросу рекомендую к просмотру вот это видео.
В начале статьи я не зря охарактеризовал xRoom как ПЛК, он действительно будет таковым. Имеющиеся на рынке ПЛК мне не подходят из-за ориентации их железа на производственные потребности. Возможно, появилось уже что-то новое и я об этом не знаю. Если у кого-то есть такая информация - делитесь. Что касается программирования (загрузки управляющего алгоритма), а если боле точно, то загрузки FBD программы, в этом мне поможет один из моих партнеров - компания производитель ПЛК для систем автоматизации. На данный момент я не буду оглашать название этой компании по понятным соображениям. Они предоставляют мне возможность использования своих наработок в этой сфере, а именно среду программирования FBD. Из таких блоков будет строится алгоритм управления контроллером. Главный плюс в этом, это возможность составить алгоритм управления контроллером людьми не имеющими навыков программирования.
Рис. 2. Подключение контроллера xRoom.
Питание контроллера осуществляется от внешего 12В источника, подключенного к внешним клеммам (высоковольтное напряжение, необходимое для питания нагрузки через симисторные или релейные ключи, также поступает внутрь). К внешним клеммам также подключается целый ряд датчиков (движение, протечки, газа, концевик, геркон и .т.д) и управляемая нагрузка (освещение, розетки, насосы, клапаны, ролеты, колориферы и т.д.). На картинке не удалось показать весь спектр подключаемых устройств, но общая структура понятна. Лично я планирую по максимуму использовать готовые проводные датчики, которые можно купить в соответствующих магазинах.
Для межкомнатных магистралей используются гальванически развязанные проводные интерфейсы, а для внутрикомнатной - обычный RS-485.
Первый прототип контроллера (точнее верхней платы, см. рис. 3) находится на этапе тестирования. В следующей статье я подробно о нём напишу. Возможно, к этому времени будет спаяна и нижняя плата.
Рис. 3. Верхняя плата контроллера xRoom.
К концепту ещё есть целый ряд разнообразных вопросов, на которые у меня пока нет ответов. Например, где в комнате устанавливать контроллер? Как вести от него шлейф проводов? Как разрулить команды, которые одновременно приходят от физических элементов управления и от MajorDomo для одного и того же ресурса? И многое другое... Поэтому, буду рад конструктивной критике и предложениям, которые позволят двигаться вперёд.
Теперь хотелось бы подытожить всё описанное выше.
1. Умный дом должен быть проводным.
2. Одна комната/помещение - один контроллер.
3. Децентрализация и автономность - это must have в таких системах.
4. Объединение надёжности работы ПЛК с кастомным решением по железу даст хороший девайс.
5. Простое и понятное создание прикладной программы на основе FBD блоков даст возможность вовлечь в этот процесс "обычных смертных" (людей не обладающими навыками программирования).
В данной статье хочу рассказать про будущий концепт построения своего умного дома на базе устройств под кодовым названием xRoom. Что это такое? xRoom это очередной мой проект, а если более точно - серия контроллеров, каждый из которых можно охарактеризовать как ПЛК, состоящий из двух плат - процессорной (верхней) и силовой (нижней). Обе платы будут расположены в DIN-реечном корпусе (D9MG или аналогичном).
Перед тем как более детально описывать данный концепт, я хочу поделиться своим скромным опытом использования такого чуда современной науки и техники, как система умный дом.
Внедрение умного дома началось около трёх лет назад. До этого момента также были попытки автоматизации отдельных элементов, но системно я на это взглянул с появлением в своём поле зрения платформы MajorDomo. Так как я отношу себя к так называемым "железячникам", я сразу же начал искать пути входа в данную программную платформу через своё железо. Для этого я создал пост "Разработка собственного железа" , который потом перерос в раздел "Авторские проекты" (спасибо Сергею за поддержку идеи). Со временем точка входа была найдена - MуSensors . Совместно с Иваном (передовой майсенсоровец:-) ) мы разработали серию устройств различного назначения, глянуть можно здесь . Наиболее успешным оказался гейт MDMSGate . Успешность гейта я определил двумя факторами - стабильная и надёжная работа, а также, хоть и небольшой, а спрос. Я продал несколько десятков штук. за бугор, причём меня очень удивила география - в списке есть Австралия и Новая Зеландия. В страны СНГ - около 5 шт. Исходя из этого, хочу дать совет всем железячникам, кто хочет не только самостоятельно юзать свое железо, но и продвигать его в массы - пиартесь на зарубежных ресурсах. Так вот, родив номенклатуру устройств MySensors, я сразу же начал усиленно юзать их у себя дома. Ничего плохого как про свои устройства, так и про сам майсенсорс сказать не могу. Работают хорошо, да и сам проект майсенсор постоянно обновляется, выходят новые библиотеки, короче, проект живой и перспективный. В основном, пользователи майсенсорс используют радиомодули для общения между устройствами. Есть поддержка RS-485, но почему-то она не такая популярная.
Всё как бы хорошо и радужно, но все же.... Cо временем мне пришло понимание того, что я хочу и чего не хочу при использовании умного дома. ИМХО что одним из слабых мест в работе экосистемы умного дома есть использование усторйств с радиомодулями. Это относится к вопросу - провод или радио? На эту тему есть ярые сторонники как с одной, так и с другой стороны, спорить не буду, это моё личное мнение. Особенно, это касается использования батарейных устройств, которые имеют ограниченный ресурс. Кстати, мне понравилось вот это видео на эту тему. В проводной умный дом можно интегрировать радиоустройства и прочее (MajorDomo это позволяет сделать без всяких проблем), но радио не должен быть основным каналом, и это первое что я хочу изменить. Второе - это децентрализация. К сожалению, MуSensors не соответствует данным требованиям, и поэтому я оставляю его у себя как вспомогательный.
Вернемся снова к xRoom. xRoom будет иметь несколько модификаций, отличающиеся нижними платами. Верхняя плата для всех модификаций будет одна и та же. Она будет наподобие платы Arduino с микроконтроллером STM32F407, но с наличием интерфейсов связи (Ethernet + RS-485) и дополнительной защитой для входов/выходов. Формат нижней платы, а точнее перечень её железа, будет определять предназначение самого контроллера. Применение контроллера будет дифференцироваться в зависимости от помещения или, так сказать, по-английски, Room-а. Отсюда первая (основная) догма - для обслуживания различных помещений требуются определённый набора "железа" в контроллере. Например, для применения xRoom на кухне, уклон должен делаться на датчики, снятие показаний со счётчика, управление светом, движение. В ванной - уклон на датчики, свет, теплый пол, а в жилой комнате уклон на свет, розетки, жалюзи, движение и т.д. На рис. 1 показана топология расположения различных модификаций xRooma в квартире.
Рис. 1. Топология контроллеров xRoom.
На первый взгляд функционал пересекается, но вот пропорции различных датчиков и актуаторов (синие прямоугольнички) для различных помещений точно будут отличаться (по крайней мере в моём случае).
Вторая догма - работа каждого контроллера должна быть автономной и децентрализованной, по заранее заложенной в него программе. Все контроллеры должны быть равноправны и подчиняться более высокому по архитектуре контроллеру. В моём случае это будет RPI3, на котором будет крутится MajorDomo. Контроллеры не должны инициировать передачу данных или любых других запросов в магистрали, связывающей межкомнатные контроллеры (красная линия на рис. 1), а только обрабатывать их. По данной магистрали MajorDomo будет собирать статистические данные контроллеров и позволит организовать дополнительный канал управления, функцией которого будет осуществление межкомнатного взаимодействия между контроллерами.
А где тогда основной? Основное управление контроллером, и, соответственно, подключенными к нему узлами, осуществляется по специальному алгоритму, реализованному в виде загруженной программы. Например, нажимая на кнопку установленного на стене включателя, мы получаем сигнал на включение лампы и включаем её. Но если мы хотим выключить ту же лампу с помощью телефона, нам надо отправить команду на выключение через дополнительный канал. Для этого мы заходим на веб интерфейс MajorDomo и нажимаем на соответствующую кнопку (или вызываем из какого-либо сценария).
Магистраль, связывающая устройства внутри комнаты (зелёная линия на рис. 1), обслуживается внутренней программой контроллера, на ней строится внутренняя подсеть. К данной подсети планируется подключать датчики, панели отображения или дополнительные контроллеры имеющие RS-485 интерфейс. Сам xRoom в такой магистрали будет служить мастером. Таких вспомогательных магистралей может быть несколько. Как межкомнатная, так и внутрикомнатная магистрали будут основываться на стандартных интерфейсах Ethernet и RS-485. Отсюда и третья догма - все сосновые каналы связи и управления - проводные, а протоколы обмена - стандартные. Для Ethernet это будет MQTT или Modbus TCP, а для RS-485 Modbus RTU.
Работа сети RS-485 по протоколу модбас, в основном, строится по схеме мастер-слейв. То есть одному физическому порту любого устройства может назначаться один из этих режимов работы, а во всей сети может быть только один мастер. Одновременная работа в режимах мастер и слейв требудет нескольких физических портов, причем появление нового мастера - это новая подсеть. Топология на рис. 1 построена именно по этой схеме. Использование Ethernet даст возможность на одном физическом порту организовать несколько каналов, подключаемых через разные виртуальные (логические) порты. Это значительно расширит функциональность.
Проводной умный дом требует решения проблемы с большим объёмом проводов. Зачастую такой вариант приемлем на стадии ремонта/стройки, когда эту проводку можно скрыть. Либо укладывать её в короба и пускать наружу. Также, этот вариант будет дороже по стоимости. По данному вопросу рекомендую к просмотру вот это видео.
В начале статьи я не зря охарактеризовал xRoom как ПЛК, он действительно будет таковым. Имеющиеся на рынке ПЛК мне не подходят из-за ориентации их железа на производственные потребности. Возможно, появилось уже что-то новое и я об этом не знаю. Если у кого-то есть такая информация - делитесь. Что касается программирования (загрузки управляющего алгоритма), а если боле точно, то загрузки FBD программы, в этом мне поможет один из моих партнеров - компания производитель ПЛК для систем автоматизации. На данный момент я не буду оглашать название этой компании по понятным соображениям. Они предоставляют мне возможность использования своих наработок в этой сфере, а именно среду программирования FBD. Из таких блоков будет строится алгоритм управления контроллером. Главный плюс в этом, это возможность составить алгоритм управления контроллером людьми не имеющими навыков программирования.
Рис. 2. Подключение контроллера xRoom.
Питание контроллера осуществляется от внешего 12В источника, подключенного к внешним клеммам (высоковольтное напряжение, необходимое для питания нагрузки через симисторные или релейные ключи, также поступает внутрь). К внешним клеммам также подключается целый ряд датчиков (движение, протечки, газа, концевик, геркон и .т.д) и управляемая нагрузка (освещение, розетки, насосы, клапаны, ролеты, колориферы и т.д.). На картинке не удалось показать весь спектр подключаемых устройств, но общая структура понятна. Лично я планирую по максимуму использовать готовые проводные датчики, которые можно купить в соответствующих магазинах.
Для межкомнатных магистралей используются гальванически развязанные проводные интерфейсы, а для внутрикомнатной - обычный RS-485.
Первый прототип контроллера (точнее верхней платы, см. рис. 3) находится на этапе тестирования. В следующей статье я подробно о нём напишу. Возможно, к этому времени будет спаяна и нижняя плата.
Рис. 3. Верхняя плата контроллера xRoom.
К концепту ещё есть целый ряд разнообразных вопросов, на которые у меня пока нет ответов. Например, где в комнате устанавливать контроллер? Как вести от него шлейф проводов? Как разрулить команды, которые одновременно приходят от физических элементов управления и от MajorDomo для одного и того же ресурса? И многое другое... Поэтому, буду рад конструктивной критике и предложениям, которые позволят двигаться вперёд.
Теперь хотелось бы подытожить всё описанное выше.
1. Умный дом должен быть проводным.
2. Одна комната/помещение - один контроллер.
3. Децентрализация и автономность - это must have в таких системах.
4. Объединение надёжности работы ПЛК с кастомным решением по железу даст хороший девайс.
5. Простое и понятное создание прикладной программы на основе FBD блоков даст возможность вовлечь в этот процесс "обычных смертных" (людей не обладающими навыками программирования).