Бесконтактные устройства
Компания
39,94
рейтинг
3 марта 2014 в 04:43

Разное → Демонстрация работы Wiren Board Smart Home

image

Привет!

Чуть больше недели назад мы открыли предзаказ на Wiren Board Smart Home — наш контроллер для домашней автоматизации. В предыдущей статье мы рассказали про железо, а в этой начнём показывать работу с разной периферией и уделим внимание софту. В этот раз показывать будем работу с реле, выходами открытый коллектор, термодатчиками 1-wire, а также работу по радио с беспроводными пультами и блоками управления освещением Noolite и датчиками Oregon.


Итак, для демонстрации работы мы собрали стенд:

image

На стенде, во-первых, закреплена DIN-рейка, на которой находится наш контроллер Wiren Board Smart Home (1) и блок питания на 12В (2). Контроллер подключен к интернету через Ethernet.

Напрямую к контроллеру подключены:
  • к релейному выходу: управляемый кран (3). Кран открывается при подаче на него напряжения 12В. К релейным выходам можно подключать и нагрузку на 220В до 1кВт.
  • к транзисторным выходам типа «открытый коллектор»: светодиодные ленты. Отрезок белой светодиодной ленты (4) (под колпачком) подключен к выходу FET4, RGB-лента (5) подключена к выходам FET1-FET3.
  • к одному из входов 1-wire подключено параллельно два цифровых термодатчика на базе DS18B20 (9,11).
  • к входам R1, R2 подключен стандартный считыватель бесконтактных карт с пинпадом с интерфейсом Wiegand (6). К этим входам можно подключать цифровые сигналы напряжением до 12В (в данном случае рабочее напряжение протокола Wiegand — 5В). Также к входам R1-R4 можно подключать аналоговые резистивные датчики; пока на стенде их нет.
  • на одной из двух шин RS-485 висит модуль (14) системы «Разумный дом» MSU21, предназначенный для подключения разных датчиков. В нашем случае к модулю подключён датчик температуры (13) типа LM135. Эти модули работают по протоколу Modbus и, соответственно, могут сосуществовать с другими устройствами на шине.


На стенде также находится оборудование, с которым наш контроллер работает с использованием встроенного радиомодуля для частоты 433Mhz:
  • Исполнительный модуль (10) системы Noolite (ST111-500). Этот силовой блок используется для управления лампой накаливания (12)
  • Настенный беспроводной пульт (7) системы Noolite (PU-111-1). Пульт работает от батареек и передаёт сигналы по беспроводному каналу на контроллер.
  • Беспроводной датчик температуры и влажности (8) для метеостанций Oregon Scientific (THGN132N). Про эти датчики уже писали на хабре. Датчики продаются повсеместно отдельно от метеостанций по разумной цене. Датчик передаёт показания на контроллер примерно раз в 40 секунд.

Для наглядности два термометра, подключенные, соответственно, через 1-wire и RS-485, расположены рядом с лампочкой накаливания, которая управляется через блок Noollite. При включении лампочки показания термометров растут.

Управление


В этой демонстрации мы использовали софт Ninja Blocks — одну из двух систем, которые мы поддерживаем. Это облачная система, данные с устройства отправляются на сервер Ninja Blocks. Управлять устройствами и датчиками можно с помощью веб-интерфейса a.ninja.is.

Основная приборная панель системы:
image

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

Веб-интерфейс Ninja Blocks позволяет создавать различные правила. Например, здесь создаётся правило, зажигающее зелёным светодиодную ленту, если температура термометра у лампочки ниже 32С:

image

image

У каждого датчика можно просмотреть историю изменения показаний или даже скачать её в машиночитаемом виде:
image

Для Ninja Blocks есть приложения для iPhone и Android для управления системой:
image

Ninja Blocks также предоставляет REST-интерфейс для внешних приложений и веб-сервисов для управления устройствами и получения с них данных. Существует несколько официальных внешних веб-приложений от Ninja Blocks, например, приложение для построение простой домашней системы охраны с реагированием на события.

ПО


Для реализации всего вышеперечисленного мы реализовали: библиотеку для работы с радиотрансивером; демон, обслуживающий приём и передачу данных с радиотрансивера и кодирование/декодирование протоколов Noolite и Oregon Scientific, драйверы устройств для Ninja Blocks (1-wire термометров, выходов, noolite и oregon, а также модулей компании «Разумный дом»).

Весь код, как обычно, доступен на github:
github.com/contactless/rfm69-linux
github.com/contactless/ninja-razumdom
github.com/contactless/wb-smarthome-ninja
github.com/contactless/ninja-1wire-temp
github.com/contactless/wiegand-linux-sysfs

Осторожно, работа ещё в процессе!

Видео


Описание стенда:


Собственно демонстрация работы с веб-интерфейсом системы Ninja Blocks:


