Wiren Board Software: различия между версиями
Kilpio (обсуждение | вклад) |
|||
(не показано 56 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты. | |||
== Веб-интерфейс == <!--T:2--> | |||
[[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]] | |||
[[Wiren Board]] имеет собственный, находящийся локально на устройстве веб-интерфейс. В нём можно: | |||
*следить за состоянием контроллера и подключённых устройств и управлять ими | |||
*подключать устройства к контроллеру | |||
*настраивать контроллер и обновлять его ПО | |||
*писать правила на встроенном движке | |||
*настраивать SMS и email уведомления | |||
*смотреть на графике историю значений (например, температуры) | |||
Подробнее смотрите в статье [[Веб-интерфейс Wiren Board]]. | |||
== Архитектура ПО Wiren Board == <!--T:10--> | |||
=== Операционная система === <!--T:12--> | |||
<!--T:13--> | |||
Wiren Board работает под управлением стандартной сборки Debian Linux 9 (stretch). Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install''). | |||
=== | === Репозиторий и Git === <!--T:14--> | ||
<!--T:15--> | |||
Также у нас есть собственный debian-репозиторий ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list''). | |||
<!--T:16--> | |||
Весь исходный код доступен на [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]]. | |||
== | === Веб-интерфейс === <!--T:20--> | ||
< | |||
Основная статья: [[Веб-интерфейс 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]. | |||
=== Движок правил === <!--T:23--> | |||
Пользователи могут создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке. | |||
Подробнее смотрите [[Движок правил wb-rules]]. | |||
== Как работать с модулями контроллера и портами ввода-вывода из своих программ == <!--T:25--> | |||
=== [[Special:MyLanguage/GSM/GPRS|GSM/GPRS]] === <!--T:26--> | |||
=== [[Special:MyLanguage/Wi-Fi|Wi-Fi]] === <!--T:27--> | |||
=== [[Special:MyLanguage/RS-485|RS-485]] === <!--T:28--> | |||
=== [[Special:MyLanguage/GPIO|GPIO]] === <!--T:29--> | |||
=== [[Special:MyLanguage/Watchdog|Watchdog]] === <!--T:30--> | |||
== Прочее == | |||
* [[Zabbix support]] | |||
* [[Шлюз Modbus TCP]] | |||
* [[Драйвер SNMP]] | |||
</translate> | |||
| | |||
| | |||
| | |||
|- | |||
|- | |||
| | |||
Версия 11:55, 7 июня 2018
Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты.
Веб-интерфейс
Wiren Board имеет собственный, находящийся локально на устройстве веб-интерфейс. В нём можно:
- следить за состоянием контроллера и подключённых устройств и управлять ими
- подключать устройства к контроллеру
- настраивать контроллер и обновлять его ПО
- писать правила на встроенном движке
- настраивать SMS и email уведомления
- смотреть на графике историю значений (например, температуры)
Подробнее смотрите в статье Веб-интерфейс Wiren Board.
Архитектура ПО Wiren Board
Операционная система
Wiren Board работает под управлением стандартной сборки Debian Linux 9 (stretch). Для архитектуры используемого процессора есть официальный порт. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (apt-get install).
Репозиторий и Git
Также у нас есть собственный debian-репозиторий releases.contactless.ru, в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл /etc/apt/sources.list).
Весь исходный код доступен на https://github.com/contactless/. Там можно почерпнуть примеры для разработки собственного ПО.
MQTT
MQTT - очередь сообщений, "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на Википедии.
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, транзисторный выходы, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.
Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.
Подробнее смотрите MQTT.
Веб-интерфейс
Основная статья: Веб-интерфейс Wiren Board.
Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает nginx или лёгкий webfsd (в зависимости от версии прошивки). Сам сайт написан на AngularJS, сайт взаимодействует с MQTT через WebSocket.
Движок правил
Пользователи могут создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через веб-интерфейс и пишутся на простом Javascript-подобном языке.
Подробнее смотрите Движок правил wb-rules.