Wiren board руководство

Это утверждённая версия страницы. Она же — наиболее свежая версия.

Контроллеры

Универсальные контроллеры автоматизации, работающие под управлением свободного программного обеспечения. Применяются в задачах мониторинга серверного и климатического оборудования, диспетчеризации и сбора данных с приборов учёта, в качестве основы для «умного дома» и автоматизации производств.

  • Wiren Board 7 — мощный универсальный контроллер для любых задач.
  • Модули расширения устанавливаются внутрь корпуса контроллера, совместимы с Wiren Board 6 и Wiren Board 7.
  • Модули ввода-вывода стыкуются к контроллеру Wiren Board справа через боковой разъём. Совместимы с Wiren Board 5, Wiren Board 6, Wiren Board 7.
  • Поддерживаемые устройства, протоколы и программы — устройства, протоколы и программы, с которыми может работать контроллер Wiren Board.
  • Ответы на часто задаваемые вопросы (FAQ) — сборник готовых решений и советов, полезные ссылки
  • Диагностика ошибок в работе контроллера Wiren Board — сборник советов по диагностике контроллера
  • Подключение и настройка устройств по RS-485

Счётчики электроэнергии и вольтметры

  • WB-MAP12E — многоканальный счетчик электроэнергии (измерение всплесков тока и напряжения)
  • WB-MAP6S — однофазный многоканальный счетчик электроэнергии
  • WB-MAP3E — трехфазный счетчик электроэнергии (измерение всплесков тока и напряжения)
  • WB-MAP3ET — трехфазный счетчик электроэнергии (измерение всплесков тока и напряжения) со встроенными трансформаторами
  • WB-MAP3EV — трехфазный вольтметр
  • WB-CT309 — сборка неразъемных трансформаторов для счетчиков MAP

Релейные модули

О выборе модуля реле читайте в статье Рекомендации по выбору реле для нагрузки.

  • WB-MR3LV/K(I), WB-MR6LV/K(I) — 3- и 6-канальные модули реле общего назначения с переключаемой группой контактов
  • WB-MR3LV/S, WB-MR6LV/S — очень мощные 3- и 6-канальные модули реле с нормально открытыми контактами
  • WB-MRPS6 — мощный 6-канальный модуль реле без входов
  • WB-MRWL3 — очень мощный 3-канальный модуль реле
  • WB-MR6C v.2 — модуль реле 6-канальный
  • WB-MR6C v.3 — модуль реле 6-канальный со встроенным блоком питания
  • WB-MR6C/NC — модуль реле 6-канальный c нормально-замкнутыми контактами
  • WB-MR6CU v.2 — компактный модуль реле 6-канальный
  • WB-MRM2-mini v.2 — компактный 2-канальный модуль реле
  • WB-MRWM2 — мощный 2-канальный модуль реле с измерением мощности

Датчики

  • WB-MS v.2 — универсальный датчик температуры, влажности, освещённости, качества воздуха
  • WB-MSW v.3 — датчик климата и CO2 в настенном исполнении v.3
  • WB-MSW v.3 Zigbee — датчик климата и CO2 в настенном исполнении с Zigbee
  • WB-MSW v.3 LoRa — датчик климата и CO2 в настенном исполнении с LoRa
  • WB-MAI6 — универсальный модуль аналоговых входов
  • WB-MSW v.4 — датчик климата и CO2 в настенном исполнении v.4

Диммеры

  • WB-LED — четырёхканальный диммер светодиодных лент с защитой по току и четырьмя входами
  • WB-AMPLED — четырёхканальный усилитель для светодиодных лент
  • WB-MDM3 — трёхканальный диммер светодиодных ламп и ламп накаливания 230 В

Преобразователи интерфейсов

  • WB-USB485 — преобразователь интерфейса USB-RS485
  • WB-MIO — преобразователь интерфейса I2C (WBIO) в RS-485 с поддержкой Modbus RTU
  • WB-MIO-E v.2 — преобразователь интерфейса I2C (WBIO) в RS-485 с поддержкой Modbus RTU и RS-485 (Modbus) в Ethernet с поддержкой Modbus RTU over TCP и Modbus TCP
  • WB-MGE v.2 — преобразователь интерфейса RS-485 (Modbus) в Ethernet с поддержкой Modbus RTU over TCP и Modbus TCP

Сетевые карты для контроллеров холодильного оборудования

  • WB-REF-U — сетевая карта для контроллеров Carel BASIC, EASY, μRack, μC2SE, µC2, µGEO и Eliwell ID/ID PLUS
  • WB-REF-DF-178A — сетевая карта для контроллеров Danfoss EKC 202/EKC 210
  • WB-REF-DF-ERC21— сетевая карта для контроллеров Danfoss ERC 211/ERC 213/ERC 214

Разное

  • WB-MAO4 — модуль аналоговых выходов 0-10В 4-канальный
  • WB-UPS v.2 — модуль бесперебойного питания на литий-полимерных аккумуляторах
  • WB-MCM8 — модуль дискретных и счётных входов 8-канальный
  • WB-MIR v.2 — устройство ИК-управления
  • WB-M1W2 — преобразователь для термометров 1-Wire
  • WB-MAI2-mini/CC — модуль измерения токового сигнала
  • WB-MWAC — модуль для учета водопотребления и контроля протечек
  • WB-DEMO-KIT v.3 — «Демо-чемодан»: набор интегратора, для демонстрации заказчику или самостоятельного быстрого освоения устройств Wiren Board
  • Демонстрационный стенд — пример сборки демонстрационного стенда с оборудованием Wiren Board. Можно посмотреть в нашем офисе.

Снятые с производства устройства

  • WBIO-AO-10V-8 — модуль аналоговых выходов 0-10 В.
  • Wiren Board 6 — универсальный контроллер для типовых задач.
  • WB-MAI11 — модуль аналоговых входов. Замена: WB-MAI6.
  • WB-REF-U-CR — сетевая карта для контроллеров Carel BASIC(PYEZ)/EASY(PJEZ). Рекомендуемая замена — WB-REF-U.
  • WB-MRGBW-D — четырёхканальный диммер светодиодных лент, аналог — WB-LED
  • WB-DEMO-KIT v.2 — демонстрационный комплект оборудования, версия 2
  • WB-DEMO-KIT v.1 — демонстрационный комплект оборудования, версия 1
  • WB-UPS — модуль бесперебойного питания на литий-полимерных аккумуляторах
  • WB-MR3HV, WB-MR6HV — мощные 3- и 6-канальные модули реле
  • WB-MIO-E v.1 — устройство заменено WB-MIO-E v.2
  • WB-MGE v.1 — устройство заменено WB-MGE v.2
  • WBC-2G v.1 — модуль заменён WBC-2G v.2
  • WBC-3G — модуль заменён WBC-4G
  • WB-MR6C v.1 — заменён версией WB-MR6C v.2
  • WB-MSW2 — датчик климата и CO2 в настенном исполнении v.2
  • WB-MSGR — электрохимические датчики газа WB-MSGR с встроенным реле
  • WB-MDM2 — двухканальный диммер светодиодных ламп и ламп накаливания 230 В
  • WB-MCM16 — модуль счетных входов 16-канальный
  • WB-MRGB — диммер светодиодных лент
  • WB-MRGB-D — диммер светодиодных лент (на дин-рейку)
  • WB-MSW — универсальный датчик температуры, влажности, освещённости, шума в настенном исполнении v.1
  • WB-MIR v1 — устройство ИК-управления
  • WB-MAP12H — многоканальный счетчик электроэнергии (измерение гармонических составляющих тока и напряжения)
  • WB-MAP3H — трехфазный счетчик электроэнергии (измерение гармонических составляющих тока и напряжения)
  • WB-MR6F — модуль реле для ступенчатого управления двумя вентиляторами
  • WB-MR11 — модуль реле 11-канальный
  • WB-MR14 — модуль реле 14-канальный
  • WB-MRM2 — модуль реле 2-канальный
  • WBE2S-R-433MHZ — модуль расширения 433 MHz. Доступен по запросу
  • WB_AC_rev._E2.0 — автономный/сетевой IP-контроллер доступа со встроенным считывателем карт Mifare
  • WB-MGW — преобразователь интерфейсов WB-MGW Wi-Fi — RS-485 предназначен для создания моста между сетями Wi-Fi и RS-485
  • Wiren Board NETMON-2 — контроллер для автоматизации и мониторинга в 19″ стойку. Состоит из Wiren Board 5 + модуль реле + модуль для «сухих контактов» + модуль резервного питания в корпусе под 19″ стойку
  • Wiren Board NETMON-1 — контроллер в 19″ стойку. Программное обеспечение практически полностью совпадает с таковым у Wiren Board 5. Устройства отличаются набором портов и аппаратными характеристиками
  • Wiren Board 5 — предыдущая модель контроллера
  • Wiren Board 4 — устаревшая версия контроллера
  • Wiren Board Smart Home rev. 3.5 — устаревшая версия контроллера
  • Wiren Board rev. 2.8 — устаревшая версия контроллера

Содержание

  1. Распаковка Wirenboard
  2. Первое включение Wirenboard
  3. Настройка WBIO
  4. Настройка модулей Modbus
  5. Работа с терминалом
  6. Время и часовой пояс
  7. Настройка Wi-Fi на Wirenboard
  8. Обновление прошивок устройств
  9. Пароль на вход в интерфейс Wirenboard
  10. Виджеты и панели управления

Я достаточно много пишу про проектирование систем Умный Дом на оборудовании Wirenboard, выбор и подключение модулей, а про настройку ещё ни разу не писал. Эта статья — небольшое руководство на тему первого включения оборудования и базовой настройки.

Начинаем, как водится, с коробки, в которой приезжает оборудование.

Умный Дом Wirenboard - инструкция по первой настройке

У меня есть следующие модули Wirenboard:

Умный Дом Wirenboard - инструкция по первой настройке

  • Контроллер Wirenboard ревизии 6.6 (в сентябре 2020 вышла новая ревизия 6.7 с некоторыми аппаратными изменениями)
  • WBIO-DI-WD-14 — 14 дискретных входов для подключения датчиков разного типа и выключателей
  • WBIO-DO-R10-4 — подключение 4-х электрокарнизов и прочих моторов.
  • WBIO-DO-R10-8 — модуль 8 реле, до 7А каждое, без больших пусковых токов. Подходит для подключения приводов водяного отопления, сигнальных ламп, катушек контакторов
  • WB-MR6C v.2 — управление 6 группами освещения или электроприводами. 6 нормально-разомкнутых выходов реле, но входами они объединены в две группы
  • WB-MRGBW-D — модуль управления четырьмя каналами светодиодной ленты, ток до 5 ампер на канал. Это может быть одни RGB лента или 4 одноцветные ленты или RGB + одноцветная
  • WB-MAP6S — модуль измерения мощности по 6 каналам
  • Универсальный датчик WB-MSW v.3: температура, влажность, освещенность, СО2, ИК-передатчик, движение, уровень звука, VOC (органические загрязнения в воздухе)
  • Датчик WB-MS: температура, влажность и подключение сенсоров 1-wire
  • Датчик температуры 1-wire выносной. Подключается к WB-MS или к самому контроллеру
  • Блок питания 12 вольт 0.88 ампера
  • Токоизмерительный трансформатор (на фото снизу слева)

Я писал обо всех этих модулях и о том, в каких случаях они используются, в этой статье.

Комплектация у всех устройств простая, почти везде это только само устройство. Ссылка на полную инструкцию написана на модуле. Это правильно, так как инструкция большая, к тому же, может дорабатываться, печатать её и складывать, чтобы поместилась в каждую коробочку, нет смысла. К контроллеру Wirenboard в комплекте идёт маленькая клеммная отвёртка (всегда очень уместно, у меня коллекция таких из разных устройств). Только в комплекте с модулей измерения мощности инструкция по установке токоизмерительных трансформаторов — тоже правильно, там есть определённые тонкости, на которые важно обращать внимание при подключении.

Модули, название которых начинается с WBIO, подключаются к контроллеру по шине i2c, они пристыковываются к контроллеру справа. На контроллере и всех модулях такого типа слева штекеры, а справа отверстия для соединения.

Умный Дом Wirenboard - инструкция по первой настройке

Сразу соединяю между собой контроллер и модули WBIO.

Умный Дом Wirenboard - инструкция по первой настройке

Остальные модули подключаются к контроллеру по шине modbus RS-485, вот они, пока не подключенные:

Умный Дом Wirenboard - инструкция по первой настройке

Первое включение Wirenboard

Подключаем контроллер Wirenboard с подключенными к нему модулями к роутеру кабелем, через блок питания подключаю питание 12 вольт. В контроллере Wirenboard 6.6 и предыдущих на левом торце есть разъём для подключения блока питания. Начиная с Wirenboard 6.7 этот разъём убрали, так как при установке в щите он обычно не используется, питание подключается через клеммник сверху слева на контроллере.

Контроллер по умолчанию получает IP адрес по DHCP, надо выяснить, какой адрес ему присвоился. Проще всего это сделать, посмотрев список подключенных устройств в web-интерфейсе роутера. Сразу вижу устройство с адресом 192.168.1.8.

Умный Дом Wirenboard - инструкция по первой настройке

Далее набираем этот адрес в браузере и попадаю в web интерфейс контроллера.

Умный Дом Wirenboard - инструкция по первой настройке

Это главная страница (Home), на неё мы впоследствии выведем основные элементы управления, которые называются виджеты. Также виджеты добавляются вручную на панели управления (Dashboards) и в комнаты (Rooms). Про виджеты и их распределение по разным страницам поговорим позднее.

Сразу перейдём на вкладку Devices и посмотрим доступные параметры устройств:

Умный Дом Wirenboard - инструкция по первой настройке

Видим температуру процессора и платы контроллера, напряжение питания, IP адреса разных интерфейсов, встроенные в контроллер выходы. A1, A2, A3, A4 — это четыре клеммы на на контроллере, они могут быть выходами (дискретными) или входами (дискретными или аналоговыми).

Vout — питание для шины modbus, 5v out — 5-вольтовый выход для датчиков 1-wire. То есть, с интерфейса контроллера мы можем перезагружать все подключенные по modbus устройства, а также отключать их питание при необходимости. Надо помнить, что максимальный ток выхода Vout — 1 ампер, для питания всех устройств этого может быть недостаточно. Мощность потребления каждого модуля можно найти в документации, ток потребления — это мощность, поделённая на напряжение питания. В контроллере Wirenboard 6.7 два выхода Vout, удобно для раздельного подключения питания двух шин modbus и раздельного питания, например, модулей в щите и шины датчиков.

К контроллеру я сразу подключил датчик температуры 1-wire, в интерфейсе отобразился его номер и температура (25,562 градуса).

Как всегда при начале работы с устройством хочется обновить его прошивку. В случае каких-то проблем первое, что спросит техподдержка, это последняя ли у меня версия прошивки. Способы обновления прошивки и ссылки для скачивания последней версии на странице Обновление прошивки. Вот ссылка на файлы прошивок: http://fw-releases.wirenboard.com/?prefix=fit_image/stable/

Файл прошивки весит примерно 175 мегабайт. Обновление простое: в разделе Settings нажимаем на кнопку Firmware Update и выбираем скачанный на компьютер файл прошивки. Обновление прошивки заняло 5 минут, ещё пару минут перезагрузка контроллера.

Умный Дом Wirenboard - инструкция по первой настройке

В правом верхнем углу интерфейса надпись Connected или Disconnected показывает, есть ли связь с контроллером в настоящий момент. На время перезагрузки контроллера он отключен.

Настройка WBIO

Далее переходим к настройке подключенных модулей по шине i2c. В меню выбираем Config — Hardware Modules Configuration.

Умный Дом Wirenboard - инструкция по первой настройке

Internal Slot — три слота для установки модулей внутрь самого контроллера.

External I/O Modules — 8 слотов для модулей вода-вывода, которые пристыковываются к контроллеру.

RS485 — настройка двух портов RS485. Их можно отключить, второй порт можно сделать CAN.

W1 и W2 — либо подключение 1-wire датчиков, либо дискретные входы.

Mezzanine board — модули аккумуляторов.

В каждом пункте выпадающее меню, из которого выбираем подключенные у нас модули. Не забываем нажать сверху на кнопку Save.

Для модулей 1, 2 и 3 я выбрал подключенные у меня три модуля: 14 дискретных входов, 8 релейных выходов и 4 шторы. После сохранения переходим в пункт Devices.

В разделе Discrete I/O появилось множество новых элементов:

Умный Дом Wirenboard - инструкция по первой настройке

Элементы с EXT1_IN1 по EXT1_IN14 — это дискретные входы модуля WBIO-DI-WD-14. EXT2 — это 8 реле модуля WBIO-DO-R10-8. EXT3 — это модуль управления шторами WBIO-DO-R10-4.

На каждом выходе модуля штор два реле — одно (DIR) отвечает за направление движения привода, второе (ON) отвечает за подачу питания на вход реле DIR. То есть, питание подаётся либо для вращения привода в одну сторону, либо в другую, либо вообще не подаётся. Это сделано для того, чтобы избежать подачи питания на оба выходных контакта одновременно, это может сломать электропривод.

При замыкании входа модуля WBIO-DI-WD-14 на клемму iGND напротив соответствующего входа появляется галочка. Выходами можно управлять из интерфейса.

Настройка модулей Modbus

Модули, подключаемые по modbus, настраиваются в пункте меню Configs — Serial Device Driver Configuration.

У каждого модуля на шине modbus есть свой адрес. Это цифра от 1 до 247. На каждом модуле написан адрес, записанный в него производителем. У датчика WB-MSW на фото ниже видно номер 117.

Умный Дом Wirenboard - инструкция по первой настройке

Выбираем порт RS485-1, на который я подключил модули, нажимаем кнопку + Serial Device, выбираем в выпадающем списке модель датчика, вводим его номер 117. Устройство добавлено.

Умный Дом Wirenboard - инструкция по первой настройке

Можно нажать кнопку Properties и включить дополнительные поля Enable Device и Device Name.

Устройства, которые есть в списке доступных — это те, драйверы которых присутствуют в прошивке. Кроме модулей Wirenboard в списке есть счётчики Меркурий, Пульсал, некоторые модули Разумдом. Подключать устройства, драйверы которых отсутствуют в списке, тоже можно, у Wirenboard есть инструкция по самостоятельному написанию драйверов устройств, управляемых по modbus.

Таким же образом я добавил модуль реле WB-MR6C v.2 и модуль управления светодиодной лентой WB-MRGBW.

Порядок подключения модулей на шину и порядок добавления их в контроллер совершенно не важны.

Переходим в пункт меню Devices и видим, что добавленные модули там появились:

Умный Дом Wirenboard - инструкция по первой настройке

Датчик WB-MSW отображает температуру воздуха, уровень CO2, влажность, VOC, уровень звука, освещенность, уровень движения. Можно включать и выключать красную или зелёную подсветку движения или зуммер.

При первом включении датчик СО2 показал мне страшные значения 2500-3500 ppm, что крайне много. Но в инструкции написано, что датчику нужно дать некоторое время на калибровку, пару дней. Действительно, примерно через двое суток датчик стал более-менее стабильно показывать уровень СО2 в комнате с закрытым окном 750-850ppm, с открытым окном 450-600ppm.

Для модуля реле кроме индикации входа есть счётчик срабатываний каждого входа.

В настройках модулей реле есть ползунок Safety timer. На нём выставляется время в секундах, при отсутствии связи между модулем реле и контроллером по шине modbus в течение которого модуль переходит в аварийный режим и отключает все выходы. Но если связь с контроллером на это время пропадёт и выходы выключатся, то при появлении связи они в положение в момент отключения не вернутся. Если выставить значение 0, то таймер работать не будет.

Работа с терминалом

Поскольку контроллер Wirenboard представляет собой компьютер на linux (Debian), многие задачи, возникающие при работе с ним, решаются через терминал по SSH.

Самая распространённая программа для работы с терминалом — PyTTY. Это маленькая и бесплатная программа, скачать её можно по этой ссылке.

Запускаем putty, открывается маленькое окно. В принципе, нам там ничего не нужно, кроме первой вкладки. Вводим в поле IP адрес контроллера, порт (22) и тип подключения (SSH) не меняем, нажимаем Open.

Умный Дом Wirenboard - инструкция по первой настройке

В открывшемся окне вводим логин root и пароль wirenboard.

Если всё верно, видим такое окно:

Умный Дом Wirenboard - инструкция по первой настройке

Сделаем несколько важных настроек, которые могут быть сделаны только через терминал.

Время и часовой пояс

Вводим в терминал команду timedatectl, чтобы посмотреть текущие настройки времени.

Умный Дом Wirenboard - инструкция по первой настройке

Видим, что текущее время выставлено верно (контроллер синхронизируется с сервером точного времени), но неверный часовой пояс: сейчас это UTC +0, то есть, время по Гринвичу. Для Москвы и Петербурга должно быть UTС + 3.

Набираем команду timedatectl set-timezone Europe/Moscow

Терминал никак на команду не отвечает. Но мы набираем для проверки timedatectl и получаем ответ, что теперь часовой пояс MSK +3. Есть ещё более короткая команда для отображения текущего времени и часового пояса date

Чтобы получить список всей часовых поясов, набираем команду timedatectl list-timezones

Для проверки работы сервиса синхронизации времени ntp набираем systemctl status ntp

Увидим состояние сервиса, работает ли он. Команда ntpq -p даст информацию о том, какие серверы времени используются.

Вообще, ответы на многие вопросы по работе операционной системы контроллера стоит искать не по запросу «как сделать что-то в Wirenboard» а «как сделать что-то в Debian». Это касается, в частности, настройки времени.

Настройка Wi-Fi на Wirenboard

Если ваш контроллер Wirenboard имеет Wi-Fi модуль (это определяется по наличию антенны, выбирается при заказе контроллера), то контроллер может работать в режиме точки доступа (чтобы подключаться к нему), клиента (чтобы он сам подключался по Wi-Fi к основному роутеру) и сразу в обоих режимах.

В режиме, при котором контроллер ловит Wi-Fi от основного роутера с интернетом, а вы со своего устройства подключены к контроллеру, работать связь будет небыстро, лучше избегать такого и подключать контроллер кабелем к роутеру.

Подробно про настройку Wi-Fi написано на этой странице. Надо только добавить, что для редактирования файлов надо в программе putty написать команду mcedit и путь к файлу. В частности, так:

mcedit /etc/network/interfaces

Далее по инструкции вносим в файл необходимые изменения, нажимаем в нижней строке на кнопку Save, затем в нижнем правом углу на Quit.

Умный Дом Wirenboard - инструкция по первой настройке

После настройки контроллера в качестве Wi-Fi клиента в списке подключенных к роутеру устройств появился ещё один контроллер Wirenboard с другим IP адресом.

Обновление прошивок устройств

Обновление прошивки требуется не только для контроллера, но и для подключаемых по rs485 устройств. Для этого надо установить на контроллер утилиту для обновления прошивок командой

dpkg -s wb-mcu-fw-updater || (apt update && apt install wb-mcu-fw-updater)

Затем вводим команды обновления устройств

wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a117

Умный Дом Wirenboard - инструкция по первой настройке

В конце команды адрес устройства. Перед ним номер порта RS485. На скриншоте видно, что модули с адресами 117 и 69 обновились, модуль 177 обновления не потребовал.

Подробнее про обновление прошивок устройств можно почитать здесь.

Пароль на вход в интерфейс Wirenboard

Разумеется, web интерфейс имеет смысл закрыть логином и паролем от несанкционированного доступа. По умолчанию вход в интерфейс свободный без какой-либо авторизации.

Подробная инструкция по тому, как это сделать, здесь: Защита паролем.

Виджеты и панели управления

В меню Devices мы видим все доступные в системе элементы управления и индикаторы со всех подключенных модулей. Чтобы удобно ими управлять, можно создавать виджеты с нужными индикаторами и кнопками, а потом размещать их на панелях управления.

Для начала заходим в Rooms и создаём комнаты, чтобы удобнее было видеть элементы, так как при создании виджетов надо будет сразу выбирать комнаты. Помимо физических комнат (гостиная, спальня и т.д.) удобно сразу делать какие-то служебные комнаты с элементами, которых не надо видеть постоянно, например, контроль протечки, измерение мощности и прочее.

Далее создаём виджеты. Заходим в пункт меню Widgets. Нажимаем Add Widget для добавления виджета.

Умный Дом Wirenboard - инструкция по первой настройке

Пишем название для виджета, выбираем комнату, в которой размещён при настройке элемент, в качестве Template выбираем тип датчика. Я искал датчик СО2, для появления его в списке надо было в качестве template выбрать Generic Sensor.

Умный Дом Wirenboard - инструкция по первой настройке

Создаём виджеты со всеми необходимыми нам элементами. При выборе элемента (пункт Sensor Value) следите за адресом устройства, параметр которого добавляется, чтобы не путать устройства.

Далее настраиваем панели управления — Dashboards. Создаём панели и добавляем на каждую нужные виджеты. Виджеты добавляются в окне редактирования дашборда нажатием иконки с карандашом в квадрате справа от названия дашборда.

Умный Дом Wirenboard - инструкция по первой настройке

Вот редактирование виджетов в дашборде:

Умный Дом Wirenboard - инструкция по первой настройке

Вот дашборд с кнопками управления реле и светодиодной лентой:

Умный Дом Wirenboard - инструкция по первой настройке

Таким образом, мы можем все элементы управления и индикаторы распределять максимально удобно. В пункте меню Settings можно выбрать, какой дашборд будет на вкладке Home, которая отображается при входе в web интерфейс контроллера.

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

 141,221 просмотров всего,  154 просмотров сегодня

Сразу хочу предупредить, что статья не является технической и не несет в себе конфигураций и инструкций по настройке оборудования. Статья является ознакомительной и предназначена исключительно для знакомства с оборудованием от компании Wiren Board. Данный материал будет полезен для людей, которые боятся решений с использованием открытого ПО и подумывают над надежными и проверенными решениями.

Wiren Board — это целая экосистема проводных и беспроводных устройств, основой которой является контроллер на базе ОС Linux, оснащенный достаточно большим количеством всевозможных интерфейсов для подключения периферии умного дома. Основным преимуществом данного контроллера является высокая отказоустойчивость, резервируемость и возможность монтажа в электрощит на DIN рейку.

Выбор контроллера: отличие WB6 от WB7 

На текущий момент актуальны две версии контроллера — это Wiren Board 6 и Wiren Board 7. Отличием обновленной версии, является увеличенный объем памяти и более производительный процессор. В остальном устройства похожи, так как имеют на борту одинаковый набор интерфейсов. 

Wiren Board 6

Wiren Board 7

Интерфейсы контроллера

Основной перечень интерфейсов, которыми оснащен контроллер Wiren Board 7. Но нужно понимать. это не конечный список интерфейсов, так как у системы есть возможность расширения за счет встраиваемых модулей, но об этом я расскажу чуть позже.

Интерфейсы контроллера Wiren Board 7

  • 1 × слот для карты памяти MicroSD, до 25 Мбайт/с
  • 2 × Ethernet 10/100
  • 1 × USB Host
  • Wi-Fi 802.11n (AP, client)
  • Bluetooth 4.0
  • 2 × RS-485
  • 1 × CAN, мультиплексирован с одним из RS-485
  • 2 × 1-Wire/дискретные входы
  • 3 × дискретные/аналоговые входы/выходы «открытый коллектор»
  • 1 × дискретный вход/выход «открытый коллектор»

Дополнительно, можно расширить поддержку различных протоколов за счет модулей расширения:

  • NBIoT / 4G (LTE). Модемы на две SIM-карты формата nano SIM
  • Z-Wave и Zigbee

Поддерживаемые протоколы

  • Modbus RTU — большой ассортимент устройств: реле, диммеры, модули ввода-вывода
  • Somfy, WINDECO, DOOYA, AKKO — возможность работы с электро-карнизами и шторами на базе этих протоколов
  • ГОСТ МЭК 61107, DLMS/COSEM, СПОДЭС (ГОСТ Р 58940-2020), Меркурий, Милур — подключение различных счётчиков электроэнергии
  • Пульсар, ИВТМ — подключение различных датчиков и счётчиков воды, а также счетчиков тепловой энергии
  • 1-Wire — шина для подключения датчиков, например датчика температуры DS18B20
  • Wi-Fi, Bluetooth — общие протоколы связи, через которые также можно подключать различные датчики, шлюзы и другие устройства
  • Modbus TCP, MQTT, SNMP, Zabbix API — позволяет обмениваться данными с другими контроллерами, а также с различными серверами и SCADA системами
  • Danfoss / Carel — позволяет подключать холодильные контроллеры Danfoss EKC 202B/D, Danfoss ERC 21x, Carel BASIC/EASY

Дополнительно, с помощью модулей расширения можно подключать:

  • KNX — позволяет включить контроллер в уже существующие системы на базе протокола KNX
  • OpenTherm и eBUS — позволяет управлять электрическими и газовыми котлами
  • Z-Wave, Zigbee — позволяет подключать довольно широкий ассортимент датчиков и исполнительных устройств на базе этих беспроводных протоколов

Дополнительные модули Wiren Board

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

  • Стыкуемые на DIN-рейке, каскадным способом модули ввода-вывода, которые работают через протокол I2C, что позволяет максимально подключить до 8 дополнительных модулей. Это позволяет не использовать проводное подключение, так как стык осуществляется через уже встроенные в контроллеры коннекторы
  • Модули расширения, устанавливаемые внутрь контроллера. Всего доукомплектовать контроллер можно тремя такими модулями. К ним, например относятся Zigbee, Z-Wave, 4G(LTE), Openterm модули. 
  • Кроме этого, для обеспечения резервирования электропитания, систему можно дополнить источниками бесперебойного питания, как внутреннего, так и внешнего исполнения.

Давайте немного подробнее поговорим о модулях расширения — узнаем, какие они бывают и рассмотрим, на мой взгляд, самые популярные из них. 

Стыкуемые на DIN-рейке модули расширения

WBIO-DI-WD-14

WBIO-DO-R1G-16

WBIO-DO-R10R-4

  • WBIO-DI-WD-14 — Модуль предназначен для подключения импульсных счетчиков для дальнейшей обработки данных на уровне контроллера. Также, модуль позволяет подключать к нему различные кнопки или сделать обычные выключатели немного «умнее». Например, если подключить обычный датчик открытия двери, то он станет умнее и мы сможем увидеть его состояние в системе. Подойдут любые устройства, которые работают по принципу «сухой контакт», то есть размыкаются и замыкаются. Всего возможно подключить до 14 устройств типа «сухой контакт».
  • WBIO-DO-R1G-16 — Релейный модуль для коммутации маломощной нагрузки, что позволяет управлять контакторами, сигнальными лампами и другими не очень мощными устройствами. Плюсом данного реле, является возможность коммутировать до 16 каналов в столь маленьком корпусе.
  • WBIO-DO-R10R-4 — Еще один релейный модуль, который предназначен для управления электроприводами штор, роллетами или запорными кранами.

Модули расширения, устанавливаемые внутрь контроллера

Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH

WBE2R-R-ZWAVE-ZWAY

WBE2-I-OPENTHERM

  • Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH — Обеспечивает возможность подключить беспроводные устройства, работающие через протокол ZigBee. Это позволяет использовать его совместно с дополнительно установленным на контроллер ПО Sprut.hub и полноценно управлять различными ZigBee устройствами из большого перечня поддерживаемых устройств.
  • WBE2R-R-ZWAVE-ZWAY — Еще один беспроводной модуль, который позволяет подключать уже беспроводные устройства Z-Wave, правда на этот раз уже к системе WirenBoard. Для добавления Z-wave устройств в Sprut.hub данный модуль не подойдет.
  • WBE2-I-OPENTHERM — Модуль управления электрическими и газовыми котлами по протоколу OpenTherm, также несовместим со Sprut.hub.

Перечень поддерживаемых ZigBee устройств через Sprut.hub можно увидеть в нашем каталоге.

Оборудование

Помимо встраиваемых модулей расширения, у компании Wiren Borad в своем арсенале имеется достаточно большое количество устройств, большая часть из которых работает через протокол RS-485, Modbus RTU, что делает подключение гибким и достаточно надежным. Подключение является проводным, так что к каждому модулю можно протянуть кабель и разместить его как в одном большом электрощите, так и в дополнительных точках, чтобы гармонично распределить линии подключения. Я постараюсь описать наиболее на мой взгляд популярные модули, чтобы было примерно понятно о каких возможностях системы идет речь.

Релейные модули

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

  • Включение/выключение освещения. Удобно, если вы хотите коммутировать сразу группу ламп, это позволяет удешевить процесс автоматизации и не использовать дорогостоящие умные лампы. 
  • Разрыв питания электрической цепи. Можно использовать абсолютно любые «глупые» розетки, подходящие под ваш дизайн, и размыкать силовую цепь, идущую к этой розетке или группе розеток.
  • Управление электроприводами штор, кранов, а также всевозможными электрозаслонками. 
  • Автоматизация котла. Практически все котлы имеют контакты для подключения внешнего термостата в режиме «сухой контакт». При помощи этих контактов и реле Wirenboard можно осуществлять управление котлом в режиме «вкл/выкл», что в совокупности с датчиком температуры, позволит обеспечить классическое управление климатом в доме.
  • Также можно использовать реле в качестве дверного звонка или управлять гаражными воротами, также размыкая и замыкая сухой контакт. У большинства моторов для ворот, как сдвижных, так и распашных, есть контакты для ручного управления с помощью кнопки. Это позволяет управлять воротами путем замыкания этих контактов и открывать, останавливать или закрывать ворота удаленно. А если добавить в систему один или два датчика открытия, то можно получать конечные состояния ворот и обеспечивать полноценное управление ими с помощью сценариев с «обратной связью».
  • Так как реле может управлять розетками, то с его помощью можно включать или перезагружать различные приборы (роутеры, точки доступа и др). Бывают случаи, когда необходимо удаленно перезагрузить какой-либо узел сети или устройство. При этом можно настроить автоматическое включение по таймеру, что например в случае отключения основного роутера, позволит его включить обратно в автоматическом режиме.

Так как реле — это одна из важных составляющих «Умного дома», в Wiren Board уделили этому типу устройств достаточное внимание, выпустив модули на все случаи жизни.

При этом необходимо обратить внимание, что релейных модулей несколько и все они, отвечают за разные задачи. Некоторые реле управляют силовыми агрегатами, некоторые  — предназначены для управления слаботочными контактами или вывода индикации. Также существуют реле с возможностью подключения физического выключателя, что делает законченное и максимально отказоустойчивое устройство по управлению освещением, которое может работать даже если контроллер недоступен.

Из обновок: устройства с возможностью подключения физических выключателей получили возможность использовать в своих сценариях разные типы нажатий на уровне самого устройства. Короткое, двойное, долгое. Например, при двойном нажатии можно отключать один из входов.

WB-MR6C

WB-MR6-LV

WB-MRM2-mini

WB-MRWL3

  • WB-MR6C — Предназначен для прямого управления освещением с номинальной нагрузкой до 10А (2 кВт). К нему можно подключать обычные выключатели для прямого управления светом.
  • WB-MR6-LV — Модуль реле с большими пусковыми токами, для управления мощным освещением до 16А. Предназначен для систем промышленной и домашней автоматизации. В модуле предусмотрен вход, одновременно отключающий всю нагрузку.
  • WB-MRM2-mini — Компактный релейный модуль, который можно установить в подрозетник.
  • WB-MRWL3 — Еще один важный релейный модуль, который предназначен для коммутации мощной силовой нагрузки общего назначения и отлично подойдет для управления например группами розеток. 

Это далеко не все релейные модули от компании Wiren Board. Я привел только основные и часто применяемые из них, среди интеграторов умных домов. 

Электросчетчики

Следующий тип устройств, на котором мы остановимся подробнее — это электросчётчики, так как в паре с релейными модулями у них часто бывают совместные кейсы. Применять электросчетчики можно не только для снятия показаний электрической сети или анализа ежемесячных расходов электроэнергии, но и для анализа потребления бытовыми приборами. Зачем нам это нужно? Очень часто при построении домашней автоматизации возникает потребность получить «уведомление» о завершении какого-либо процесса. Например, кипячение воды в электрочайнике, или окончание процесса стирки или мойки посуды. Модули позволяют отслеживать нагрузки в цепи и на основании их показаний можно отправлять уведомления или отключать питание, так как например стиральная машина закончила свою работу.

WB-MAP12E

WB-MAP3E

WB-MAP3EV

  • WB-MAP12E — Предназначен для технического учёта электроэнергии в многоквартирных домах и офисных зданиях. Предназначен для работы в одно- или трехфазных сетях переменного тока.
  • WB-MAP3E — Предназначен для мониторинга качества электропитания. Может быть использован в многоквартирных домах, в дата-центрах и умных офисах, одно- или трехфазных сетях переменного тока. С помощью этого устройства можно измерять пусковые токи оборудования, например, светильников и двигателей, а также обнаруживать всплески напряжения.
  • WB-MAP3EV — Трёхфазный вольтметр предназначен для мониторинга качества электропитания в одно- или трехфазных сетях переменного тока.

Диммеры

Еще одним важным элементом для управления освещением, является диммер. С его помощью можно реализовать не просто включение осветительных приборов методом разрыва питания, но и максимально адаптировать данный процесс ко времени суток, что позволит создавать уют в доме. Например, утром и днем яркость света можно установить на 100%, ближе к вечеру — 50%, а ночью — 1%. Кроме этого, диммеры позволяют управлять системами вентиляции или вытяжками. 

Существуют диммеры для управления светодиодными лентами. Хотя это не совсем диммеры, так как с их помощью можно не только управлять яркостью, но и изменять цвет. Поддерживаемые типы светодиодных лент: цветные (RGB), цветные + белые (RGB, RGB+W), жёлто-белые (CCT), белые(W).

Также у Wiren Board имеется диммер для управления воздушными заслонками, электроклапанами и электрозанавесками, которые поддерживают промежуточные состояния.

  • WB-MDM3 — Предназначен для диммирования светодиодных ламп и ламп накаливания. Можно использовать для регулировки оборотов вентиляторов (обратите внимание, не все вентиляторы поддерживают плавную регулировку скорости).
  • WB-MRGBW-D — Четырёхканальный диммер для управления светодиодными лентами.
  • WB-MAO4 — Четырёхканальный модуль для управления устройствами с интерфейсами 0-10В или ШИМ — светильниками, сервоприводами, приводами воздушных заслонок, клапанов и т.д.

Датчики

Кроме модулей управления, у WirenBoard есть довольно широкий ассортимент датчиков. Они необходимы для мониторинга климата окружающей среды в помещениях и на улице. В умных домах широко используются датчики температуры, влажности, углекислого газа, качества воздуха, а также определения угарного или природного/сжиженного газа. Настраивая сценарии по датчикам температуры, можно очень плавно регулировать отопление или кондиционирование. Датчик влажности, позволит управлять увлажнителями, а датчик CO2 позволит настроить системы вентиляции или проветривания с помощью электроприводов на окнах. Причем зачастую необходимо измерять все сразу. Для этого, у Wiren Board есть отличный многофункциональный датчик WB-MSW v.3, который представляет собой целый набор датчиков, при этом их состав вы выбираете сами. 

WB-MSW v.3 — это не единственное в своем роде устройство для мониторинга, существует еще модуль на DIN-рейку для подключения аналоговых датчиков. 

Обратите внимание, что если вам необходимо подключение температурного датчика, можно воспользоваться датчиком DS18B20, который напрямую подключается к основному контроллеру Wiren Board.

WB-MSW v.3

WB-MS v.2

WB-MAI11

  • WB-MSW v.3 — Комбинированный цифровой датчик температуры, влажности, освещенности, движения, уровня шума, концентрации CO2 и летучих органических соединений. Оснащен ИК-передатчиком, что позволяет управлять различными устройствами, например кондиционерами или телевизорами.
  • WB-MS v.2 — Комбинированный цифровой датчик температуры, влажности, освещенности и уровня VOС (летучих органических веществ).
  • WB-MAI11 — модуль с 11 входами для аналоговых датчиков, при этом позволяет одновременно подключить до 22 датчиков.

Возможность подключения устройств сторонних производителей

Беспроводные интерфейсы

К контроллеру можно подключить множество устройств от сторонних производителей, как через беспроводные протоколы, так и через проводные. Беспроводные уже описывались выше, правда там не упомянут штатный модуль ZigBee от WirenBoard, который позволяет подключать ZigBee устройства через ZigBee2MQTT. Список поддерживаемых устройств отличается от Sprut.hub, а так как решение является Open Source, то там есть «нюансы». 

Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH

WBE2R-R-ZIGBEE

WBE2R-R-ZWAVE-ZWAY

  • Sprut.stick ZigBee WBE2R-R-ZIGBEE-SH — беспроводной интерфейс ZigBee. Совместим с ПО Sprut.hub. 
  • WBE2R-R-ZIGBEE — беспроводной интерфейс Zigbee, добавляет поддержку устройств ZigBee2MQTT. 
  • WBE2R-R-ZWAVE-ZWAY — позволяет подключать устройства Z-Wave к Wiren Board.

Проводные

Так как в штатной комплектации контроллер оснащен шинами I2C, RS-485 Modbus RTU, 1-Ware, мы с легкостью можем подружить контроллер с устройствами сторонних производителей, работающими на этом протоколе. Лично я использую в своей связке устройства:

XY-MD02 SHT20

PZEM-16AC

DS18B20

  • Датчик температуры и влажности XY-MD02 SHT20 modbus. Китайский дешевый модуль для мониторинга температуры/влажности. За счет стабилизатора напряжения, который позволяет использовать питание от 5 до 30В., модель слегка нагревается, следовательно, не совсем точно показывает температуру. 
  • Датчик мониторинга электрической сети PZEM-16AC modbus. Относительно недорогой китайский модуль для мониторинга электрической сети. Однофазный, снимает такие показатели, как вольтаж, нагрузка, потребление, частоту и качество электрической сети.
  • Популярный, дешевый и точный датчик температуры DS18B20 1-Ware.

Питание контроллера 

Что касается электропитания контроллера, то компания Wiren Board предусмотрела множество максимально возможных способов подключения электропитания, так как контроллер предназначен как для бытового, так и для промышленного использования.

Способы питания контроллера:

  • Стандартный разъем электропитания 9-48В постоянного тока.
  • Боковой разъем 5,5 х 2,5 мм для подключения блока питания на DIN рейке.
  • Passive PoE, что позволяет питать контроллер либо с помощью отдельного блока питания, либо через стандартный PoE от коммутатора с поддержкой данной функции через штатный разъем RJ45 для подключения Ethernet.

GST25E24-P1J

HDR-60-24

Passive PoE

Что же касается выходных напряжений, то контролер позволяет запитывать от себя дочерние модули:

  • V out — напряжения равное входному, но с возможностью его программного отключения. То есть сколько подали на разъем, столько и получили, но с возможностью программного отключения. Это очень удобно для сохранения возможности «передергивать по питанию» подключенные модули, а также полезно в момент обслуживания и монтажа новых компонентов.
  • 5В.

Резервное питание

Как я упоминал выше, компания озаботилась обеспечением стабильного и бесперебойного электропитания контроллера, что позволяет обеспечить жизнеспособность системы даже при пропадании внешнего питания. Существуют как внешние модули, так и встраиваемые «под капот» контроллера. 

WB-UPS v.2

WBMZ4-SUPERCAP

WBMZ4-BATTERY

Modbus RTU RS-485

Отдельный раздел статьи, я хочу посвятить протоколу modbus, а точнее, его удобству при построения умного дома. По сути, для построения сети между устройствами, вам необходимо всего два провода. Правда для питания модулей нужно еще и подать на них электричество, но это в принципе очевидно и так. Но в целом, для развертывания системы, нужно всего два провода. А так как устройства подключаются шиной, то можно всего через одну пару проводов, подключить до 256 устройств. При этом у контроллеров Wiren Board 6/7 на борту встроены две шины RS-485, которые можно расширить за счет конвертера USB -> RS-485, что позволяет подключить довольно большое количество дочерних устройств, при этом длина трассы может достигать более километра. Правда стоит понимать, что на таких расстояниях и при большом количестве устройств, скорость передачи данных будет сильно ограничена. 
Но выход есть. Для построения крупногабаритной сети modbus можно использовать преобразователи интерфейсов Ethernet to RS-485. Благодаря таким преобразователям, можно объединить устройства в разных точках планеты и управлять этими устройствами при помощи одного контроллера. 

Преобразователь интерфейсов WB-MIO-E v.2

Преобразователь MOXA NPort IA 5150

Как мы видим, подобные преобразователи существуют как от компании Wiren Board, так и от сторонних производителей.  

  • Преобразователь интерфейсов WB-MIO-E v.2 c RS-485 и Ethernet.
  • Преобразователь MOXA NPort IA 5150 (преобразователи бывают как от разных производителей, так и в разной ценовой категории).

Программное обеспечение

Покупая контроллер, вы получаете законченное устройство с предустановленной операционной системой Debian Linux 9 Stretch, а конфигурирование контроллера, производится через фирменный Web UI. Для более опытных пользователей имеется доступ по SSH.

Из предустановленного из коробки доступно: 

  • MQTT брокер.
  • wb-rules — инструмент написание сценариев при помощи встроенных правил.
  • modbus TCP/RTU.

Веб-интерфейс

Штатный Web-интерфейс позволяет:

  • Отслеживать состояние датчиков, а также управлять подключенными устройствами.
  • Конфигурировать новые устройства.
  • Создавать правила при помощи встроенного инструмента wb-rules.
  • Управлять SVG Dashboard.
  • Настраивать SMS и email-уведомления.
  • Просматривать графики истории состояний подключенных устройств. 
  • Обновлять ПО, перезагружать систему, просматривать системный журнал и многое другое.

Домашняя страница

Устройства

SVG Dashboard

Дополнительные системы, устанавливаемые «поверх»

Как уже упоминалось выше, на контроллере установлена OS Linux Debian. А это значит, что мы можем установить сторонние ПО на контроллер и обеспечить взаимодействие между ним и штатным ПО контроллера. 
Перечислять все, конечно же, нет смысла, но из основного хочется выделить следующие системы домашней автоматизации:

Sprut.hub

Node-RED

Home Assistant

  • Sprut.hub — программное обеспечение, которое позволяет бесшовно интегрировать контроллеры Wiren Board с Zigbee устройствами во все популярные экосистемы. Но об этом чуть ниже. 
  • Node-RED — инструмент визуального программирования для построения сложных сценариев. 
  • Home Assistant — open-source платформа домашней автоматизации.

Sprut.hub

Одной из популярных систем автоматизации в нашем сообществе является Sprut.hub. Причина этому — простота взаимодействия конечного пользователя и системы в целом. Связка контроллер WirenBoard и Sprut.hub — это надежное железо плюс простота взаимодействия с пользователем. Кроме этого, все подключенные в Sprut.hub устройства, автоматически попадают в Apple HomeKit, Яндекс Алису и Марусю от Vk.Group. При этом, у Sprut.hub есть встроенный сценарный движок, который позволяет очень просто решать задачи любой сложности.
Все это делает систему доступной даже для людей, которые не готовы изучать код и всякие «изыски» Open Source проектов. Хотя автоматизации с помощью кода, доступны и в Sprut.hub, что позволяет реализовать самые смелые и нетривиальные задачи любой сложности.

Устройства

Контроллеры

Сценарии

Подведем итоги

Если вы планируете погрузиться в мир домашней автоматизации, то экосистема устройств от Wiren Board, подойдет для любого пользователя и на «любой кошелек». При этом система позволяет очень гибко интегрировать в умный дом как проводные, так и беспроводные решения, а возможности резервирования и поддержка огромного количества протоколов связи, позволяет удовлетворить потребности самых взыскательных пользователей и заказчиков.

Надежное железо компании уже давно нашло применение в банках, магазинах, ресторанах и других местах, которые мы так часто посещаем. Там они выполняет задачи по мониторингу различных систем, а также управляют климатом и другими различными системами. С помощью WirenBoard можно реализовать умную заправку, магазин или отделение банка, позволяя управлять всем, от розеток до систем безопасности. При этом система достаточно гибкая и позволяет устанавливать дополнительное ПО, что обеспечивает возможность использовать любое подходящее для вас решение, начиная от OpenSource в виде Home Assistant с предустановленным сценарным движком node-RED и заканчивая Sprut.hub, с которым с легкостью справится даже школьник.

 Где купить?

Продукцию от компании Wiren Board можно приобрести в разделе Магазины. Делая покупки через портал Sprut.ai, вы получаете выгодные промокоды от производителей и магазинов.

На чтение 29 мин Просмотров 1.1к. Опубликовано 08.09.2021

Содержание

  1. Содержание
  2. Выбор сетевой комплектации контроллера
  3. Минимальная комплектация
  4. Расширенные возможности
  5. Заводская конфигурация сетевых устройств
  6. Ethernet
  7. 3G-модем
  8. 2G-модем
  9. GSM-антенны
  10. Настройка сетевых интерфейсов
  11. Настройка Ethernet-интерфейсов
  12. Настройка Wi-Fi
  13. Настройка PPP
  14. PPP — основной и резервный выход в интернет
  15. AutoSSH
  16. Передача данных с контроллера в облако
  17. Возможные неполадки GPRS-соединения
  18. О компании Wiren Board
  19. О контроллере Wiren Board
  20. Wiren Board 6
  21. Базовый функционал
  22. Дополнительный функционал
  23. Собственные модули Wiren Board
  24. И самое интересное, как это использовать?
  25. Подведем итоги

В данной статье освещаются сетевые аспекты профессиональной инсталляции контроллера на производственных и коммерческих объектах.

Содержание

Выбор сетевой комплектации контроллера

Контроллеры Wiren Board 6 поставляются с разным набором сетевых устройств. Необходимо понять, в каких условиях будет эксплуатироваться контроллер и какая комплектация будет оптимальной.

Минимальная комплектация

Контроллеры Wiren Board 6 в любой комплектации имеют два Ethernet-интерфейса 100 Мбит/с (eth0, eth1) на борту.

Расширенные возможности

Опционально контроллеры поставляются с Wi-Fi-интерфейсом (wlan0) (802.11bgn 2.4G), с 3G-модемом (WCDMA/HSPA, GSM/GPRS/EDGE) или 2G-модемом (GPRS). С помощью любого из них вы можете подключить контроллер к интернету, а с помощью Ethernet и Wi-Fi — еще и к локальной сети. 3G-модем реализован на чипе SIMCom SIM5300E, 2G-модем реализован на чипах SIMCom SIM800 или Neoway M660A, Wi-Fi — на чипе Realtek 8723BU.

Заводская конфигурация сетевых устройств

Ethernet

В заводской конфигурации в контроллере настроены оба Ethernet-интерфейса и Wi-Fi и loopback. Файл сетевых настроек — /etc/network/interfaces . Интерфейсы eth0/1 не имеют фиксированного адреса и получают сетвые настройки по DHCP.

На Wi-Fi интерфейсе wlan0 по умолчанию поднята открытая точка доступа, с фиксированным адресом 192.168.42.1, клиенты получают адреса по DHCP, которые раздает демон dnsmasq, в диапазоне 192.168.42.50 — 192.168.42.150 . SSID беспроводной сети контроллера формируется из префикса “WirenBoard-” и серийного номера контроллера, нанесенного на боковой наклейке. В беспроводной сети контроллер имеет не только IP-адрес, но и DNS-алиасы для удобства подключения, wiren , wiren.local , wiren_board , wirenboard.local , wirenboard .

Подключение к сети передачи данных сотовых операторов не включено по умолчанию и требует настройки. Контроллер имеет да разъема для установки СИМ-карт, но в настоящее время программно поддерживается только первый.

Опционально контроллер комплектуется 3G или 2G-модемами (модемы несъемные и распаиваются на плате на производстве).

3G-модем

Модем представлен в системе двумя устройствами: /dev/ttyGSM (линк на один из консольных портов ttymxc), подключенного к UART-интерфейсу чипа модема, и составного USB-устройства /dev/ttyACM0-6 , для коммуникации используется ttyACM0 . Ограничения UART-порта не позволяют реализовать весь потенциал скорости передачи данных в 3G-сетях (теоретически до 7,2 Мбит/с на приём и до 5,76 Мбит/с на передачу). Порт ttyACM0 ограничен только скоростью передачи данных интерфейса USB2.0 (теоретически — до 280 Мбит/с).

Наличие двух интерфейсов позволяет одновременно использовать первое устройство ( /dev/ttyGSM ) для отправки AT-команд (узнать уровень сигнала сотовой связи, отправить SMS, USSD-запрос баланса и проч.) через программы minicom или gammu, а второе ( /dev/ttyACM0 ) — для сетевой коммуникации.

В контроллере доступна аппаратное управление включением/выключением модема через его вход PWRKEY, состояние которого управляется одним из GPIO процессора. Для пользователя интерфейс управления питанием модема предоставляет команда wb-gsm с опциями on, off, reset, restart_if_broken.

2G-модем

Максимальная скорость передачи данных в GPRS составляет 85,6 кбит/с, чего явно недостаточно для передачи больших объемов данных. GPRD-канал может использоваться для доступа к интерфейсу командной строки (ssh) или для отправки SMS. 2G-модемы представлены в системе одним устройством, /dev/ttyGSM . Одновременная передача данных и AT-команд в 2G-модеме не реализована.

GSM-антенны

Контроллер опционально комплектуется одной из двух GSM-антенн: выносной, на кабеле 2,5м, с коэффициентом усиления 3,5 дБ, или короткой штыревой антенной, навинчивающейся прямо на SMA(female)-разъем контроллера. При монтаже контроллера в металлических боксах следует использовать выносную антенну. Штатные антенны контроллера обеспечивают связь в условиях хорошего приема. В сложных радиоусловиях необходимо приобретать антенны с бóльшим коэффициентом усиления или направленные антенны. Диапазон частот 3G-антенн — 1900-2100 МГц, 2G — 900/1800 МГц. Разъем кабеля антенны — SMA(male).

Настройка сетевых интерфейсов

Настройка Ethernet-интерфейсов

Часто возникает необходимость, чтобы контроллер имел постоянный адрес в локальной сети. Это достигается либо настройками DНCP-сервера (привязкой IP-адреса к MAC-адресу сетевого интерфейса контроллера), либо явным указанием IP-адреса в сетевых настройках.

Рассмотрим более подробно, как задать фиксированный адрес на Ethernet-интерфейсе.

Для настроек статического адреса задайте следующую конфигурацию:

По умолчанию, если адрес статический, используются DNS-сервера, перечисленные в файле /etc/resolv.conf , символическая сcылка на /mnt/data/etc/resolv.conf .

Можете добавлять свои DNS-сервера по аналогии:

Эти сервера использует сервис dnsmasq, который обслуживает локальные DNS-запросы на контроллере. Чтобы понять, какие именно upstream-сервера используются dnsmasq в настоящий момент, выполните команды

Программа dnsmasq выведет в консоль, какие сервера используются, например:

Настройка Wi-Fi

Параметры точки доступа определяет демон hostapd (файл настроек /etc/hostapd.conf ). Чтобы подключаться к контроллеру по Wi-Fi по защищенному каналу, допишите в конец файла /etc/hostapd.conf следующую конфигурацию:

Перезапустите hostapd: /etc/init.d/hostapd restart , после чего подключение к контроллеру по Wi-Fi будет возможно только с паролем your_password.

Пример настройки Wi_Fi адаптера для подключения к локальной сети можно найти в нашей wiki.

Настройка PPP

На контроллере предустановлен демон pppd, который используется для создания подключения к сети провайдера через 3G/2G-модем. Демон pppd создает при подключении сетевой интерфейс ppp (ppp0 по умолчанию). В заводской конфигурации настройки порта ppp0 закомментированы, и установления соединения с провайдером сотовой связи не происходит. В нашей Wiki мы рекомендуем использовать следующие настройки для интерфейса ppp0 в файле /etc/network/interfaces :

Даже если модем находится в зависшем или отключенном состояниии, команда pre-up wb-gsm restart_if_broken перед началом установления соединения перезагрузит его и модем будет гарантированно доступен. Десятисекундной задержки ( pre-up sleep 10 ) перед установлением соединения обычно хватает, чтобы сетевое соединение установилось с первого раза.

Строка provider заставляет pppd искать файл настроек для конкретного провайдера в директории /etc/ppp/peers , в нашем случае это файл /etc/ppp/peers/mts . В целях совместимости в качестве устройства модема в заводской настройке в этом файле указано использовать устройство /dev/ttyGSM . Если на вашем контроллере установлен 3G-модем, замените это устройство его на более быстрое /dev/ttyACM0 .

Чтобы при обрыве соединения контроллер не прекращал бы попытки установить связь, в файле настроек провайдера /etc/ppp/peers/ должны быть раскомментированы опции

Параметры протокола пакетной передачи данных и номера для соединения для каждого провайдера хранятся в директории /etc/chatscripts. В большинстве случаев ничего менять в этих файлах не придется.

PPP — основной и резервный выход в интернет

Проще всего обеспечить выход в интернет, если ppp0 — единственный WAN-интерфейс. Интерфейс ppp0 настраивается, как это написано выше, и затем, командой ifup ppp0 , устанавливается подключение к интернету через сеть сотового оператора.

Сложности начинаются, когда контроллер подключен к Ethernet и имеет шлюз по умолчанию в одной сети, а также подключается к сети сотовой передачи данных.

В такой конфигурации мы сталкиваемся со следующей особенностью: протокол PPP обеспечивает соединение точка-точка и не предполагает шлюза по умолчанию.

В случае подключения по PPP, когда ни одного шлюза по умолчанию нет (например, мы не подключили Ethernet-кабель), pppd в качестве шлюза по умолчанию добавит в таблицу маршрутизации в системе IP-адрес ppp-партнера. Если шлюз по умолчанию уже задан, то в таблицу маршрутизации новый шлюз по умолчанию не добавляется. И тогда при падении основного Ethernet-канала выход в интернет теряется, несмотря на активное соединение. В этом случае необходимо добавить второй шлюз по умолчанию через интерфейс ppp0. Метрика любого нового шлюза должна отличаться от метрик имеющихся, поэтому мы явно указываем метрику при создании нового шлюза по умолчанию.

Для обеспечения отказоустойчивого соединения мы должны предусмотреть любой порядок поднятия и падения интерфейсов. Задача — обеспечить связь независимо от порядка поднятия интерфейсов и переключение при падении одного из них.

Для интерфейса eth0, который мы будем считать основным для выхода в интернет, создается шлюз по умолчанию с метрикой 0 в таблице маршрутизации. Зададим для шлюза по умолчанию через интерфейс ppp0 метрику 100 (или любой, отличной от 0). Для выполнения команд после инициализации любого ppp-интерфейса pppd демон использует директорию /etc/ppp/ip-up.d . В качестве параметров командной строки скрипту передается и имя ppp-интерфейса (в нашем случае такой интерфейс один — это ppp0).

Создадим скрипт add_routes в директории /etc/ppp/ip-up.d и сделаем его исполняемым ( chmod +x /etc/ppp/ip-up.d/add_routes ):

Первая команда удаляет шлюз по умолчанию, на случай, если он был создан с метрикой 0. Вторая — добавляет шлюз по умолчанию с метрикой 100 для интерфейса ppp0. Таким образом мы имеем два шлюза по умолчанию с разными метриками:

При падении одного из их трафик будет передаваться через другой и наоборот. Запустим ping 8.8.8.8, а затем вынем и вставим вилку RJ-45:

Как показал опыт, иногда возникает проблема с доступностью DNS-серверов провайдера. Для всех соединений прописываем общедоступные сервера Google и OpenDNS.

eth0: Из файла /etc/dhcp/dhclient.conf из параметра request удаляем параметр domain-name-servers , а после параметра request указываем открытые DNS-сервера Google и OpenDNS:

ppp0: В директории /etc/ppp/ip-up.d создаем скрипт (и даем ему права на выполнение), который добавит DNS-сервера Google и OpenDNS в файл resolv.conf при поднятии интерфейса.

Для удаленного доступа к контроллеру будем использовать OpenVPN. Предполагается, что сервер уже есть и настроен, необходимо установить и настроить клиент на контроллере.

Чтобы обеспечить большую надежность, на сервере с 2 IP-адресами запускается два серверных процесса, один из которых слушает на порту 1194 TCP на IP1, а второй — на порту 1194 UDP на IP2. (Это не обязательно, вы можете использовать один серверный процесс).

На контроллере мы поднимаем 2 OpenVPN-клиента и явно задаем маршрут для IP2 через интерфейс ppp0 для одного из них.

Установка OpenVPN — стандартная, с использованием open-rsa .

Для этого на контроллере устанавливаем openvpn и easy-rsa :

Копируем сертификат удостоверяющего центра ca.crt на контроллер в директорию /etc/openvpn/easy-rsa/keys

В директории /etc/openvpn/easy-rsa создаем поддиректорию keys :

Создаем запрос на подписывание сертификата (с именем, соответствующим серийному номеру контроллера, в данном случае A7ZO7UCC):

Копируем полученный запрос A7ZO7UCC.csr на сервер в произвольную директорию и подписываем его.

Подписанный сертификат A7ZO7UCC.crt копируем на контроллер в директорию /etc/openvpn/easy-rsa/keys .

На сервере в конфигурационном файле ( /etc/vpn/server.conf ) смотрим, какой файл соответствия клиент-адрес указан в параметре ifconfig-pool-persists и в этот файл добавляем адрес для клиента-контроллера из диапазона сетевых адресов, описанного в параметре server конфигурационного файла.

Добавляем строку A7ZO7UCC,10.8.0.48

Для второго экземпляра сервера такую же операцию выполняем с его конфигурационными файлами, IP-адреса должны различаться, например, добавляем запись A7ZO7UCC,10.9.0.48

Конфигурационные файлы для клиента на контроллере для двух соединений будем хранить в файлах /etc/openvpn/client.conf и /etc/openvpn/client1.conf .

Содержимое файла настройки клиента:

В файле конфигурации второго vpn-подключения сlient1.conf замените proto udp на proto tcp и укажите второй IP-адрес сервера в параметре remote .

Автозагрузка сервиса OpenVPN на контроллере включается командой:

Проверяем доступность сервера ping 10.8.0.1

AutoSSH

Еще одно резервное подключение к контроллеру сделаем на основе AutoSSH . Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно — какое-то время порт, используемый на localhost сервера удерживается демоном sshd .

Устанавливаем на контроллере apt-get install autossh . Генерируем пару ключей для пользователя root :

Для обслуживания удаленных подключений создаем пользователя remote на сервере с оболочкой /bin/false :

В файл /home/remote/.ssh/authorized_keys на сервере добавляем созданный на контроллере ключ /root/.ssh/id_rsa.pub с преамбулой

что обеспечит дополнительную безопасность сервера при подключении контроллера. Порт 62001 — порт localhost-сервера, на который будет перенаправлен ssh-порт данного контроллера.

Первый раз подключаемся с контроллера на сервер вручную:

На контроллере создаем файл etcsystemdsystemautossh.service для запуска autossh в качестве сервиса:

Включаем сервис а автозагрузку на контроллере:

После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды

Передача данных с контроллера в облако

Для передачи MQTT-сообщений с контроллера в облачный сервис используется MQTT-бридж, конфигурация которого настраивается на контроллере в файле mntdataetcmosquittoconf.dridge.conf

Затем выполните команду

Если вы хотите передавать данные на несколько серверов одновременно, создайте несколько разделов connection .

Возможные неполадки GPRS-соединения

