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

Материал из Wiren Board
Строка 1: Строка 1:
<languages/>
== Архитектура ПО Wiren Board ==
<translate>
<!--T:1-->
Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты.


== Веб-интерфейс == <!--T:2-->
[[File:MQTT.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]]
[[Файл:Веб-интерфейс - главная.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-->
Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install'').


<!--T:15-->
Также у нас есть собственный '''debian-репозиторий''' ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list'').
Также у нас есть собственный debian-репозиторий ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list'' или в новых версиях ''/etc/apt/sources.list.d/contactless.list'').


<!--T:16-->
Весь исходный код доступен на  [https://github.com/contactless/ https://github.com/contactless/]. Там можно почерпнуть примеры для разработки собственного ПО.
Весь исходный код доступен на  [https://github.com/contactless/ https://github.com/contactless/]. Там можно почерпнуть примеры для разработки собственного ПО.


=== MQTT ===
[[MQTT | '''Очередь сообщений MQTT''']] - "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на [http://en.wikipedia.org/wiki/MQTT Википедии].
[[File:Mqtt_wb6.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]]


MQTT - очередь сообщений, "скелет" программной архитектуры Wiren Board. [http://en.wikipedia.org/wiki/MQTT Базовая информация по MQTT на Википедии].
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.
 
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, транзисторный выходы, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.


Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.
Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.
Строка 41: Строка 17:
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.


Подробнее смотрите [[MQTT]].
[[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]]
'''[[Веб-интерфейс Wiren Board]]''' работает непосредственно на контроллере. В нём можно:
*следить за состоянием контроллера и подключённых устройств и управлять ими
*подключать устройства к контроллеру
*настраивать контроллер и обновлять его ПО
*писать правила на встроенном движке
*настраивать SMS и email уведомления
*смотреть на графике историю значений (например, температуры)


=== Веб-интерфейс === <!--T:20-->
'''[[Движок правил wb-rules]]''' позволяет создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке.


Основная статья: [[Веб-интерфейс Wiren Board]].
Для работы с SCADA-системами есть:
 
Веб-интерфейс работает непосредственно на 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]]
* [[Zabbix support]]
* [[Шлюз Modbus TCP]]
* [[Шлюз Modbus TCP]]
* [[Драйвер SNMP]]
* [[Драйвер SNMP]]


</translate>
[[Как разрабатывать ПО для Wiren Board]] - статья для программистов.
 
[[Обновление прошивки]]

Версия 17:32, 7 июня 2018

Архитектура ПО Wiren Board

Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО

Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный порт. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (apt-get install).

Также у нас есть собственный debian-репозиторий releases.contactless.ru, в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл /etc/apt/sources.list).

Весь исходный код доступен на https://github.com/contactless/. Там можно почерпнуть примеры для разработки собственного ПО.

Очередь сообщений MQTT - "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на Википедии.

Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.

Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.

Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.

Главная страница веб-интерфейса

Веб-интерфейс Wiren Board работает непосредственно на контроллере. В нём можно:

  • следить за состоянием контроллера и подключённых устройств и управлять ими
  • подключать устройства к контроллеру
  • настраивать контроллер и обновлять его ПО
  • писать правила на встроенном движке
  • настраивать SMS и email уведомления
  • смотреть на графике историю значений (например, температуры)

Движок правил wb-rules позволяет создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через веб-интерфейс и пишутся на простом Javascript-подобном языке.

Для работы с SCADA-системами есть:

Как разрабатывать ПО для Wiren Board - статья для программистов.

Обновление прошивки