Всем привет!
Мы давно не писали на Хабр (который уже не тот), но в конце прошлого года выпустили новую версию Wiren Board — контроллера для автоматизации с открытым ПО, и сегодня расскажем о ней (под катом есть скидка!)
Зачем мы выпустили новую версию
Чтобы исправить то, что не нравилось пользователям и нам самим:
- увеличили вдвое количество оперативной памяти — с 64 до 128 Мбайт DDR2, расширив заодно диапазон рабочих температур до -25..+85°С
- заменили потенциально ненадёжную карту памяти microSD в качестве ПЗУ на встроенную память eMMC 4 Гбайт
- сделали контроллер модульным — вы можете добавлять функции, устанавливая платки расширения внутрь корпуса, а ещё увеличивать количество входов и выходов, подключая боковые модули
Также мы добавили несколько модных фишек:
- Bluetooth 4.0 (в том силе Low Energy)
- порт CAN
- инфракрасный порт
- S/PDIF (цифровой звук)
Про это (и про важные изменения в ПО) подробнее ниже.
Описание устройства
Если очень кратко, то Wiren Board 5 — устройство, которое работает как центральный контроллер в системе автоматизации или мониторинга.
Например в "умном доме" контроллер может управлеять освещением и климатикой, снимать показания с датчиков климата и охранных датчиков. Для этого контроллер может работать с разными внешними устройствами, может выполнять разные правила и сценарии, занимается сохранением и визуализацией данных.
В типовых задачах диспетчеризации и мониторинга контроллер выступает как продвинутое УСПД: собирает данные с различных устройств, например приборов учёта, хранит локальную историю, показывает мнемосхему для локального управления, отправляет данные наверх.
Контроллер построен на мощном процессоре, работает под управлением Linux, имеет множество встроенных проводных и беспроводных интерфейсов и портов для связи с внешними устройствами и внешним миром.
Естественно всё это industrial-grade: корпус на DIN-рейку, большой диапазон входного питания, широкий температурный диапазон, надёжная память, защита всех портов и т.д.
На картинках ниже видно, что есть в контроллере:
- Операционная система Debian Linux 7.0. Веб-интерфейс и ПО для автоматизации в комплекте.
- Процессор и память: 454 МГц ARM9, 128 Mбайт DDR2, 4 Гбайт eMMC
- Беспроводная связь:
- GSM/GPRS
- Wi-Fi
- Bluetooth 4
- радио 315/433 МГц (опция)
- Z-wave (опция)
- ИК-порт (внешний приемопередатчик)
- Порты:
- Ethernet 10/100
- USB 2.0
- RS-485 x 2
- CAN
- 1-wire
- Аудиовыход: S/PDIF Toslink или RCA.
- Входы/выходы (мультиплексированы):
- 4 входа АЦП
- 1 вход для резистивных датчиков
- 5 цифровых входов
- 4 выхода “открытый коллектор”
- 2 слота для модулей расширения:
- ADC, DAC, RS-232 и др.
- до 8 модулей ввода-вывода: реле, "сухие контакты" и др.
- Корпус: 103x87x20 мм, на DIN рейку
- Условия эксплуатации: -25..70°C, относительная влажность до 95% без конденсации влаги
- Watchdog, динамик, часы реального времени RTC
- Встроенный Li-Ion аккумулятор (опция)
Внутренние модули расширения
Модульность конструкции всегда имеет как плюсы (гибкость под конкретную задачу), так и минусы (увеличение стоимости). Но модульность очень сильно ускоряет процесс выпуска версий с небольшими изменениями. Производство контроллера даже с небольшими изменениями печатной платы — хлопотное дело на несколько месяцев. Совсем другое дело — установить маленькую платку внутрь корпуса.
В предыдущей версии контроллера был один слот для модуля расширения. В Wiren Board 5 модули устанавливаются внутри корпуса вертикально, поэтому нашлось место для двух модулей. На разъем для модулей выведены интерфейсы I2C, SPI, UART. Распиновка разъема близка к распиновке Raspberry Pi, что позволяет устанавливать некоторые шилды. Кроме того, под каждый модуль расширения отведено три клеммника: если, например, вы решите добавить порт RS-485, то вам не придётся тянуть провода шины к платке модуля внутри корпуса — вы сможете зажать их в обычные клеммники. Уже есть модули:
- RS-232
- CAN (Изолированный)
- RS-485 (Изолированный)
- АЦП — входы напряжения, входы 0-20мА, входы для датчиков PT100 и PT1000
- ЦАП — выходы 0-10В
- входы "сухой контакт"
- GPS/ГЛОНАСС
- разъём для microSD
Стыкующиеся модули ввода-вывода
Для любой проводной инсталляции контроллер должен иметь много вводов (входы выключателей, датчиков движения, открытия, сигнализации) и выводов (отдельное управление каждой светильником или исполнительным устройством). При этом нужный набор контактов сильно варьируется.
Раньше единственным нашим решением для этого были периферийные устройства, подключаемые по RS-485. Но с ними много хлопот — требуется отдельное физическое подключение, отдельное питание, в ПО нужно выставлять адрес устройства.
Поэтому мы сделали боковые модули ввода-вывода для Wiren Board 5, которые устанавливаются очень просто — стыкуются с контроллером на DIN-рейке- и сразу работают. Всего так можно подключить до 8 модулей: до 4 модулей ввода и до 4 модулей вывода. Если сборка не влезает в шкаф по ширине, можно использовать специальный шлейф для переноса модулей на следующую рейку.
Так как в модулях нет встроенной логики, они получаются заметно дешевле внешних RS-485 Modbus-устройств: например, дополнительные 8 релейных выходов сейчас стоят 2200 рублей.
Модули подключаются к процессору по шине I2C, а их сигналы обрабатываются драйвером в ядре Linux по прерыванию. Благодаря этому, задержка между, например, срабатыванием входа на модуле расширения и детектированием сигнала в ПО не превышает 1мс, что на два-три порядка быстрее чем при работе по Modbus.
Сейчас в наличии пять модулей:
- цифровые входы для подключения "сухих контактов" с групповой гальванической развязкой
- цифровые входы на напряжение 220В
- модуль релейных выходов (10А ~230B)
- модуль ввода-вывода с TTL-уровнями (5В, до 20мА) — фактически, дополнительные GPIO
- модуль дискретных выходов. Содержит 8 выходов типа "High Side Switch" — при включении канала на клемму подается напряжение Vin. Предназначен для управления реле, низковольтными моторами и т.д.
Инфракрасный порт
Многие бытовые устройства управляются пультами ДУ (например, для большинства бытовых кондиционеров это вообще единственный способ, кроме отключения питания). Мы добавили в Wiren Board 5 порт для внешнего выносного ИК-приёмника / передатчика.
К сожалению, готового приемопередатчика найти не удалось. Доступны по отдельности приемники и передатчики с разъемом jack 3.5 мм, но к счастью у них удачная распиновка — в один разъем можно подключать и тот, и другой.
Для удобства работы мы разработали свой приемопередатчик, с паразитным питанием микросхемы приёмника. С его помощью вы сможете получать сигналы с пультов (и использовать их в своих правилах — про них читайте ниже), а также сможете посылать сигналы на свою бытовую технику.
Софт
Программная составляющая контроллера тоже сильно улучшилась. Напомним, что на контролерах Wiren Board стоит операционная система Linux Debian, а всё специальное ПО нашей разработки открыто и доступно в репозитории Github для изучения.
Всё конфигурирование сейчас происходит через веб-интерфейс.
Ещё мы добавили драйверы для самых популярных счётчиков электроэнергии с интерфейсами RS-485 — Меркурий 230 и Милур 305, поддержку датчиков ИВТМ и разных других устройств. При их подключении (а также при подключении нашей периферии) достаточно лишь выбрать название устройства в списке и ввести его адрес:
Система правил
Много изменений внесено в движок правил (мы называем его wb-rules). Он позволяет пользователям писать сценарии на языке JavaScript. Выполнение правил привязывается или к времени (по расписанию), или к выполнению определённых условий (датчик температуры показал выше 25°C, сработал датчика движения и т.д.). Из правил можно управлять всеми выходами контроллера и модулей расширения (например, переключать реле), а также посылать команды по RS-485, посылать СМС или email уведомления.
Правила создаются целиком через веб-интерфейс контроллера.
Чтобы вам было проще разобраться с языком правил, мы постоянно пополняем раздел с примерами в документации, а некоторые пользователи делятся своими правилами на нашем форуме.
Модуль оповещений
Отдельный очень частый тип правил — просто отправка уведомления при какой-то нештатной ситуации. Чтобы не писать для этого специальное правило, мы сделали отдельным модуль Alarms, который настраивается очень просто: выбирается параметр, за которым нужно следить, условие срабатывания (например: выход значения датчика температуры за заданные пределы, срабатывание датчика движения), действие (отправка СМС или email), текст оповещения.
Как купить Wiren Board дешевле
Первыми покупателями первых версий Wiren Board были энтузиасты с Хабра. К сожалению, синхронно с развитием возможностей железа и ПО росла и цена, особенно в рублях.
Кажется, мы придумали, как снова пойти навстречу сообществу и, при этом, не разориться самим. Получилось что-то вроде групповых покупок: в ближайшее время мы запускаем в производство очередную партию, и если вы присоединитесь к ней (на условиях предзаказа), то мы дадим вам скидку. Для нас это получается как будто оптовый заказ, соответственно мы даём оптовую скидку и ещё немного сверху, итого 20%.
Чтобы поучаствовать в предзаказе, введите код WB5-APR16-HABR при покупке в нашем интернет-магазине.
Мы собираем предзаказы до 1 мая, устройства будут готовы не позже 15 июня. При этом запас контроллеров есть на складе прямо сейчас, но со склада они продаются без скидки.
Stay tuned
В ближайшее время в нашем блоге мы планируем подробнее рассказать про аппаратную часть Wiren Board 5, про новые периферийные устройства, показать, как пользоваться нашим ПО и т.д.
Ссылки:
Страничка Wiren Board 5 на сайте
Документация
Комьюнити
Будем рады комментариям!
Автор: Wiren Board