Возможных причин отсутствия GPRS-подключения может быть несколько.

  • Закончился оплаченный лимит трафика.
  • Низкий уровень сигнала, плохой контакт антенны.
  • СИМ-карты некоторых операторов рассчитаны только на 4G-сети, 3G-подключение установить с ними не получится.
  • Проверьте, правильно ли вставлена СИМ-карта в слот.
  • Возможно, СИМ-карта нерабочая.
  • Ваш тарифный план не предусматривает пакетную передачу данных.

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

Важно, что контроллер подключен к пакетной сети передачи данных и GPRS-соединение установлено.

После этого оцените уровень сигнала в minicom командой AT+CSQ Вы получите результат в виде 13,99

Первая цифра показывает мощность сигнала: > 9 — удовлетворительный, > 14 — хороший, > 19 — отличный. Низкие и нестабильные значения CSQ означают, что антенна плохо расположена, неаккуратно подключена, радиообстановка неблагоприятная.

Если обе проверки пройдены, но связи нет, обратитесь к провайдеру (загляните в личный кабинет), можете проверить СИМ-карту в смартфоне.

Итак, купив с десяток силовых блоков и выключателей nooLite, я привязал их друг к другу и расставил как положено. В принципе, желание сделать управление некоторыми из ламп из нескольких мест, а также посегментное включение света даже там, где проложена только одна пара проводов, это удовлетворило. Но не во всём было удобно.

  1. Любое изменение конфигурации системы (добавление пульта или изменение функции одной из кнопок уже установленного) требует доставать стремянку, снимать люстру и привязывать/отвязывать выключатель от её силового блока. Требуется редко, но очень уж геморройно.
  2. Сценарные кнопки на выключателях умеют делают только одно действие — например, выключить все сегменты в люстре одним нажатием. А вот включать их уже надо обычными кнопками, двумя нажатиями.
  3. Расход кнопок на люстру с двумя сегментами — минимум две штуки (по одной на каждый сегмент), при этом управление ей неудобно — чтобы выключить люстру, например, надо посмотреть, какой сегмент включён, и нажать соответствующую ему кнопку. Ну или отвести под одну люстру все три кнопки (сценарную на «выключить всё»), но и это упрощает лишь одну операцию.

Все эти проблемы решаются тем, что у «Ноотехники» есть USB-адаптеры с приёмниками и передатчиками. К ним точно так же привязываются пульты и силовые блоки, а с компом адаптер общается как HID-устройство с очень простой системой команд. Соответственно, при виде этого возникла разумная идея воткнуть оба адаптера в домашний сервер (у меня есть) или просто роутер (тоже есть парочка) и сделать всё управление светом через этот сервер. Тогда силовые блоки привязываются к каналам передатчика один раз перед установкой на своё место, привязать выключатель к приёмнику несложно, а соответствие между каналами приёмника и передатчика задаётся программно. Бонусом появляется возможность сделать веб-интерфейс и мобильное приложение.

Кстати, если роутера нет — можно купить мини-компьютер Wiren Board Smart Home, в котором уже есть приёмник и передатчик 433,92 МГц, а производитель обещает драйверы с поддержкой протокола nooLite. Плюс — это будет одна коробка с горой интерфейсов «умного дома», минус — если вам нужен только nooLite, то два родных адаптера и дешёвый роутер (популярнейший TL-MR3020 подойдёт) выйдут дешевле. Кроме того, очевидно, под драйверы Wiren весь софт, про который я скажу ниже, придётся переделывать.

  1. Программную настройку всех выключателей в доме (через веб-интерфейс).
  2. Управление несколькими лампами с помощью одной кнопки выключателя по различным сценариям.
  3. Отдельные события на длинное и короткое нажатия кнопок.
  4. Веб-интерфейс и мобильное приложение.

Например, двухсекционной люстрой в комнате управляет одна кнопка. Короткие нажатия — последовательное включение секций (если все включены, то при очередном нажатии все гаснут), длинное — включить все секции сразу, если ни одна не включена, иначе выключить все включённые. Это удобно и это невозможно реализовать с ноолайтом в его оригинальной конфигурации, без сервера.

Сразу предупреждаю: сделаны те и только те вещи, которые были нужны мне. Например, нет поддержки RGB-лент и диммеров — у меня их нет. Надо — добавляйте сами или ждите, что может я когда-нибудь. Работает с передатчиком PC1116 (но нет причине не работать с другими моделями) и приёмником RX1164 (но нет причин не работать с более новым RX2164) на обычном ПК под CentOS 6 (мой домашний сервер) и на роутере TP-Link TL-WDR4300 под OpenWRT Attitude Adjustment (но нет причине не работать с традиционным для самоделок дешёвым TL-MR3020).

Описывать по той же причине буду кратко, так что если кто не знает, что такое autoconf и opkg — извините. Инструкция «сделать умный дом для дураков» тут возможна и даже не очень длинна, но цель моя сейчас не в этом.

Теоретически, сайт «Ноотехники» ссылается на сторонние драйверы под Linux (под Windows есть родная управляющая программа), поддерживающие ноолайтовские адаптеры; их наличие и вдохновило мня купить пару адаптеров. Практически же эти драйверы — не более чем демонстрация того, что адаптер вообще работает. Пользоваться ими в реальной жизни не рекомендуется, потому как ад мглы внутри простирается от намертво зашитой в сишный код команды, вызываемой при приходе данных от приёмника, до попросту перепутанных кодов команд в программе конфигурации приёмника.

В общем, дальше из шкафа была вытащена УШМ и произведена лёгкая доработка кода.

1. Код упорядочен и собирается не без помощи autoconf/automake.

Ну это понятно, обычное удобство.

2. У всех утилит упорядочены параметры командной строки.

Потому что я не знаю, что двигало человеком, придумавшим синтаксис «–on_ch номер_канала» вместо просто «–on номер_канала». Ну и банальных ошибок и шероховатостей хватало, типа необходимости передавать номер канала в команду, для выполнения которой номер канала не нужен.

3. Исправлены горы найденных ошибок и шероховатостей.

Разных. От ошмётков виндового кода до того, что в утилите конфигурации приёмника номер команды превратился в номер бита в байте команды. Оно в принципе даже отчасти работало, вот только команда очистки привязки одного канала стирала всю конфигурацию всех каналов.

4. У утилиты приёмника добавлен конфигурационный файл.

В котором можно не только прописать, в какой команду передаются данные из приёмника, но и указать, какие собственно данные это будут (раньше всё вываливалось просто побайтно).

5. Утилита приёмника теперь может работать в фоне — демоном.

Очевидная вещь. Консоль ему нужна только при отладке.

6. Для передатчика написан свой демон, данные которому передаются через сокет всеми желающими.

В принципе, можно каждый раз при необходимости что-то передать вызывать консольную программу, но это приводит к трём проблемам. Во-первых, такой вызов не очень быстрый, во-вторых, программа хочет работать из-под рута (у неё иначе доступа к USB нет), в-третьих, если в передатчик запихнуть две команды с интервалом менее 400 мс, одну из них он не переварит. Демон живёт под рутом изначально, обращаться к нему может любой желающий через сокет, времени на запуск и инициализацию USB’шного барахла при каждом обращении не тратится, интервал между командами он отслеживает внутри себя сам.

7. Информация о работе сыпется в syslog.

Очевидная вещь. Какая команда пришла, какая ушла, предупреждения, если пришла команда с номер канала, который не сконфигурирован, и т.п.

Поехали!

Весь код лежит на GitHub’е. Предыдущие авторы условий лицензирования не указывали, так что, полагаю, лицензия WTFPL. Сборка — как обычно, ./configure && make && make install. В каталоге openwrt лежит Makefile для сборки под, как вы уже догадались, OpenWRT, а также скрипт запуска демонов для /etc/init.d. В каталоге initd лежит скрипт запуска демона приёмника для CentOS 6 (и аналогичных систем).

Ну и в doc лежит README, читайте его, там всё сказано (плюс нижеперечисленные команды с параметром –help выдают краткую справку о себе).

  • noolitepc — консольный передатчик. В общем, нужен, только если хочется что-то руками проверить (включить-выключить определённый канал).
  • noolitepcd — демон передатчика. Используется в повседневной жизни, общение через сокет /tmp/noolitepcd.sock.
  • nooliterx — консольный приёмник. Полезен в вариантах nooliterx –i (игнорирует конфигурационный файл, валит в консоль всё принятое — полезно для проверки привязки выключателей, кодов команд и т.п.) и nooliterx –d (уходит в демоны для использования в повседневной жизни).
  • nooliterxcfg — конфигурация приёмника, привязка-отвязка пультов к его каналам.

Этот набор позволяет вручную управлять силовыми блоками, привязывать пульты к приёмнику и блоки к передатчику, а также в нём есть два демона, из которых первый может вызвать какую-нибудь команду, передав ей данные от пульта, а второй может передать что-нибудь передать на выбранный силовой блок. Очевидно, между ними не хватает прослойки, реализующей собственно логику.

Такая прослойка живёт на GitHub рядом, работает в веб-сервере и написана преимущественно на PHP. PHP и веб-сервер вместо C и компилятора очень удобны тем, что внутренности можно править прямо на лету.

Конфигурация демона приёмника такова:

# cat /etc/noolite.conf
# noolite config file
command = wget -q -T 5 «http://localhost/lampcontrol.php?channel=%ch&command=%cm» -O /dev/null &

То есть, поймав что-то от любого привязанного к нему пульта, демон-приёмник вызывает wget, загружающий lampcontrol.php и передающий ему номера канала и команды, полученные от пульта. Соответственно, в lampcontrol.php содержится вся логика, определяющая, что именно делать с этими ценными сведениями.

За указаниями lampcontrol.php лезет в XML-файл switch.xml, имеющий формат:

Что мы тут видим? Что если пришла команда с кодом 4 (это короткое нажатие кнопки выключателя, коды команд есть в руководствах по RX1164 и RX2164), то надо изменить состояние (toggle) ламп, привязанных к каналам 1 и 2 передатчика. Если были включены — выключить, если выключены — включить.

Результат каждого изменения состояния лампы сервер пишет в ДБ sqlite3 — lamps.db — поэтому всегда знает, какая лампа что делает. Это даёт возможность как делать многошаговые алгоритмы, так и просто показывать на веб-интерфейсе текущее состояние ламп. Так как обратно связи от силовых блоков нет, сервер может ошибаться относительно состояния отдельной лампы (команда из-за помех не дошла до силового блока), но при минимально аккуратном размещении антенн это случается редко.

Создаётся база один раз (с помощью create-db.php) перед первым взлётом всей системы. База может порушиться при внезапном выключении роутера, т.к. для неё включена асинхронная запись в файл и расположение журнала в памяти — чтобы не сказывалась неторопливость роутерного флэша; в таком случае надо файл прибить и создать заново, благо ничего особо ценного в нём нет (только текущий статус каждой из 64 возможных ламп). Если вам надежность критична — закомментируйте в lampcontrol.php строчку $db->exec(«PRAGMA journal_mode=MEMORY;»); , это положит журнал на диск. Включать синхронную запись (соседняя строчка) не советую, будет очень-очень медленно.

    >Далее идёт перечисление ламп, на которые распространяется данная команда; параметр у каждой лампы один — «channel», номер канала передатчика, к которому привязан соответствующий силовой блок. Исключением является mode=«alloff» — в этом режиме список ламп не нужен вообще, выключаются все включённые лампы в доме.

Можно делать вот так, например:

Здесь по короткому нажатию кнопки последовательно включаются два сегмента люстры (цикл выключено — включена лампа 2 — включены лампы 2 и 3 — выключено), а по длинному — люстра либо полностью зажигается (если не горела ни одна лампа), либо полностью гаснет (если горела хотя бы одна). Третий блок как раз отрабатывает команду, приходящую при отпускании кнопки после длинного нажатия; можно прописать в первом блоке параметр command=«4», тогда третий блок был бы не нужен — команду 10 в таком случае всё равно никто не отработает.

Веб-интерфейс лежит в файле index.php и выводит либо план квартиры (в данном случае нарисованный в Sweet Home 3D), если его открывают с планшета или ПК, либо перечень кнопок, если открывают с мобильника. Расположение ламп на плане квартиры и их названия берутся из файла lamps.xml

Здесь описаны две секции освещения в ванной — их силовые блоки привязаны к каналам 2 и 3 передатчика, на плане квартиры они расположены в точка <174; 238>и <194; 238>пикселей, кнопки включения и выключения надо нарисовать слева от первой и справа от второй лампы. Параметр «position» не обязателен — если он не указан, кнопки рисуются справа.

Чтобы не править XML-файлы руками, ходя на сервер по SSH — к веб-интерфейсу прикручена простая админка, внутри которой живёт редактор XML на JavaScript. Она на данный момент практически никак не заточена под конкретную задачу, так что всё в ней всё равно пишется руками. Пароль для входа задаётся непосредственно в файле admin/index.php в первом if’е (по умолчанию admin/admin).

