Wiren Board 5: снова на Хабре с новой версией контроллера для автоматизации

от автора

Всем привет!
Мы давно не писали на Хабр (который уже не тот), но в конце прошлого года выпустили новую версию 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 на сайте
Документация
Комьюнити

Будем рады комментариям!

ссылка на оригинал статьи https://geektimes.ru/post/274530/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *