Немного хотел поделиться с коллегами которые работают в аналогичном направлении информацией.
Попробовав технологии связи 1-wire и CAN-BUS пришел к выводу что не целесообразно делать всю квартиру единой большой сеткой линейной топологии, по причине чрезмерного накопления помех и больших потерь в питающих линиях.
Сразу добавлю что делать все управление на беспроводных соединениях мне не нравится, и максимальное количество датчиков и управляемых элементов я буду делать проводными (по той или иной технологии). Хотя конечно совсем без беспроводных сегментов обойтись не получится.
В итоге это будет гибридная схема, в которой будет ядро коммутации ethernet, к которому по топологии звезда подключены высокоскоростные устройства (камеры, роутеры), и локальные управляющие контроллеры (условно по одному на помещение).
Для некоторых элементов будет использоваться RF (радиоканал) управлемый со стороны контроллеров.
Дальше встал вопрос прошивки этих локальных управляющих контроллеров, и я начал искать в сети готовые проекты.
Во первых мне попалась на глаза прошивка контроллера MegaD-328 которые производят коллеги с ab-log.ru
(http://www.ab-log.ru/smart-house/ethernet/megad-328)
Простенькая и не очень продвинутая по стилю кодирования, тем не менее вполне функциональная.
Понравился функционал смены прошивки по сети (бегать не нужно и демонтировать), не понравилось то что нет поддержки распространенных модулей (радиоканалов, 1-wire master, can-bus и т.д.). Еще расстраивает что ребята совсем не умеют работать с репозитариями (ну это тоже вопрос к уровню программирования). Хотя при желании вполне можно допилить.
Дальнейшие поиски привели меня на страницу проекта http://www.souliss.net и я понял что именно такой фреймворк я и искал.
В двух словах это модульный набор подсистем в виде библиотек для arduino, который на выходе позволяет собрать прошивку для контроллеров управления (в их терминологии - нод).
Краткие плюшки которые умеет фреймворк:
- работа по Ethernet во всех режимах включая DHCP, static ip, по протоколам udp включая мультикаст и бродкаст. С поддержкой всех распространенных Eth шилдов на arduino, вклюая официальный W5100 и дешевый ENC28J60.
- функционал gate - шлюзование сети vNET в Ethernet
- функционал bridge - связь разных каналов usart(rs245/can),eth(wire,wifi),2.4 GHz IEEE 802.15.4 в единую сеть vNET
- обмен reer-to-peer
- http,XML server, включая возможность хранения истории
- грамотная система классификации датчиков и эффекторов, работа в режиме связи с сенсорами (датчики полного открытия/закрытия), обратная связь по температуре и т.д.
- развитая подсистема таймеров и перекрестной логики, удобно описывается
- работа с портами ввода вывода в режимах цифра/аналог (вот только с PWM пока не разобрался)
- защита данных от помех (CRC)
- аварийная подсистема (антивор, авария/пожар)
- динамическое подключение модулей (нод и их набора устройств)
- динамическая маршрутизация по всей сети vNET через любую среду передачи
- высокая степень оптимизации полосы пропускания, буквально побитный обмен
Ну и в завершение всем этим можно управлять как через http (функционал поднимаемый на одной из нод) так и через приложение для андроида (для мака нету ), но для меня еще интереснее стала интеграция в систему управления умным домом OpenHAB.
Стиль программирования и организации данных выше всяких похвал, чувствуется рука Дизайнера (с большой буквы) архитектуры решения.
Добавлено спустя 20 минут:
Букв много, читать тяжело.
вот несколько видео
официальный канал http://www.youtube.com/channel/UCZ89QEFpv4exfNsRaajIPfw