На роутере для работы всего этого добра нужны libusb-1.0, lighttpd, lighttpd-mod-cgi, php5, php5-cgi, php5-mod-simplexml, php5-mod-xml, php5-mod-sqlite3. С учётом, что на этом же роутере у меня крутится ещё и аудиосервер (mpd), его собственного флэша не хватает категорически — поэтому в него воткнута флэшка и настроен overlay, так что все новые пакеты устанавливаются на флэшку. Так как в роутере всего два USB-порта, в него воткнут приличный хаб, в котором уже стоят флэшка, приёмник и передатчик:

Как нетрудно заметить, приёмник и передатчик выглядят, мягко говоря, не совсем так, как на сайте «Ноотехники». Дело в том, что у них, как и у силовых блоков, антенны сделаны из мягкого многожильного провода — а для обеспечения максимальной стабильности связи антенна должна быть прямой, жёсткой и вертикальной (ибо диаграмма направленности — максимум усиления в перпендикулярной антенне плоскости). Поэтому я разобрал родные корпуса, поменял антенны на 170 мм (четверть длины волны) жёсткого провода (сойдёт одна жила обычного электромонтажного провода сечением 1,5—2,5 мм²) и упаковал всё в термоусадку. В качестве флэшки — SanDisk Cruzer Fit 8 ГБ, маленький, незаметный и при этом выдающий весьма пристойную скорость даже на работе с маленькими блоками.

Между нажатием кнопки выключателя и собственно включением света, разумеется, есть задержка — пока всё это пролетит по системе. Но задержка небольшая, меньше задержки включения типичных энергосберегающих ламп.

Естественно, выпускать роутер в интернет не советую — по крайней мере, пока вы не сделаете авторизацию при заходе на управление вашим светом снаружи.

Кажется, всё рассказал.

Напишу ли руководство «установка умного дома nooLite на TP-Link MR3020 для чайников» — ХЗ. Сделает ли «Ноотехника» из бессмысленного Ethernet-шлюза такой сервер — тем более ХЗ.

Что удобного можно сделать в конкретной квартире:

  • Управление одной лампой из нескольких мест: например, выключать люстру у входа в комнату и у изголовья кровати, включать свет на кухне собственно с кухни и из начала коридора, к ней ведущего.
  • Раздельное управление сегментами в любой люстре, вплоть до отдельного управления хоть каждой лампочкой — и всё это одной кнопкой пульта.
  • Отдельные «взрослые» выключатели на стене высоко и «детские» с управлением только частью ламп на стене низко.
  • Кнопка «выключить всё» на выходе из квартиры.
  • Кнопка «выключить весь свет в кухне-ванной-сортире-прихожей» на пультах в комнатах.
  • Ну и само собой, в качестве нагрузки могут выступать не только лампы, а вообще что угодно, втыкающееся в розетку.

О компании Wiren Board

Wiren Board — российская компания, которая с 2012 года разрабатывает и производит электронику для автоматизации и мониторинга.

Компания специализируется на разработке промышленных контроллеров на базе Linux, а также периферийных устройств с интерфейсом Modbus: датчиков, блоков ввода-вывода и счётчиков.

Более пяти лет мы производим оборудование, которое управляет нефтедобывающими скважинами, банковскими отделениями, отдельными домами и целыми жилыми районами, следит за микроклиматом в серверных, супермаркетах и офисах, собирает и анализирует данные с датчиков и внешних устройств. Сегодня Wiren Board — команда из 20 специалистов: инженеров-электронщиков, разработчиков ПО, инженеров по качеству, монтажников и менеджеров.

Мы производим десятки тысяч высокотехнологичных устройств в год. Чтобы поддерживать высокое качество нашей продукции, мы самостоятельно выполняем все основные этапы производственного процесса, включая поставку компонентов, тестирование и окончательную сборку. Каждое выпускаемое нами устройство проходит тщательное тестирование с использованием современного автоматизированного испытательного оборудования. Все оборудование производится на заводе в России.

Надёжные контроллеры Wiren Board применяются в задачах мониторинга серверного и климатического оборудования, диспетчеризации и сбора данных с приборов учёта, в качестве основы для «умного дома». Контроллеры могут работать в составе облачной платформы «WB Cloud».

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

О контроллере Wiren Board

По сути это законченное устройство готовое к применению, купилвключилработает. Это контроллер, на котором можно полноценно автоматизировать умный дом начиная от управления, автоматизации и мониторинга состояния и заканчивая. тут всё упирается только в Вашу фантазию. Если провести аналогии — это Raspberry PI для взрослых, которой прокачали возможности и отказоустойчивость.

Но всё ли так хорошо ? — Конечно НЕТ, эта железка ни разу не Apple Way, то есть ваши любимые SSH, конфиги, репозитарии всё это тут, но не переживайте, мы постараемся Вас максимально от этого оградить и помочь в настройке.

Wiren Board 6

Базовый функционал

Контроллер модульный, а это значит у него ОЧЕНЬ много опций. Давайте разберёмся, что мы получаем в базовом функционале за 13 850 ₽:

  • 4 варианта подачи питания (Штатный разъем подключения блока питания, клеммы для подключения блока питания, 2 разъема Passive PoE)
  • 2 Ethernet порта для подключения витой пары в качестве основного или резервного источника связи
  • Температурный режим работы контроллера в среде от 0 до +75 градусов
  • Поддержку большого количества проводных протоколов (2 × RS-485, 1 × CAN, 2 × 1-Wire/дискретные входы, 4 × дискретные/аналоговые входы/выходы «открытый коллектор»)
  • Debian в качестве операционной системы на борту
  • Огромную базу модулей, расширяющих возможности контроллера
  • Корпус, имеющий крепление на DIN рейку
  • Два USB порта для подключения флешек, USB стиков ZigBee и Z-wave, да и в целом любую периферию.
  • Поддержка производства комплектующих модуля на ближайшие 5 лет минимум.

Даже на одном голом контроллере уже можно много, что автоматизировать. Но об этом я расскажу позже 😉

Дополнительный функционал

По мне так это уже достойное решение за не такие большие деньги с огромным потенциалом. Однако, если Вы хотите расширить стандартную комплектацию, можно сделать это добавив нужные вам опции:

  • 2 разъема под сим карты для 2G/3G GSM модема (650 ₽ — 2 250 ₽)
  • Подключение к роутеру по WiFi + Bluetooth модуль (600 ₽)
  • Температурный режим работы контроллера в среде от -40 до +75 градусов (1 000 ₽)
  • Плата взаимодействия с оборудованием по протоколу KNX (5 000 ₽)
  • Аккумулятор, выполняющий роль ИБП как для контроллера, так и для подключенной к нему периферии (2 200 ₽)
  • GPS Модуль для определения координат контроллера (1 900 ₽)
  • Дополнительный порт RS-485 (1 200 ₽)
  • И многое другое

Лицензию на Z-Wave включать нет необходимости, она по сути не нужна. Также нельзя забывать, что дополнительно можно подрубить любое проводное и беспроводное китайское, корейское, японское и прочее железо, которое может работать по совместимым протоколам.

Собственные модули Wiren Board

Модули делятся на два вида: стыкируемые (i2c) и проводные (ModBus)

Cтыкируемые (i2c) — если упростить, это максимальная простота инсталляции и каждый модуль становится одним целым с контроллером, при этом достигается максимальная скорость работы. Тут вы можете ознакомиться с полным перечнем оборудования.

Проводные (ModBus) — один из проприетарных стандартов пришедших из промавтоматизации во всей красе, это прям стандартные провода со всеми своими плюсами и минусами . Тут вы можете ознакомиться с полным перечнем оборудования .

Ну и в общем, как это выглядит в установленном виде на примере моей инсталяции:

В следующих статьях я подробно опишу, когда и какое оборудование нужно выбирать для решения конкретных задач.

И самое интересное, как это использовать?

На самом деле тут огромная туча вариантов. Вы можете взять себе модуль реле для управления глупыми лампочками и управлять ими напрямую из Вайрона (на их модулях реле есть сухие контакты под выключатели). Можете управлять этими же лампочками через сторонние радиовыключатели. А еще можно по MQTT забирать состояние через любой другой контроллер Умного дома, который поддерживает эту технологию, и управлять оттуда. Приобретаем модуль ввода вывода, подключаем к нему любые проводные глупые выключатели и вот, мы уже управляем любыми другими устройствами, подключенными к Вашему контроллеру, получая сигнал о нажатии кнопки на Wiren Board. Вы можете настроить с помощью него практически всё, что угодно. Управление светом, отоплением, ИК-техникой, снятие показаний со счетчиков, получение информации о температуре, влажности, CO2, качестве воздуха и многое другое.

Подведем итоги

Компания, как и ее устройства зарекомендовали себя исключительно с положительной стороны. Об этом говорит не только их опыт в интеграции на промышленных объектах, но и отзывы людей. По своему опыту могу это только подтвердить.

Относительная простота подключения I2C модулей и крепление, которое позволяет разместить контроллер и его допы в электрощитке. А также большое количество самых разнообразных модулей. Контроллеры базируются на ОС Linux с открытым исходным кодом, а разрабатываемые устройства имеют протоколы взаимодействия I2C и Modbus. Ребята еще на этапе изготовления и сборки оборудования собственноручно тестируют каждый элемент для поддержания качества своего продукта. Все это — несомненные плюсы, которые надо учитывать при выборе.

Но не будем забывать и о небольшой ложке дегтя. На данный момент я выявил у производителя следующие минусы, которые могут Вас смутить:

  • Неочевидная и запутанная в некоторых местах WiKi по устройствам
  • Сложность выбора нужного именно Вам под Ваши запросы железа на сайте производителя
  • Недружественный родной веб интерфейс контроллера и как вывод из этого сложная первоначальная настройка оборудования
  • Даже для начальной настройки и простых задач порой приходится лезть в SSH
  • I2C хорош своей простотой, но есть небольшие нюансы с электронаводками
  • Modbus подразумевает, что проводов будет много, а также дополнительно можно столкнуться с проблемами тонкого конфигурирования сети.

Напоминаю, что это обзорная статья, чтобы познакомиться с системой и дальше я постараюсь расписать Вам на своем опыте, с какими трудностями столкнулся и как их решал. Как Вы поняли, это будет цикл статей по Wiren Board. В них мы рассмотрим все тонкости, от подключения датчиков и плат расширения до настройки WiFi на самом устройстве. А также на простых примерах я покажу, как можно настроить управление светом или получить уровень CO2 в Вашей комнате.

В прошлой статье мы рассмотрели программирование микроконтроллера ESP32, распаянных на материнской плате Lavritech V7.1 Lite компонентов (Ethernet интерфейса, LoRa модуля и т. д.) и внутренних подключаемых модулей, в этой статье мы разберём программирование внешних Wiren Board блоков на DIN-рейку.

В ассортименте Wiren Board имеется огромное количество таких блоков на все случае жизни и изначально они рассчитаны на работу с «родными» Wiren Board контроллерами, хотя ничто не мешает использовать их и в связке с каким-то другим контроллером.

До появления Lavritech V7.1 Lite не существовало сторонних решений прямо рассчитанных на подключение и использование Wiren Board блоков, но теперь мы можем пользоваться всем этим богатством в своих проектах на ESP32.

Осталось только разобраться как программировать Wiren Board блоки отдельно от Wiren Board контроллеров…

Пещера Алладина

Wiren Board разработала для своей экосистемы множество дополнительных блоков на DIN-рейку. Фактически, там присутствует полный ассортимент блоков, которые могут понадобиться домашнему или профессиональному автоматизатору для решения своих задач. Блоки эти хорошего качества, выпускаются давно и имеют отработанную и проверенную временем и множеством инсталляций схемотехнику.

Другими словами, на рынке есть развитая экосистема строительных блоков для автоматизации, которую мы можем использовать в своих проектах со своими (не Wiren Board) контроллерами. До последнего времени не существовало сторонних решений, прямо рассчитанных на подключение и использование Wiren Board блоков, и требовалось создавать какие-то переходники для подключения таких блоков к сторонним контроллерам.

Теперь появился Lavritech V7.1 Lite, который штатным образом рассчитан на подключение и работу с Wiren Board блоками (и внутренними модулями) — мы можем просто выбирать нужные нам блоки из каталога Wiren Board и использовать их в своих проектах.

На мой взгляд это просто здорово — набрал нужную конфигурацию, залил прошивку и ввёл контроллер в строй.

Из всего богатства внешних подключаемых Wiren Board блоков на DIN-рейку в моём распоряжении оказались три популярных модели, это:

WIRENBOARD WBIO-DI-WD-14 (14 универсальных дискретных входов)
WIRENBOARD WBIO-AI-DV-12/4-20mA (12 аналоговых входов 4-20 мА)
WIRENBOARD WBIO-DO-R10A-8 (8 релейных выходов 7 A)

Далее мы и разберём их устройство, назначение и примеры их программирования. Поняв основные принципы работы с этими блоками, вы сможете выбирать и использовать в своих проектах различные модели таких блоков из обширного каталога Wiren Board (а также, возможно, и других производителей).

