Умный дом — общая архитектура системы

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

    Лучше поздно, чем никогда. Я наконец понял свою ошибку, и теперь начну с того, с чего обычно начинаются все книги — с оглавления.
    Структурное представление умного дома:


    Итак, про что тут можно рассказать:

    • Полупроводниковые ключи
    • Подсистема контроля протечек
    • Сенсорные кнопки
    • Драйвер шагового двигателя
    • Комнатный контроллер
    • Контроллер шины
    • Приложение для Android
    • Виджеты для Android
    • Серверная часть на Qt
    • Скриптовый язык написания алгоритмов работы умного дома, система CELAC (Condition — Event — Link — Action — Command). Можно назвать наоборот — но название CALEC мне понравилось меньше.
    • Web-сервер на Node.js
    • Сам Web-интерфейс

    Отдельно можно выделить:
    • Подсистема дверного замка (контроллер, считыватель, питание)
    • Как организовано питание умного дома в целом

    В качестве датчиков температуры и влажности использую DHT11, датчики движения — Фотон-9.

    Напоследок пара фотографий начинки комнат:

    Прихожая:

    В черной коробке с зеленым диодом (за аккумулятором) контроллер замка и система автоподзарядки аккумулятора.
    В корпусе Dlinkовского свитча — мой комнатный контроллер, втыкается в шину (розетка шины справа внизу), входы/выходы выведены разъемом DB25 на клемники слева, чтобы можно было легко и быстро заменить контроллер, если что.
    Слева внизу болтается датчик температуры и влажности DHT11.
    На соплях в центре фотографии можно заметить полупроводниковый ключ, которым управляется свет.

    Туалет:

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

    Подробнее
    Реклама
    Комментарии 45
    • 0
      При таком подходе есть рагантии, что систему не хакнут однажды?
      • 0
        Нет. Стопроцентно вообще сложно гарантировать что-либо.
        На мой взгляд единственная дыра тут — веб-интерфейс. Я постарался его защитить.

        И, как вариант, можно запретить через веб морду рулить дверью.
        • 0
          Или банально разрешить вход в вебинтерфейс только с нескольких IP.
          • 0
            Это сложно если пользоваться 3G/4G/McDonalds. Там вообще неизвестно какие ip будут, а это значит, что оперативно информацию можно и не получить, ведь нотификейшэны идут тоже через веб-сервер.
            Хотя можно поднять прокси, но это не всегда удобно для мобильных устройств.
            • 0
              Значит можно поднять авторизацию на устройстве (тип устройства и прочие параметры), в случае несовпадения — отказ.
              В общем для 1-3 пользователей удобно, для 30 — уже нет.
      • +1
        Почему UDP? Профита же нет в вашем случае
        • +1
          Честно говоря — не помню. Что то у меня там бродкастом внутри локалки рассылалось, клиентское приложение под android ловило эти пакеты, выдергивало оттуда адрес, порт и не надо было ничего настраивать. Как то так.
        • 0
          Сценарии писали? Если да, то на каком принципе.
          • 0
            Сценарии — в смысле: не включать свет по датчикам движения когда светло, закрывать дверь ночью, предупреждать о температуре снаружи при выходе из квартиры и т д? По принципу — как удобно.

            Или, например, сделал себе виджеты на телефон (виджеты настраиваемые) — выключить весь свет дома и открыть/закрыть замок — очень удобно, вместо ключей достаю телефон, выключаю свет и запираю дверь.
            • +1
              да. по первому пункту. как храните сценарии? как пишите? есть ли какие-либо элементы визуального программирования? Сейчас продумываю универсальный механизм написания и выполнения сценариев, хранимых в mysql. Планирую наглядный web-интерфейс для их создания.
              • 0
                Пишутся в блокноте, хранятся в текстовом файле, визуального ничего нет. Выглядит как куча IF-ов, есть OR/AND, таймеры, из переменных только булевские, позже могу показать.

                А есть разница, где их хранить? У меня только разбор из файла, дальше они хранятся в оперативке. Разве что с точки зрения безопасности.

                О какой нибудь удобной среде создания таких алгоритмов думал, но решил что менять их надо редко, да и кроме меня никто этим пользоваться не будет и оставил в текстовом файлике.
                • 0
                  Как насчет такого? image
          • +2
            Если такие статьи тут в почёте, надо будет как-нибудь и про свой умный дом рассказать…
            • 0
              Обязательно, самому очень интересно посмотреть, как это реализовано у других.
              • +1
                Кластерный, давно интересно, что ты у себя сделал, а то показывал тут некоторые элементы.
                • +3
                  Мой опыт показывает, что статьи про мышей и датчики в туалете здешнему народу куда интереснее, чем разработка шины для умного дома :)
                  А вообще, у меня тут уже 13 устройств в сети, от дверного замка до привода для открытия окна.
                  • +3
                    Не согласен, мне вот интересно. Если можно, расскажите о вашей шине, протоколе, контроллерах.
                    • 0
                      присоединяюсь. Мне вот концепт интереснее, чем реализации конечных устройств.
                      Хотя и реализации занимательны)
                      • +1
                        Написал статью: habrahabr.ru/post/228151/
                      • 0
                        Я то же жду.
                  • +9
                    Как глянул на фото, так понял что лучше уж без умного дома, чем с такой мешаниной проводов и коробочек. Ужас!
                    • +1
                      При такой концентрации проводов и коробочек в потенциально сыром месте, удивляет отсутсвие на схеме датчика пожарной сигнализации. Думается что это временный «дизайн», и когда архитектура станет стабильной, автор заменит эту мешанину на аккуратные хорошо изолированные модули.
                      • +3
                        «Нет ничего более постоянного, чем что-то временное» ;)
                      • +1
                        У меня такая же мешанина, даже хуже. Начинается так: я положу сюда свич и потом когда будет время — сделаю всё правильно. Но время никогда не приходит, а потом кладется еще коробочка, и еще, и еще. А потом как подумаешь, что надо всё это отключать (и тратить допустим выходные только на то, чтобы понять где какая проводка лежит) — становится так страшно, что ноги сами несут делать что-нибудь другое.
                      • 0
                        А в чем рисовалась первая картинка?
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • 0
                          Все что усложняло жизнь было уничтожено семьей. Им не очень нравится когда усложняют жизнь. Будильник здорово будит всю квартиру, дверь очень удобно запирать с телефона, ключи вообще не достаю, не надо топать к выключателям, окнам дверям.

                          В основном конечно реальный и большой плюс удобству приносит управление всем виджетами с телефона.
                        • 0
                          Я так понимаю, что шкаф с оборудованием закрытый и не вентилируемый — верно?
                          Как дела обстоят с нагревом?
                          • 0
                            Верно, шкафы везде закрытые, сам МК греется очень незначительно, его цепь питания тоже, это же не кренка, да и токи там очень небольшие. В некоторых местах на симистор пришлось прикрутить радиатор, но они включаются ненадолго. С перегревом проблем никогда не было.
                          • 0
                            Очень прошу, можно больше про аккумуляторы? Крайне важная штука, как по мне.
                            Схема на L200C? Если да — дадите файлы для создания платы? Если нет — информация будет ещё ценнее =) Правда, линейные зарядники — то ещё дерьмо в плане энергоэффективности, но что уж поделать…
                            Насколько я помню, напряжение зарядки для таких — что-то около 14 вольт. Техника умеет питаться от такого напряжения? И что на входе у стабилизатора? 16 вольт? Если да — то откуда? Я использовал старую зарядку от ноутов IBM, но их сейчас достать трудновато =(
                            • 0
                              1. Для L200C схема есть в даташите — там же и расчеты элементов для Ваших нужд.
                              2. Сейчас рулят импульсные БП. Я у себя буду ставить такие на всех сторонах — на высокой и низкой. То есть у меня будет следующая цепочка: 220В — импульсник в 12В — разводка по дому — импульсник на 3,3/5В в каждом девайсе с мозгами. Тем более мелкие Step-Up'ы стоят дёшевке — в Китае их десятками продают по 0,7$ за штуку.
                              • 0
                                1) Да, но меня интересует именно файл для создания платы — всегда легче взять рабочую плату, чем самому повторять уже пройденный кем-то путь. Так что если Вас не затруднит выложить хоть даже PDF для ЛУТ — буду очень признателен.
                                2) Да, но тут вопрос насчёт L200C. У Вас, насколько я вижу, выход идёт в параллель с устройствами на шине 12 вольт — а у зарядника на выходе около 14. Да ещё и на входе зарядника должно быть около 16. Вот насчёт них и вопрос.
                                Кстати, у Вас случаем нет на примете доступной микросхемы импульсного зарядника для литиевых аккумуляторов? А то в основном находил только линейные, к сожалению =(
                                И ещё — разве иногда не проще и дешевле поставить 78L05? Там, где нагрузка на уровне 50ма, думаю, все преимущества импульсника просто не раскроются, а вот цена будет, мягко говоря, разной. Если учесть, что потребление датчиков так и так придётся снижать, на регуляторе можно и сэкономить =)

                                Тоже до какого-то времени занимался своим УД, изобретал свой протокол. Есть пару нормальных алгоритмов работы для всяких датчиков, но дальше дело не пошло — не было где воплощать. Платформа — ATTiny85, с ядром Arduino — намного легче кодить, хоть и не все фишки пока портированы. Потом из-за нехватки времени и денег отложил эту идею. Насчёт RS485 не задумывался, а вот теперь думаю — решает достаточно много проблем. Может, этим летом, если будет время, продолжу Вами начатое. В конце концов, чем больше людей двигаются в одном направлении, тем дальше можно пройти =)
                                • 0
                                  По поводу платы — нету у самого :)
                                  78L05 — при преобразовании 12->5 тепловые потери на чипе будут большими. А в импульсниках таких проблем нету. Да и КПД в разы выше, чем у линейных стабилизаторов ;)

                                  По архитектуре — у меня в планах примерно так:
                                  — Головной контроллер, он же — сервер. Cubieboard;
                                  — «Комнатные» контроллеры. STM32, подключаются к головному через Ethernet;
                                  — локальные контроллеры. STM32/STM8, подключаются к «комнатным» через RS-485, свой протокол, уже практически обкатанный и т.п.
                                  Вся сеть построена так, что все решения принимаются без участия головного контроллера — все действия забиты в локальных контроллерах (простейшие конечные автоматы, программу можно менять «на лету») и не зависят от работоспособности верхних уровней (разве что только при запуске системы — «комнатный» контроллер должен первым выдать кому-то метку «мастера», передаваемую по цепочке).
                                  Протокол в реальном железе ещё не тестировался — жду последних посылок с STМ'ами…
                                  • 0
                                    Окей, но не ответили на вопрос насчёт напряжений — это всё же действительно волнует =)

                                    Кстати, комнатные контроллеры думал делать на чём-нибудь типа платы на AR9331, ну и с исполнительными модулями типа Arduino Pro Mini. Просто порог вхождения выше, да и кода писать меньше =) Ну и каждый выключатель — со своим мелким контроллером типа ATTiny, так и недорого выходит, и возможностей много — каждый выключатель легко становится автономным, но при этом сохраняет кое-какие плюшки. Сначала городил свою помесь I2C и UART, но сейчас читаю про 485 и всё интереснее, что же можно будет сделать в итоге.
                                    • 0
                                      Импульснику начхать на точное значение — он на входе принимает до 36 вольт ;) Просто ШИМ будет послабее и всё — на выходе будет то же заданное напряжение :)

                                      Под RS-485 всё рано надо или использовать имеющееся (тот же Modbus) или городить свой огород. Всё зависит от структуры — мне Modbus не подходит, ибо там явно выражен мастер.
                                      • 0
                                        А, то есть у Вас они уже используются. Смутила фраза:
                                        >>>>Я у себя буду ставить такие на всех сторонах [импульсные БП]
                                        вкупе с картинкой, где клеммы для чего-то идут прямо с батареи.

                                        Спрашиваю, собственно, потому, что Есть Один Тонкий клиент, и у него питание — 12 вольт 3 ампера, но они должны быть стабилизированными. Поэтому и ищу решение резервного питания, используя уже имеющиеся в наличии необслуживаемые аккумуляторы. Ну и зарядку к ним получше, конечно.

                                        • 0
                                          Я вроде картинок не выкладывал — это делал ТС ;)
                                          А по поводу питания — есть готовые модули KIS-3R33S. Изначально они на 3,3В, но поменяв 1 резистор, можно регулировать выходное напряжение. Параметры:
                                          Входное напряжение — 4,75 ~ 23V.
                                          Выходное напряжение — 0.925 ~ 20v.
                                          Номинальный ток — 3А, пик 4А.
                                          Размер: 20мм * 21мм * 7мм.
                                          Вполне хватает для всех нужд любых модулей Умного Дома и не только :)
                                          • 0
                                            Так-то 9 баксов за это весьма дофига. Есть варианты и дешевле с китайскими бп. Только с открытыми.
                                            • 0
                                              это за 5 штук вообще-то ;) Получается чуть меньше 2$ за штуку.
                                            • 0
                                              Чёрт, я и не заметил, что Вы — не ТС =) В любом случае — спасибо за то, что поделились опытом ;-) Теперь только осталось ТС услышать.

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