Привет!
Чуть больше недели назад мы открыли предзаказ на Wiren Board Smart Home — наш контроллер для домашней автоматизации. В предыдущей статье мы рассказали про железо, а в этой начнём показывать работу с разной периферией и уделим внимание софту. В этот раз показывать будем работу с реле, выходами открытый коллектор, термодатчиками 1-wire, а также работу по радио с беспроводными пультами и блоками управления освещением Noolite и датчиками.
Итак, для демонстрации работы мы собрали стенд:
На стенде, во-первых, закреплена 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.
Основная приборная панель системы:
Каждому устройству здесь соответствует свой виджет. Видны виджеты для управления релейными и транзисторными входами, виджет для управления устройствами Noolite, виджеты температуры и влажности с показаниями разных датчиков и т.д.
Веб-интерфейс Ninja Blocks позволяет создавать различные правила. Например, здесь создаётся правило, зажигающее зелёным светодиодную ленту, если температура термометра у лампочки ниже 32С:
У каждого датчика можно просмотреть историю изменения показаний или даже скачать её в машиночитаемом виде:
Для Ninja Blocks есть приложения для iPhone и Android для управления системой:
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