Управление через приложение на смартфоне (Ninja Blocks Remote):


Заключение


Ещё раз напомним, что на контроллер Wiren Board Smart Home открыт предзаказ. Заказы принимаются до 15 марта, отгрузка планируется до майских праздников.

В следующих статьях мы подробнее расскажем про работу с радиотрансивером, про реверс-инжиниринг протокола Noolite, и, конечно, про подключение другой периферии. Следите за новостями!
Автор: @evgeny_boger
Бесконтактные устройства
рейтинг 39,94
Компания прекратила активность на сайте

Комментарии (59)

  • 0
    ЗдОрово!
    Вопрос: если надо подключить какое-то оборудование, то надо писать код для контроллера и код для Ninja Blocks? Все решения принимает Ninja Blocks, то есть если интернета нет, то и ничего не работает?
    • +1
      Да, все решения принимает Ninja Blocks и без интернета, соответственно, работать ничего не будет. Если такое поведение не устраивает, то можно использовать более традиционные системы типа agoControl или OpenRemote, можно одновременно с ninjablocks.

      Про agoControl тоже скоро напишем.
      • 0
        Попробуйте для принятия решений использовать нашу штуку. Буду рад ответить на вопросы и помочь, если возникнут трудности.
        • 0
          А под Mono вашу штуку вы не пробовали запускать?
          • 0
            Для Mono нужна небольшая адаптация. Пока не решил, целесообразно ли тратить на нее время.
    • 0
      Разработчики Ninja Blocks уже некоторое время обещают добавить возможность офф-лайновой работы.
      «Облако» будет нужно для создания аккаунта, управления с мобильного телефона «снаружи», для работы со сторонними сервисами типа Dropbox, для некоторых правил. Но система будет продолжать работать без интернета.
      Точной даты релиза нет. Но разработчики утверждают что делают гигантскую работу по переписыванию кода и адаптации софта к новой их железке Sphere.
      • 0
        Честно говоря, я всё больше разочаровываюсь в клиентском софте ninja blocks.
        1) Оно написано на ноде оригинальным способом и дико течёт и прилично тормозит.
        2) Из всех мест торчит непродуманность. Большое количество дублирующегося кода в драйверах
        3) Качество кода низкое, встречаются костыли типа передачи параметров сериализованным в строку json-ом.
        ну и самое неприятное: разработка, как я понимаю, по факту идёт закрыто. Репозитории на гитхабе не обновляются год, новый их софт вообще не публичный.

        Так что есть некоторые опасения, что получится у них не очень.

        Мы у себя решили выкинуть наконец родной клиент ninjablocks и заменить его на свой, благо есть нормальный API. А вообще смотрим в сторону agoControl в качестве основной системы, к которой ninjablocks прикручен в качестве опционального frontend'а.
  • 0
    Wow, вот теперь наконец-то видно, что оно реально умеет. Ничего так! Примерно подходит под мои нужды в этом плане, были бы только деньги… Правда, быть привязанным к Интернету — точно не моё, да и архитектура программы управления УД мне видится несколько иная, нежели как в предложенных программах, поэтому склоняюсь больше к своему велосипеду.

    А можно больше всяких примеров кода, которым Вы управляете модулями?
    • 0
      Простите, на Гитхабе уже увидел =)
      И что это за чёрный\синий провод отходит слева от модуля? Неужели стандартной антенны на 433МГц не хватает?
      • 0
        А это и есть стандартная полуволновая антенна на 433 MHz. Можно внутрь корпуса прятать конечно, там место есть.
        • +1
          Так разве у Вас уже не используется кусок проволоки спиралью внутри, как на картинке в предыдущем посте? Вроде же заявляли, что его будет достаточно для большинства случаев…
          • 0
            Кусок провода работает немного лучше. В DIN-корпусе видимо будем по-умолчанию полуволновые ставить, там внутри полно для этого места.
  • +1
    подскажите, а что за управляемый водопроводный кран выиспользовали?
    • 0
      Это не кран, а клапан нормально закрытый. Такие есть на 220 переменки, 48, 24, 12 вольт постоянки…
      • 0
        а насколько надёжный? латунные только патрубки видимо. остальное-пластик. не станет система защиты от протечек её причиной?
        • 0
          Так это, насколько я понимаю, просто демонстрация. Кран вы сможете купить какой пожелаете, просто с таким вот доказательством будете уверены, что он заработает в системе.

          Ведь БКУ не собираются же продавать и всю периферию, правильно?
          • 0
            это понятно, просто если люди сталкивались, может подскажут что… сам сейчас ищу подобный исполнитель. А на счет продавать периферию, думаю можно продавать проверенно-совместимые устройства. дополнительный доход. да и потребителю не придётся рынок изучать самому.
            • 0
              Вот тульские товарищи управляемые шаровые краны продают: www.razumdom.ru/klapany_i_krany/. Их можно и по более приятным ценам найти.

              Единственное, что на такие шаровые краны надо подавать напряжение разной полярности, т.е. один кран занимает две релюшки или два high side транзитора.
              • 0
                Спасибо за информацию, только 10-кратная разница в цене. Думал может пробовали подобные соленоидные на предмет надёжности. Нашёл на ebay фотографии — что-то доверия не внушают.
                А с мотором, мне кажется, всяко надёжней, несмотря на разную полярность и дополнительные затраты на электрочасть.
                • 0
                  Ну, у меня с ebay, выглядят один в один, как эти за 3000. По-моему одни и те же краны. Правда я пока так и не собрался поставить, лежат в ящике.
                • 0
                  Сантехники и причастные соленоиды не советуют по причине того, что быстрое закрытие провоцирует гидравлический удар в системе. Я вот не сантехник, поэтому все же предпочитаю прислушиваться к такому совету.

                  Недорогие (до тридцати долларов) китайские шаровые краны обычно рассчитаны на давление до 10 бар, т.е. фактически без резерва по нашему водопроводу (понятно, что рабочее давление 4 — 8 бар, но всякое у нас бывает). Самые дешевые и простые краны у тех, кто продает системы защиты от протечек — до 16 бар, но таких я уже у китайцев почему-то не видел.
                  • 0
                    вот я и думаю червячную передачу приделать к надёжному шаровому крану.
  • 0
    Выглядит очень не плохо, а есть ли возможность поднять на ней Mono?
    • 0
      Там обычный Debian, ARM9 454 MHz и 64MB RAM. Если ваше приложение будет по ресурсам влезать — то можно. Вообще прецеденты, насколько мне известно, есть.
      • 0
        Спасибо, тоже порылся, похоже Olimex запилили специальную сборку Debian с поддержкой Mono
        • 0
          В нашем случае это не нужно. Они делали специальную сборку под armel без hard float для процессоров, которые его поддерживают, чтобы обойти баг в Mono. У нас архитектура процессора и так armel, так что ничего дополнительно кроме apt-get install mono делать не нужно.
  • +1
    Все хорошо, красиво, но Ninja Blocks — это не наш выбор, система не автономна — это раз, и дядя из вне может с ней делать что угодно без вас — это два, так что не годится. Система автоматизации должна быть независимой ни от чего.

    Так что ждем демонстрацию с AgoControl — ибо она автономна. Ну и конечно код библиотек для неё.
    Успеете до 15 марта показать?

    В преспективе конечно хотелось бы увидеть работу с MajorDoMo, хотя он довольно прожорлив по ресурсам, т.к. использует PHP и MySQL
    • 0
      Системы автоматизации бывают разные, собственно железо Ninja Blocks вполне продаётся и имеет свою нишу.
      Демонстрацию с AgoControl планируем до конца предзаказа успеть, сейчас работаем над драйверами периферии для неё.
  • 0
    Вопрос к топикстартеру: а умный дом с минимумом проводов возможен? Уже гуглил, ссылки не привожу, дабы не сочли за рекламу.
    Я думаю, многим будет интересно увидеть краткий и профессиональный ответ не залезая в дебри гугла, или тематических форумов.
    • 0
      Возможен, но возникает вопрос: Что Вы понимаете под словом «умный дом»? Если шелкать светом в комнатах с телефона или измерять температуру на подокойнике, то это даже близко нельзя назвать «умный дом».
      • 0
        Огласите пожалуйста ваше мнение? Очень интересно.
        • 0
          Вполне возможен. Если серьёзно делать, то лучше исполнительные устройства ставить с обратной связью, например на Z-wave и новые enOcean. Модулей разных производителей на рынке полно.
    • 0
      Возможен. Тянет за собой кучу исполнительных устройств на радиоканале, проблемы с помехами, коллизиями, радиотенью, дальностью передачи…
      Лучше грамонтно сочетать и провода и беспроводное.
      • +1
        И всё же это тот случай, когда беспроводное лучше — тянуть провода через одну половину квартиры в ванну, а через вторую к входной двери не слишком удобно. Было бы здорово, если бы были маленькие блоки, способные получать данные от датчиков и передавать информацию — раз, управлять нагрузкой — два и связанные с контроллером по радиоканалу. Таким образом, продавая их можно получить дополнительную прибыль — раз, решается проблема с кучей кода для поддержки устройств других производителей, получилось бы законченное решение, работающее из коробки и готовое к установке (ну разве что ещё пультов не будет хватать) — три. И конечно четвёртый плюс — контроллер действительно можно будет спрятать и не тянуть к нему провода, что подразумевает либо неэстетичный поверхностный монтаж, либо дополнительное штробление стен, что можно позволить себе только при глобальном ремонте.
  • 0
    Насчет автономности, по идее же можно прикрутить рядом какойнибудь второй контроллер, который будет уже сценарии обрабатывать. Тот же малиновыйПИрог в коробочке… Все это в локалке и получается независимость управления вручную от автоматики… Единственное, как разруливать когда автоматика хочет включить свет, а я в этот момент принудительно вырубаю его…
    • 0
      Это не нужно. Вы весь тот же софт можете запустить и на нашей железке.
  • +1
    А с Ноолайтом как работаете? У них разве открытый протокол?
    • +1
      • 0
        Хакерьё. :-)
    • 0
      Про это отдельную статью напишем. Вообще код мы выложили, так что можно уже сейчас посмотреть, как там протокол устроен.
  • 0
    Вы предлагаете вести к каждому потребителю отдельную проводку? Как-то не очень оптимизированно
  • 0
    Заказал :)
  • 0
    В этом демо к Ninja Blocks вы через проводной Интернет подключались или через GSM? Я к тому, что нормально все это будет работать через GPRS?
    • 0
      Через проводной. Работать будет нормально, но денег может отъесть прилично из-за округления тарификации по сессиям. Так что надо с осторожностью выбирать тарифный план.
  • 0
    Простите за нубский вопрос. Вот у меня в доме не одна лампочка, а около 10 осветительных приборов. Розеток еще штук 20. Кранов около 15 штук (разводка в сан, тех.шкафу). Термометров понадобится тоже не 1, и не 2, а не меньше 5. Но на сколько я прочитал описние, релешек и управляемых каналов у вас там не так много. Как это все подлючить к вашему девайсу? Как это масштабировать?
    • 0
      Тянуть по паре отдельных проводов к каждой лампочке это пожалуй не лучшее решение :)
      Тут уж лучше:
      1. Использовать управление по радио каналу.
      2. Прокладывать по дому линию RS-485, к ней подключать модули расширения, диммеры и прочее.
      Модули расширения располагать уже непосредственно рядом с тем чем нужно управлять.
  • 0
    del
  • 0
    Подскажите, возможно ли будет подключить сигнал с домофонных видеокамер?
    • 0
      А у вас есть какое-нибудь описание интерфейса? Ну или хотя бы название модели этих домофонов?
      • 0
        Думаю, схема у всех домофонных видеокамер примерно одинаковая, основной вопрос здесь в том, что это аналоговая камера. Есть провод с сигналом и землей как в коаксиальном кабеле, ну а питание 12В не проблема. Вот пример камеры, установленной в блоке вызова БВД-403СРО
    • 0
      Интересно, а какая цель? Использовать Wiren Board как DVR? Если так, то у авторов надо в первую очередь интересоваться, хватит ли производительности системы на это (и что останется на «умные» функции).

      А если просто посмотреть в интернете, то для этой цели (конвертация аналога в цифру) существуют видеосерверы (которые стоят заметных денег, что как бы намекает на требования к железу).
      • 0
        Целей может быть множество: от записи фото на флешку пока никого нет дома, до дублирования вывода картинки (пусть даже фото) на планшеты, телевизоры и т.п. с возможностью управления электрическими замками (можно и домофону сигнал послать). Цели писать постоянно или при вызове видео и хранить его не преследую.

        Функция не основополагающая, и без неё можно прожить, но, согласитесь, с ней можно было бы намного больше сценариев реализовать. В любом случае, контроллер я уже заказал)
        • 0
          О, тогда понятно. Я, конечно, не специалист, но почему-то пока думаю, что перспективы такой интеграции туманны. В любом случае потребуется некий блок сопряжения (из аналога в цифру), которого у Wiren в базе нет.

          С другой стороны, сама по себе концепция неплохая, и возможно, выльется в какое-то отдельное приемлемое решение.
    • 0
      Хм, а чем тот же STK1160-донгл не угодил в этом плане? В Линуксе дрова для него есть, работает, захватывает картинку с аналогового входа более-менее нормально.
  • 0
    Возмжно вопрос не совсем в тему, но все же, а постить данные в тот же твитер с определенными интервалами возможно? Или только можно постить при определенных событиях?

    Просто например, возможно ли выводить температуру в твитер с интервалом в 15 минут?
    • +1
      можно написать скрипт на чём-нибудь, который это будет делать. Сейчас это делается подпиской на сообщения MQTT.
  • 0
    Хм, жаль что нельзя правило сделать в самом интерфейсе Ninja Blocks. А можно в ЛС подробнее про сообщения MQTT.
    • 0
      вот подробнее mosquitto.org/man/mqtt-7.html
      Применительно к устройству, посмотрите пожалуйста у нас на форуме — много обсуждалось.

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

Самое читаемое Разное