Wiren Board Software: различия между версиями
Fizikdaos (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Архитектура ПО Wiren Board == | == Архитектура ПО Wiren Board == | ||
[[File:DebianLinux.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]] | [[File:DebianLinux.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]] | ||
Wiren Board работает под управлением стандартной сборки Debian Linux 9 Stretch. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. | Wiren Board работает под управлением стандартной сборки Debian Linux 9 Stretch. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. | ||
Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install''). | Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install''). | ||
Также у нас есть собственный '''debian-репозиторий''' ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. | Также у нас есть собственный '''debian-репозиторий''' ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. | ||
Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list''). | Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list''). | ||
Весь исходный код доступен на [https://github.com/contactless/wirenboard https://github.com/contactless/wirenboard]. Там можно почерпнуть примеры для разработки собственного ПО. | Весь исходный код доступен на [https://github.com/contactless/wirenboard https://github.com/contactless/wirenboard]. Там можно почерпнуть примеры для разработки собственного ПО. | ||
[[Special:MyLanguage/MQTT | '''Очередь сообщений MQTT''']] — "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на [http://en.wikipedia.org/wiki/MQTT Википедии]. | [[Special:MyLanguage/MQTT | '''Очередь сообщений MQTT''']] — "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на [http://en.wikipedia.org/wiki/MQTT Википедии]. | ||
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле), записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств. | Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле), записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств. | ||
Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству. | Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству. | ||
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT. | Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT. | ||
[[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]] | [[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]] | ||
'''[[Special:MyLanguage/Веб-интерфейс Wiren Board|Веб-интерфейс Wiren Board]]''' работает непосредственно на контроллере. В нём можно: | '''[[Special:MyLanguage/Веб-интерфейс Wiren Board|Веб-интерфейс Wiren Board]]''' работает непосредственно на контроллере. В нём можно: | ||
Строка 38: | Строка 27: | ||
*смотреть графики истории значений параметров (например, температуры) | *смотреть графики истории значений параметров (например, температуры) | ||
'''[[Special:MyLanguage/Движок правил wb-rules|Движок правил wb-rules]]''' позволяет создавать собственные правила для контроллера, например: "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Special:MyLanguage/Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке. | '''[[Special:MyLanguage/Движок правил wb-rules|Движок правил wb-rules]]''' позволяет создавать собственные правила для контроллера, например: "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Special:MyLanguage/Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке. | ||
Для работы с SCADA-системами есть: | Для работы с SCADA-системами есть: | ||
* [[Special:MyLanguage/Zabbix support|Zabbix support]] | * [[Special:MyLanguage/Zabbix support|Zabbix support]] | ||
Строка 47: | Строка 34: | ||
* [[Special:MyLanguage/Драйвер SNMP|Драйвер SNMP]] | * [[Special:MyLanguage/Драйвер SNMP|Драйвер SNMP]] | ||
[[Special:MyLanguage/Как разрабатывать ПО для Wiren Board|Как разрабатывать ПО для Wiren Board]] — статья для программистов. | [[Special:MyLanguage/Как разрабатывать ПО для Wiren Board|Как разрабатывать ПО для Wiren Board]] — статья для программистов. | ||
[[Special:MyLanguage/Обновление прошивки|Обновление прошивки]] | [[Special:MyLanguage/Обновление прошивки|Обновление прошивки]] | ||
'''[[Special:MyLanguage/Node-Red|Node-RED]]''' - инструмент визуального программирования. | '''[[Special:MyLanguage/Node-Red|Node-RED]]''' - инструмент визуального программирования. | ||
Версия 11:56, 19 сентября 2020
Архитектура ПО Wiren Board
Wiren Board работает под управлением стандартной сборки Debian Linux 9 Stretch. Для архитектуры используемого процессора есть официальный порт. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (apt-get install).
Также у нас есть собственный debian-репозиторий releases.contactless.ru, в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл /etc/apt/sources.list).
Весь исходный код доступен на https://github.com/contactless/wirenboard. Там можно почерпнуть примеры для разработки собственного ПО.
Очередь сообщений MQTT — "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на Википедии.
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле), записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.
Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.
Веб-интерфейс Wiren Board работает непосредственно на контроллере. В нём можно:
- следить за состоянием контроллера и подключённых устройств и управлять ими
- подключать устройства к контроллеру
- настраивать контроллер и обновлять его ПО
- писать правила на встроенном движке
- настраивать SMS- и email-уведомления
- смотреть графики истории значений параметров (например, температуры)
Движок правил wb-rules позволяет создавать собственные правила для контроллера, например: "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через веб-интерфейс и пишутся на простом Javascript-подобном языке.
Для работы с SCADA-системами есть:
Как разрабатывать ПО для Wiren Board — статья для программистов.
Node-RED - инструмент визуального программирования.