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

Материал из Wiren Board
(Импортирована новая версия из внешнего источника)
 
м (FuzzyBot переименовал страницу Программное обеспечение Wiren Board/ru в Wiren Board Software/ru без оставления перенаправления: Часть переводимой страницы Программное обеспечение Wiren Board.)
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
<languages/>
<languages/>
Wiren Board предоставляет как готовый веб-интерфейс для пользователей, так и возможности для собственной разработки. Исходные коды всего ПО открыты.
== Веб-интерфейс ==
[[Special:MyLanguage/Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]]
[[Special:MyLanguage/Wiren Board 4|Wiren Board 4]] имеет собственный, находящийся локально на устройстве веб-интерфейс. Это удобный способ управления подключенными устройствами и контроля подключённых датчиков.
=== Как зайти в интерфейс ===
Просто введите в адресную строку браузера IP-адрес контроллера. Также смотрите статью [[Special:MyLanguage/Как узнать IP-адрес контроллера|Как узнать IP-адрес контроллера]].
=== Что можно делать в интерфейсе ===
* управлять подключенными устройствами
* смотреть показания датчиков
* собирать устройства и датчики в панели (Dashboards)
Подробнее смотрите здесь - [[Wiren Board 4:Веб-интерфейс|Wiren Board 4:Веб-интерфейс]]


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


[[Special:MyLanguage/Файл:MQTT.png | thumb | 600px]]
   
 
=== Операционная система ===
 
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/ Github]. Там можно почерпнуть примеры для разработки собственного ПО.
 
 
=== MQTT ===
 
Wiren Board использует очередь сообщений MQTT ([http://en.wikipedia.org/wiki/MQTT статья на википедии]) в качестве единого стандарта сбора информации с внутренних модулей (реле, АЦП и т.д.) и внешних устройств (датчиков 1-Wire, устройств Modbus). Для каждого такого модуля и внешнего совместимого устройства разработан "драйвер", который передаёт данные в систему сообщений MQTT и обратно. Веб-интерфейс тоже берёт данные из этой системы сообщений, и все изменения, внесённые через него (например, включить реле) он отправляет туда же. Через ту же очередь сообщений работает и движок правил.
 
 
Подробнее смотрите [[Special:MyLanguage/MQTT|MQTT]].
 
 
=== Веб-интерфейс ===
 
Подробнее см.  [[Wiren Board 4:Веб-интерфейс|Wiren Board 4:Веб-интерфейс]]
 
Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает лёгкий [http://manpages.ubuntu.com/manpages/lucid/man1/webfsd.1.html webfsd]. Сам сайт написан на [https://angularjs.org/ AngularJS], сайт взаимодействует с MQTT через [http://en.wikipedia.org/wiki/WebSocket WebSocket].
 


=== Движок правил ===
[[File:DebianLinux.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]]


Можно создавать правила, например, "если значение с датчика температуры ниже 18С, включи нагреватель". Правила пишутся на языке Javascript. Подробнее смотрите
Wiren Board работает под управлением стандартной сборки Debian Linux 9 Stretch. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт].
[[Special:MyLanguage/Движок правил wb-rules|Движок правил wb-rules]].
Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install'').


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


== Как работать с модулями контроллера и портами ввода-вывода из своих программ ==
Весь исходный код доступен на  [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/GSM/GPRS|GSM/GPRS]] ===
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле), записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.


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


=== [[Special:MyLanguage/Wi-Fi|Wi-Fi]] ===
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.


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


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


Для работы с SCADA-системами есть:
* [[Special:MyLanguage/Zabbix support|Zabbix support]]
* [[Special:MyLanguage/Шлюз Modbus TCP|Шлюз Modbus TCP]]
* [[Special:MyLanguage/Драйвер SNMP|Драйвер SNMP]]


=== [[Special:MyLanguage/GPIO|GPIO]] ===
[[Special:MyLanguage/Как разрабатывать ПО для Wiren Board|Как разрабатывать ПО для Wiren Board]] — статья для программистов.


[[Special:MyLanguage/Обновление прошивки|Обновление прошивки]]


=== [[Special:MyLanguage/Watchdog|Watchdog]] ===
'''[[Special:MyLanguage/Node-Red|Node-RED]]''' - инструмент визуального программирования.

Текущая версия на 18:30, 26 января 2021

Другие языки:

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

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

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 - инструмент визуального программирования.