Wiren Board 5: различия между версиями

Строка 12: Строка 12:


Для начала работы с контроллером рекомендуется прочитать статью [[Special:MyLanguage/Wiren Board 5:Первое включение|'''Первое включение''']].
Для начала работы с контроллером рекомендуется прочитать статью [[Special:MyLanguage/Wiren Board 5:Первое включение|'''Первое включение''']].
Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты.
== Веб-интерфейс ==
[[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]]
[[Wiren Board]] имеет собственный, находящийся локально на устройстве веб-интерфейс. В нём можно:
*следить за состоянием контроллера и подключённых устройств и управлять ими
*подключать устройства к контроллеру
*настраивать контроллер и обновлять его ПО
*писать правила на встроенном движке
*настраивать SMS и email уведомления
*смотреть на графике историю значений (например, температуры)
Подробнее смотрите в статье [[Веб-интерфейс Wiren Board]].
== Архитектура ПО Wiren Board ==
=== Операционная система ===
Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install'').
=== Репозиторий и Git ===
Также у нас есть собственный debian-репозиторий ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list'').
Весь исходный код доступен на  [https://github.com/contactless/ https://github.com/contactless/]. Там можно почерпнуть примеры для разработки собственного ПО.
=== MQTT ===
[[File:MQTT.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]]
MQTT - очередь сообщений, "скелет" программной архитектуры Wiren Board. [http://en.wikipedia.org/wiki/MQTT Базовая информация по MQTT на Википедии].
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, транзисторный выходы, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.
Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.
Подробнее смотрите [[MQTT]].
=== Веб-интерфейс ===
Основная статья: [[Веб-интерфейс Wiren Board]].
Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает [http://nginx.org nginx] или лёгкий [http://manpages.ubuntu.com/manpages/lucid/man1/webfsd.1.html webfsd] (в зависимости от версии прошивки). Сам сайт написан на [https://angularjs.org/ AngularJS], сайт взаимодействует с MQTT через [http://en.wikipedia.org/wiki/WebSocket WebSocket].
=== Движок правил ===
Пользователи могут создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке.
Подробнее смотрите [[Движок правил wb-rules]].
== Прочее ==
* [[Zabbix support]]
* [[Шлюз Modbus TCP]]
* [[Драйвер SNMP]]


== Модульность контроллера ==
== Модульность контроллера ==