Общие принципы подключения

Для начала давайте разберём общие принципы подключения Wiren Board блоков к контроллерам, в нашем случае к контроллеру Lavritech V7.1 Lite.

Как вы помните из предыдущих статей, эти блоки стыкуются к контроллеру и между собой при помощи 10-контактного разъёма. Это стандартный Wiren Board разъём и все такие блоки совместимы с ним, то есть их можно не боясь (что-то «замкнуть») стыковать друг с другом на DIN-рейке.

На фото ниже вы можете видеть межблочный Wiren Board разъём на правой боковой стенке контроллера Lavritech V7.1 Lite.

На материнской плате этот разъём выглядит следующим образом:

Распиновка разъёма предельно простая, он содержит линии земли и питания (3,3 и 5 В), линии I2C интерфейса и сигнала прерывания.

Отдельно выведены 4 адресные линии. Эти пины задают адрес конкретного блока в цепочке подключённых модулей на DIN-рейке. Адрес задаётся тем или иным сочетанием потенциалов («0» или «1») на адресных пинах.

Сама система адресации компанией Wiren Board не раскрывается и о ней мы можем судить только косвенно — по результатам собственных экспериментов и слухам от «бывалых» пользователей экосистемы Wiren Board.

Насколько удалось установить, адресные линии внутри каждого блока «закручиваются» (меняют порядок соединений во входном и выходном разъёмах), тем самым обеспечивая автоматическую адресацию (идентификацию) до 4-х блоков каждого типа на линии. Отсюда ограничения в официальной документации на подключение до 4-х блоков одного типа в цепочке (и прочие ограничения).

В практическом плане, подобная система адресации переводит проблему идентификации отдельных блоков в цепочке на уровень программной реализации и требует от программиста понимания соответствующей проблематики.

Примечание. (Забавным) следствием подобной системы является то, что один и тот же блок Wiren Board будет иметь разные I2C адреса в зависимости от его физического расположения в цепочке блоков на DIN-рейке.

Ниже представлен наглядный пример подключения блока Wiren Board WBIO-DO-R10A-8 к материнской плате Lavritech V7.1 Lite.

С основными принципами подключения Wiren Board блоков к контроллерам всё понятно, далее переходим к разбору работы с конкретными моделями блоков.

Распиновка

Приведу распиновку Lavritech V7.1 Lite. В контексте подключения внешних блоков на DIN-рейку, из всего этого разнообразия нас интересуют только пины I2C интерфейса SCL (32) и SDA (33).

Блок Wiren Board WBIO-DI-WD-14

Блок Wiren Board WBIO-DI-WD-14 — это модуль на DIN-рейку с 14-ю универсальными дискретными входами, шириной 2U. Может использоваться для получения данных от различных датчиков, контактов и т. п.

На крышке корпуса приведены типовые варианты использования входов, а на сайте производителя есть документация, подробно описывающая характеристики этого блока.

Цитата. Предназначен для подключения импульсных счетчиков, кнопок, датчиков с выходом «сухой контакт», ввода дискретных сигналов, контроля целостности цепи. Содержит 14 универсальных входов типа «сухой контакт» и определения наличия низкого напряжения с групповой гальванической развязкой. Режим работы зависит от выбранной схемы подключения.

Поскольку с техникой мы на «ты», то разбираем блок, добираемся до печатной платы и выясняем, что WBIO-DI-WD-14 построен на популярной микросхеме I2C расширителя портов MCP23017, что делает всё остальное делом техники — найти соответствующую Arduino библиотеку и подключить этот блок к Lavritech V7.1 Lite не составляет никаких проблем.

Нам также понадобится вспомогательная библиотека Adafruit_BusIO.

Подключаем кнопку к 1-у входу (и контакту iGND), далее в скетче определяем пины I2C интерфейса платы Lavritech V7.1 Lite и задаём адрес I2C блока.

I2C адрес блока (методом подбора) определяем из диапазона 0x20-0x27 или запускаем I2C сканер и получаем нужный нам текущий адрес WBIO-DI-WD-14 на шине. Те же же самые манипуляции с адресом можно реализовать в готовой прошивке — можно либо дать возможность пользователю задавать конкретный адрес блока или в автоматическом режиме сканировать I2C шину и программно определять подключённые блоки.

Тестовый скетч:

/*
  Wiren Board WBIO-DI-WD-14 test (Lavritech V7.1 Lite)
  I2C MCP23017
*/

#include <Adafruit_MCP23X17.h>

#define I2C_SDA 33
#define I2C_SCL 32

#define I2C_ADR 0x27

#define BUTTON_PIN 0  // button is attached to MCP23017 pin

Adafruit_MCP23X17 mcp;

void setup() {
  Serial.begin(115200);
  Serial.println(F("MCP23017 DI test starting..."));

  Wire.begin(I2C_SDA, I2C_SCL);
  
  if (!mcp.begin_I2C(I2C_ADR)) {
    Serial.println(F("Error"));
    while(true);
  }

  mcp.pinMode(BUTTON_PIN, INPUT);
}

void loop() {
  Serial.print(F("Button ")); Serial.print(BUTTON_PIN);
  if (mcp.digitalRead(BUTTON_PIN)) {
    Serial.println(" Pressed");
  } else {
    Serial.println(" not Pressed");
  }
  delay(1000);
}

Проверяем работу скетча и убеждаемся, что всё работает так, как надо. Как я уже заметил, всё остальное — дело техники. В готовой прошивке можно реализовать любую логику работы с 14-ю входными сигналами блока Wiren Board WBIO-DI-WD-14.

Теперь переходим к работе с аналоговыми входами.

Блок Wiren Board WBIO-AI-DV-12/4-20mA

Блок Wiren Board WBIO-AI-DV-12/4-20mA — это модуль на DIN-рейку с 12-ю аналоговыми входами (4-20 мА), шириной 3U.

Назначение блока очевидно из его названия, цитата с официального сайта:

12 однополярных входов 4-20 мА, групповая гальваническая развязка. Предназначен для измерения аналоговых сигналов 4-20 мА. Типичное применение модуля — получение данных с датчиков с токовым выходом: термометры, датчики давления и т. д.

Схема подключения токового датчика к WBIO-AI-DV-12/4-20mA с сайта производителя:

Отжимаем четыре защёлки (кстати, разбирается всё достаточно легко), снимаем нижнюю крышку блока и видим нижнюю сторону печатной платы WBIO-AI-DV-12/4-20mA.

Вынимаем плату из корпуса, достаём лупу и находим 3 микросхемы ADS1115, которые и обеспечивают работу 12-и аналоговых входов (3 микросхемы по 4 линии на каждую).

ADS1115 — это многоканальный 16-битный АЦП с I2C интерфейсом. Поскольку на плате находится сразу 3 таких чипа, то и на I2C шине они видятся как 3 устройства с разными I2C адресами. С этим связаны и специфические ограничения, о которых говорится на официальном сайте, цитата:

В отличие от других устройств, WBIO-AI-DV-12/4-20 мА можно подключать только один, но зато можно подключать девятым модулем в линейке боковых модулей, в дополнение к обычным восьми. При этом, для правильной адресации, не стоит ставить его между модулями одного типа, т. е. он должен занимать первую, пятую или девятую позицию.

(«Особенно мне понравились первая, пятая и девятая революции…» © классика)

Теперь, вооружившись полученными (сакральными) знаниями мы можем создать скетч и интегрировать блок WBIO-AI-DV-12/4-20 мА в свою систему (прошивку). Нужно только не забыть подключить нужную библиотеку Adafruit_ADS1X15.

Задаём I2C адрес (0x48) первой микросхемы ADS1115, подключаем тестовый датчик к первому аналоговому входу блока WBIO-AI-DV-12/4-20 мА и запускаем скетч в работу.

/*
  Wiren Board WBIO-AI-DV-12/4-20mA test (Lavritech V7.1 Lite)
  I2C ADS1115
*/

#include <Adafruit_ADS1X15.h>

#define I2C_SDA 33
#define I2C_SCL 32

#define I2C_ADR0 0x48
#define I2C_ADR1 0x49
#define I2C_ADR2 0x4A

Adafruit_ADS1115 ads;  // 16-bit version

void setup() {
  Serial.begin(115200);
  Serial.println(F("ADS1115 test starting..."));

  Wire.begin(I2C_SDA, I2C_SCL);

  if (!ads.begin(I2C_ADR0)) {
    Serial.println(F("Error"));
    while(true);
  }
}

void loop() {
  int16_t adc0, adc1, adc2, adc3;
  float volts0, volts1, volts2, volts3;

  adc0 = ads.readADC_SingleEnded(0);
  adc1 = ads.readADC_SingleEnded(1);
  adc2 = ads.readADC_SingleEnded(2);
  adc3 = ads.readADC_SingleEnded(3);

  volts0 = ads.computeVolts(adc0);
  volts1 = ads.computeVolts(adc1);
  volts2 = ads.computeVolts(adc2);
  volts3 = ads.computeVolts(adc3);

  Serial.print("AIN0: "); Serial.print(adc0); Serial.print(" ("); Serial.print(volts0); Serial.println("V)");
  Serial.print("AIN1: "); Serial.print(adc1); Serial.print(" ("); Serial.print(volts1); Serial.println("V)");
  Serial.print("AIN2: "); Serial.print(adc2); Serial.print(" ("); Serial.print(volts2); Serial.println("V)");
  Serial.print("AIN3: "); Serial.print(adc3); Serial.print(" ("); Serial.print(volts3); Serial.println("V)");
  Serial.println();
  delay(5000);
}

И снова всё работает как надо и так, как и ожидалось — блок Wiren Board WBIO-AI-DV-12/4-20 мА полностью в нашей власти и мы можем делать с ним всё, что захотим в своей системе.

Ну и для полноты картины далее попробуем подключить к нашей системе не только входы, но и выходные реле.

Блок Wiren Board WBIO-DO-R10A-8

Блок Wiren Board WBIO-DO-R10A-8 — это модуль на DIN-рейку с 8-ю релейными выходами (7 A), шириной 3U. Самоидентификация модуля с сайта производителя:

Предназначен для прямого управления маломощной нагрузкой (до 7А) без больших пусковых токов: сигнальные лампы, промежуточные контакторы. Не подходит для коммутации блоков питания и светодиодных ламп.

Ну что ж, как говорится «скромно, но со вкусом». Без лишних церемоний снимаем верхнюю крышку и вскрываем сам блок WBIO-DO-R10A-8.

Внутри всё ожидаемо, немного покопавшись в начинке, выясняем, что общением с контроллером занимается микросхема I2C расширителя портов MCP23008, а в управлении реле ей помогает матрица транзисторов Дарлингтона ULN2803.

Поскольку MCP23008 — это родная сестра ранее рассмотренной микросхемы MCP23017, то и для работы с ней подходит та же библиотека Adafruit-MCP23017.

Создаём скетч и щёлкаем реле как хотим, в своё удовольствие.

/*
  Wiren Board WBIO-DO-R10A-8 test (Lavritech V7.1 Lite)
  I2C MCP23008
*/

#include <Adafruit_MCP23X08.h>

#define I2C_SDA 33
#define I2C_SCL 32

#define I2C_ADR 0x20

#define RELAY_PIN 0 // Relay attached to MCP23008 pin

#define PERIOD 5000

Adafruit_MCP23X08 mcp;

void setup() {
  Serial.begin(115200);
  Serial.println(F("MCP23008 DO test starting..."));

  Wire.begin(I2C_SDA, I2C_SCL);
  
  if (!mcp.begin_I2C(I2C_ADR)) {
    Serial.println(F("Error"));
    while(true);
  }

  mcp.pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
  Serial.println(F("ON"));
  mcp.digitalWrite(RELAY_PIN, HIGH);
  delay(PERIOD);
  
  Serial.println(F("OFF"));
  mcp.digitalWrite(RELAY_PIN, LOW);
  delay(PERIOD);
}

Дублируем включение и выключение реле выводом соответствующих строк в Serial.

На этом заканчиваем разбор подключения типовых блоков Wiren Board к контроллеру Lavritech V7.1 Lite, из приведённых примеров вам должны быть понятны принципы интеграции Wiren Board блоков в свои проекты.

Заключение

Как оказалось, подключение к контроллеру и программирование Wiren Board блоков на DIN-рейку (ассортимент которых очень широк) — это простое и полезное дело — можно с лёгкостью расширить базовый функционал как Lavritech V7.1 Lite, так и любого другого контроллера, благо для интеграции нужно соединить всего несколько линий питания и GPIO.

Понравилась статья? Поделить с друзьями:
  • Троксерутин таблетки цена инструкция по применению при варикозе ног отзывы
  • Амоксиклав суспензия 500 мг инструкция по применению для детей цена
  • Свечи бенатекс инструкция по применению цена отзывы аналоги цена
  • Гербицид нео инструкция по применению цена
  • Руководство по эксплуатации система обеззараживания медицинских отходов микроволновая стериус