В данной статье будет кратко описано об истории возникновения MDMS устройств, концепции их построения, перечислены задачи решаемые данными устройствами, описано положение дел на текущий момент и планы на будущее.
С чего всё начиналось? Всё началось с окончания строительства моего дома. Исходя из того, что много чего приходилось делать самому, не было времени даже подумать о какой-то автоматизации. Блоки, крыша, гипсокартон и т.д. – вот чем была забита голова на тот момент. И вот, после поклейки обоев и расстановки мебели, я начал задумываться — а не плохо было бы … Короче, не буду всё перечислять, и так все понимают о чём идёт речь :-).
Сначала хотелось сделать всё самому – железо, софт под него и сам контроллер (программную платформу). И на эту дурость я потратил чуть более года. Потом я остановился и задумался – может я делаю что то не так? Переосмыслив подход, я начал искать открытые проекты, на основе которых можно было бы развиваться. Поиск сразу дал результат — я нашёл и начал вникать в проект MajorDomo. Так родились первые две буквы MD. Ознакомившись с проектом и, поняв, что это именно то, что я искал, я сразу же создал на форуме свой первый пост «Разработка собственного железа». Итак, контроллер найден, осталось определиться с железом и софтом под него. Вот тут-то на меня и вышел Иван. Он познакомил меня с технологией MySensors и предложил разрабатывать железо под неё. Ознакомившись с MySensors, я, в очередной раз, был доволен «находкой». Вот так появились две вторые буквы MS. Теперь становиться понятным, что устройства MDMS в первую очередь предназначены для использования в проектах MajorDomo и MySensors.
После длительных переговоров по скайпу было принято решение о разработке гейта. Даже накидали минимальное ТЗ. Потом уже появились: лайтинг, мультисенсор и повер, а также их модификации (ознакомится с устройствами можно будет ниже).
Законодателем аппаратной архитектуры всех устройств стал проект MySensors, где все устройства созданы на базе платформы Arduino (не трудно догадаться, что во всех устройствах установлен микроконтроллер Atmega328p). Примеры устройств можно глянуть здесь. Все устройства MDMS прошиваются загрузчиком DualOptiboot. Хочу отметить, что «стандартный» загрузчик не подойдёт, так как в устройствах изменён пин микроконтроллера для вывода CS микросхемы памяти, да и сама память отличается (используется М25Р40). Пришлось немного доработать исходники. Модифицированный загрузчик можно глянуть здесь.
Все устройства являются Arduino-совместимыми, что позволяет работать с ними (писать код, программировать и отлаживать) напрямую из Arduino IDE (необходимо выбрать плату Arduino UNO). Проще говоря, каждое устройство MDMS является скрещением платы Arduino и наборов различного рода шилдов. Такой подход имеет большой плюс — возможность быстрого старта в работе с устройством (для ардуинщиков). Несмотря на это, работать с платой можно и без применения MySensors вообще, а, скажем, используя код собственного проекта.
Во всех устройствах присутствуют следующее возможности:
- использование одного из радиоканалов ISM диапазона 433/868/915 МНz или радиоканал в диапазоне 2.4GHz (в зависимости от используемого радиомодуля RFM69 или NRF24L01);
- использования «подписи» при обмене сообщениями (наличие микросхемы ATSHA204A );
- обратная связь устройств с контроллером;
- использование универсального разъёма для программирования/отладки (для работы с MDMSAccessory «Programming»);
- обновление ПО по воздуху (FОТА).
Основной задачей при разработке данных устройств было создание простой, общедоступной серии open source DIY устройств для автоматизации различного рода процессов (освещение, отопление, полив, безопасность и т.д),что, в принципе, и реализуется. Исходные файлы печатных плат каждого из устройств данного проекта выкладываются на сайте openhardware, а скетчи на github. Пару слов по поводу скетчей — выложенные мною скетчи не являются чем-то образцовым, это есть стартовые скетчи, которые показывают работу функционала, заложенного в устройство. Поэтому, всячески поощряется конструктивная критика в отношении скетчей, а также, для тех кто решит писать их сам, прошу обмениваться наработками. Любой желающий может сам изготовить (заказать печатные платы и спаять) любое из устройств, а если нет желания с этим возиться – можете просто купить. Цену и наличие смотрите на сайте в разделе «Магазин». Для каждого устройства, на форума MajorDomo (раздел «Авторские проекты»), создаётся отдельная ветка для обсуждения.
Ниже привожу перечень разработанных (на текущий момент) устройств. Для более детальной информации переходите по вышеуказанным ссылкам, задавайте вопросы на форумах или в комментариях к данной статье.
- MDMSGate. Устройство используется как шлюз для контроллера управления. Поддерживает Wi-Fi, Ethernet и Serial соединения c контроллером.
- MDMSNode «Power». Устройство предназначено для коммутации «мощной нагрузкой» в сети переменного тока (до 10А).
- MDMSensor «Multisensor». Устройство предназначено для измерения температуры, давления, влажности и освещённости. Имеет клеммник для подключения внешних датчиков. Питание — Li-Po аккумулятор.
- MDMSNode «Lighting». Устройство предназначено для управления освещением. Метод управления — симмисторный ключ. Нагрузка до 150 Вт. Возможно подключения внешний кнопки. Устройство находится на этапе пайки первых образцов (вместо фото пока только render 3D).
- MDMSNode «Lighting X2». Устройство предназначено для управления освещением. Имеет два релейных канала управления. Мощность на канал до 500Вт. Имеет клеммник для подключения внешних датчиков.
Устройства в текущее время находятся на альфа-тестировании, т.е. проводится систематическая работа по проверке всех функций устройств. Для этой цели разработан демо-стенд. Поэтому, при появлении каких-либо замечаний в работе устройств прошу уведомлять об этом разработчиков. Уверен, что со временем мы сможем довести все устройства до «идеала» и наблюдать стабильную и надёжную их работу.
В планах на будущее стоит расширение номенклатуры устройств. Сейчас обсуждаются возможные новые направления. Буду рад выслушать все дополнительные пожелания и рассмотреть ваши предложения.