Lavritech L1 Lite LoRaWAN: различия между версиями
(Релиз статьи) |
|||
(не показано 15 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Использование контроллера Lavritech L1 в качестве LoRaWAN шлюза с контроллером Wiren Board}} | {{DISPLAYTITLE: Использование контроллера Lavritech L1 в качестве LoRaWAN шлюза с контроллером Wiren Board}} | ||
== Общая информация == | == Общая информация == | ||
Строка 9: | Строка 8: | ||
[[Файл:Lavritech L1 Lite.png|300px|thumb|right|Lavritech L1 Lite]] | [[Файл:Lavritech L1 Lite.png|300px|thumb|right|Lavritech L1 Lite]] | ||
Для использования LoRaWAN-устройств с контроллером Wiren Board понадобится контроллер в исполнении [https://market.lavritech.com/turnkeysolution/kontroller-lavritech-l1-lite-lora-wan-ethernet/ '''Lavritech L1 Lite Lora Wan + Ethernet'''], который будет выступать в качестве LoRaWAN шлюза. | Для использования LoRaWAN-устройств с контроллером Wiren Board понадобится контроллер в исполнении [https://market.lavritech.com/turnkeysolution/kontroller-lavritech-l1-lite-lora-wan-ethernet/ '''Lavritech L1 Lite Lora Wan + Ethernet'''], который будет выступать в качестве LoRaWAN шлюза. | ||
Для использования протокола ModBus для связи шлюза и контроллера Wiren Board необходима прошивка '''LoRaWAN шлюз ModBus RTU slave MQTT'''. Выбирается на сайте производителя при заказе устройства. | Для использования протокола ModBus RTU для связи шлюза и контроллера Wiren Board необходима прошивка '''LoRaWAN шлюз ModBus RTU slave MQTT'''. Выбирается на сайте производителя при заказе устройства. | ||
В качестве оконечного устройства могут выступать разнообразные устройства: датчики температуры, охранные устройства, приборы учёта и др. | В качестве оконечного устройства могут выступать разнообразные устройства: датчики температуры, охранные устройства, приборы учёта и др. | ||
{{note|info| Обратите внимание устройства должны поддерживать протокол LoRaWAN, не все устройства работающие на физическом уровне LoRa поддерживают LoRaWAN.}} | {{note|info| Обратите внимание, устройства должны поддерживать протокол LoRaWAN, не все устройства работающие на физическом уровне LoRa поддерживают LoRaWAN.}} | ||
== Настройка контроллера Lavritech L1 Lite в качестве LoRaWAN шлюза == | == Настройка контроллера Lavritech L1 Lite в качестве LoRaWAN шлюза == | ||
=== Подключение к веб-интерфейсу контроллера Lavritech L1 Lite === | |||
# | # На контроллере нажмите и удерживайте кнопку «SAFE» и затем нажмите кнопку «RESET», так контроллер перейдёт в режим точки доступа WiFi, на устройстве с WiFi модемом найдите и подключитесь к открытой WiFi сети «Lavritech_L1», веб-интерфейс будет доступен по ip адресу 192.168.4.1 | ||
# | #Так же возможно проводное ethernet подключение, Lavritech_L1 получит ip адрес от вашего DHCP-сервера и веб-интерфейс будет доступен по его ip адресу. | ||
[http://wiki.lavritech.com/soft/lavritech/firmware/setup/ Инструкция производителя] | |||
=== Настройка котроллера Lavritech L1 Lite в режим шлюза LoRaWAN === | |||
# В веб-интерфейсе перейдите в '''Config:LoRa''' | |||
# В первой строке выберите '''Lora Gateway''' | |||
# Во второй строке выберите '''ABP''' | |||
[http://wiki.lavritech.com/soft/lavritech/firmware/options/lora/ Инструкция производителя] | |||
<gallery mode="traditional" widths ="260px" heights="200px"> | |||
Image: Lavritech l1 button.png| Кнопки «SAFE» и «RESET» | |||
Image: Lavritech L1 Lite wifi settings.png| Подключение к точке доступа Lavritech L1 Lite | |||
Image: Lavritech L1 Lite LoRa option.png| Настройка Lavritech L1 Lite в режим LoRa шлюза | |||
</gallery> | |||
== Подключение оконечных устройств в LoRaWAN шлюз по ABP == | == Подключение оконечных устройств в LoRaWAN шлюз по ABP == | ||
ABP(Activation by Personalization) — поддержка шифрования со статическими ключами. Работа в режиме ABP — это наилучший компромисс между безопасностью передачи данных и удобством (простотой) работы. Для работы в шлюз должны быть записаны DevAddr, AppSkey, NwkSkey полученные от производителя оконечного устройства (часто указаны на наклейке или в паспорте устройства). | ABP(Activation by Personalization) — поддержка шифрования со статическими ключами. Работа в режиме ABP — это наилучший компромисс между безопасностью передачи данных и удобством (простотой) работы. Для работы в шлюз должны быть записаны DevAddr, AppSkey, NwkSkey полученные от производителя оконечного устройства (часто указаны на наклейке или в паспорте устройства). | ||
# В | # В веб-интерфейсе Lavritech L1 Lite перейдите в Lora-Nodes option, выберите из номеров Node (каждый номер соответствует подключенному оконечному устройству) | ||
# | # Заполните графы: | ||
#*'''DevAddr''' — адрес устройства. | #*'''DevAddr''' — адрес устройства. | ||
#*'''TimeOut''' — | #*'''TimeOut''' — оставьте по умолчанию 65535 секунд (если за это время шлюз не получал данных от оконечного устройства — выводится сообщение об ошибке). | ||
#*'''AppSkey''' — сессионный ключ. | #*'''AppSkey''' — сессионный ключ. | ||
#*'''NwkSkey''' — сетевой сессионный ключ. | #*'''NwkSkey''' — сетевой сессионный ключ. | ||
#*'''Data structure''' — здесь | #*'''Data structure''' — здесь опишите структуру получаемого сообщения, можно найти в документации на оконечное устройство. | ||
Ниже представлена расшифровка | Ниже представлена расшифровка основных типов бинарных данных из документации на Lavritech L1 Lite, для заполнения поля Data structure: | ||
*T — Температура, 2 байта int, значение умножено на 10 (1 знак после запятой). | *T — Температура, 2 байта int, значение умножено на 10 (1 знак после запятой). | ||
*H — Влажность, 2 байта uint, значение умножено на 10 (1 знак после запятой). | *H — Влажность, 2 байта uint, значение умножено на 10 (1 знак после запятой). | ||
Строка 51: | Строка 57: | ||
====Пример подключения оконечного устройства к шлюзу LoRaWAN==== | ====Пример подключения оконечного устройства к шлюзу LoRaWAN==== | ||
[[Файл:Temperature_sensor_vega_td11.png|300px|thumb|right|Вега ТД-11]] | [[Файл:Temperature_sensor_vega_td11.png|300px|thumb|right|Вега ТД-11]] | ||
Подключаем оконечное устройство — датчик температуры Вега ТД-11. | |||
DevAddr, AppSkey, NwkSkey этого устройства указаны в паспорте устройства, | DevAddr, AppSkey, NwkSkey этого устройства указаны в паспорте устройства, а также их можно считать или сгенерировать новые в ПО Vega LoRaWAN Configurator при подключении датчика к ПК. | ||
Для заполнения графы Data structure, в инструкции на датчик, находим таблицу ''Пакет с текущими показаниями'': | Для заполнения графы Data structure, в инструкции на датчик, находим таблицу ''Пакет с текущими показаниями'': | ||
Строка 72: | Строка 78: | ||
На главной странице шлюза мы должны получить показания с датчика. | На главной странице шлюза мы должны получить показания с датчика. | ||
== Передача показаний от шлюза в контроллер Wiren Board по ModBus == | == Передача показаний от шлюза в контроллер Wiren Board по ModBus RTU == | ||
=== Настройка ModBus slave на контроллере Lavritech L1 Lite === | === Настройка ModBus slave на контроллере Lavritech L1 Lite === | ||
Открыть Config: ModBus_slave-Config RTU | Открыть Config: ModBus_slave-Config RTU | ||
Строка 78: | Строка 84: | ||
# Speed RS485 — Скорость обмена на шине | # Speed RS485 — Скорость обмена на шине | ||
=== Привязка данных полученных от | === Привязка данных полученных от шлюза к регистрам ModBus RTU === | ||
[[Файл:Lavritech modbus slave config.png|300px|thumb|right|Config ModBus Slave (RTU)]] | [[Файл:Lavritech modbus slave config.png|300px|thumb|right|Config ModBus Slave (RTU)]] | ||
В настойках шлюза выбираем ModBus_slave, здесь происходит привязка полученных данных к регистрам ModBus, которые будут доступны для чтения. | В настойках шлюза выбираем ModBus_slave, здесь происходит привязка полученных данных к регистрам ModBus RTU, которые будут доступны для чтения. | ||
# Регистр — по этому адресу будет доступны данные при запросе Modbus командой чтения '''Input registrer(0x04)'''. | # Регистр — по этому адресу будет доступны данные при запросе Modbus RTU командой чтения '''Input registrer(0x04)'''. | ||
# Далее выбор источника данных — Lora. | # Далее выбор источника данных — Lora. | ||
# Привязка регистров Num: A-B, где A — номер ноды, B — регистр ноды. | # Привязка регистров Num: A-B, где A — номер ноды, B — регистр ноды. | ||
Строка 89: | Строка 95: | ||
*2 Registr : 2 Lora Num: 1-5 (Температура в °C, умноженная на 10). | *2 Registr : 2 Lora Num: 1-5 (Температура в °C, умноженная на 10). | ||
=== Подключение контроллера Lavritech L1 Lite к контроллеру Wiren Board по шине RS-485 ModBus === | === Подключение контроллера Lavritech L1 Lite к контроллеру Wiren Board по шине RS-485 ModBus RTU === | ||
[[Файл:Lavritech modbus-serial-config-1.png|300px|thumb|right|Настройка канала батареи]] | [[Файл:Lavritech modbus-serial-config-1.png|300px|thumb|right|Настройка канала батареи]] | ||
[[Файл:Lavritech modbus-serial-config-2.png|300px|thumb|right|Настройка канала температуры]] | [[Файл:Lavritech modbus-serial-config-2.png|300px|thumb|right|Настройка канала температуры]] | ||
[[Файл:Vega td11 in WB.png|300px|thumb|right|Результат]] | [[Файл:Vega td11 in WB.png|300px|thumb|right|Результат]] | ||
*Подключите устройство к шине RS-485 с соблюдением распиновки, указанной на Lavritech L1 Lite. | *Подключите устройство к шине RS-485 с соблюдением распиновки, указанной на Lavritech L1 Lite. | ||
*Считать | *Считать данные со шлюза можно создав устройство через [[RS-485:Configuration via Web Interface#Устройство без шаблона | веб интерфейс]] или [[Connecting Third Party Devices to Wiren Board#Создание шаблона | создав шаблон]] | ||
==== Пример без шаблона ==== | ==== Пример без шаблона ==== | ||
#Открыть | #Открыть веб-интерфейс контроллера Wiren Board '''Настройки — Конфигурационные файлы — Настройка драйвера serial — устройств(необходимы права Администратора) — Добавить устройство''' | ||
#Порт — RS485-1 или RS485-2, в соответствии к какой шине подключен шлюз, тип устройства — '''Произвольные устройства''' - '''Устройство с протоколом Modbus'''. Нажать '''Добавить устройство'''. | #Порт — RS485-1 или RS485-2, в соответствии к какой шине подключен шлюз, тип устройства — '''Произвольные устройства''' - '''Устройство с протоколом Modbus'''. Нажать '''Добавить устройство'''. | ||
Строка 115: | Строка 121: | ||
#*Множитель — 0.1 | #*Множитель — 0.1 | ||
#Нажать — '''Сохранить настройки'''. | #Нажать — '''Сохранить настройки'''. | ||
#В | #В веб-интерфейсе Wiren Board выбрать Устройства, увидеть устройство '''Температура на улице''' с полями ''Заряд батареи'' и ''Температура''. | ||
====Пример с созданием шаблона ==== | ====Пример с созданием шаблона ==== | ||
Строка 158: | Строка 164: | ||
== Передача показаний от шлюза в контроллер Wiren Board по MQTT== | == Передача показаний от шлюза в контроллер Wiren Board по MQTT== | ||
Для передачи данных от шлюза к контроллеру Wiren Board можно вместо ModBus использовать MQTT | Для передачи данных от шлюза к контроллеру Wiren Board можно вместо ModBus RTU использовать MQTT | ||
Для этого контроллер Lavritech L1 Lite должен иметь сетевой доступ к контроллеру Wiren Board (обычно используется при использовании обоих котроллеров в одной локальной сети) | Для этого контроллер Lavritech L1 Lite должен иметь сетевой доступ к контроллеру Wiren Board (обычно используется при использовании обоих котроллеров в одной локальной сети) | ||
#В настройках Lavritech L1 Lite перейти к настройке публикаций сообщений в брокер MQTT установленный на Wiren Board Config:Servers. | #В настройках Lavritech L1 Lite перейти к настройке публикаций сообщений в брокер MQTT установленный на Wiren Board Config:Servers. | ||
Строка 165: | Строка 171: | ||
#Нажать SET, через несколько секунд в первой строчке должно быть сообщение '''OK''', если подключение прошло успешно. | #Нажать SET, через несколько секунд в первой строчке должно быть сообщение '''OK''', если подключение прошло успешно. | ||
#Данные от шлюза теперь публикуются в MQTT брокере контроллера Wiren Board (для удобства просмотра можно использовать [[MQTT Explorer|MQTT Explorer]]). | #Данные от шлюза теперь публикуются в MQTT брокере контроллера Wiren Board (для удобства просмотра можно использовать [[MQTT Explorer|MQTT Explorer]]). | ||
#Для получения данных в | #Для получения данных в веб-интерфейсе Wiren Board необходимо создать виртуальное устройство и связать его каналы с топиком в MQTT брокере с помощью [[Движок правил wb-rules | правила wb-rules]] | ||
====Пример правила с датчиком Вега ТД-11==== | ====Пример правила с датчиком Вега ТД-11==== | ||
<syntaxhighlight lang="json"> | <syntaxhighlight lang="json"> |
Текущая версия на 14:25, 27 июня 2024
Общая информация
LoRaWAN — это беспроводная технология передачи данных с дальностью действия до 15 км. Используется в домашней и коммерческой автоматизации.
На физическом уровне основана на методе модуляции LoRa (ЛоРа) и разработана специально для использования в интернете вещей (IoT).
Описание
Для использования LoRaWAN-устройств с контроллером Wiren Board понадобится контроллер в исполнении Lavritech L1 Lite Lora Wan + Ethernet, который будет выступать в качестве LoRaWAN шлюза. Для использования протокола ModBus RTU для связи шлюза и контроллера Wiren Board необходима прошивка LoRaWAN шлюз ModBus RTU slave MQTT. Выбирается на сайте производителя при заказе устройства.
В качестве оконечного устройства могут выступать разнообразные устройства: датчики температуры, охранные устройства, приборы учёта и др. Обратите внимание, устройства должны поддерживать протокол LoRaWAN, не все устройства работающие на физическом уровне LoRa поддерживают LoRaWAN.
Настройка контроллера Lavritech L1 Lite в качестве LoRaWAN шлюза
Подключение к веб-интерфейсу контроллера Lavritech L1 Lite
- На контроллере нажмите и удерживайте кнопку «SAFE» и затем нажмите кнопку «RESET», так контроллер перейдёт в режим точки доступа WiFi, на устройстве с WiFi модемом найдите и подключитесь к открытой WiFi сети «Lavritech_L1», веб-интерфейс будет доступен по ip адресу 192.168.4.1
- Так же возможно проводное ethernet подключение, Lavritech_L1 получит ip адрес от вашего DHCP-сервера и веб-интерфейс будет доступен по его ip адресу.
Настройка котроллера Lavritech L1 Lite в режим шлюза LoRaWAN
- В веб-интерфейсе перейдите в Config:LoRa
- В первой строке выберите Lora Gateway
- Во второй строке выберите ABP
Подключение оконечных устройств в LoRaWAN шлюз по ABP
ABP(Activation by Personalization) — поддержка шифрования со статическими ключами. Работа в режиме ABP — это наилучший компромисс между безопасностью передачи данных и удобством (простотой) работы. Для работы в шлюз должны быть записаны DevAddr, AppSkey, NwkSkey полученные от производителя оконечного устройства (часто указаны на наклейке или в паспорте устройства).
- В веб-интерфейсе Lavritech L1 Lite перейдите в Lora-Nodes option, выберите из номеров Node (каждый номер соответствует подключенному оконечному устройству)
- Заполните графы:
- DevAddr — адрес устройства.
- TimeOut — оставьте по умолчанию 65535 секунд (если за это время шлюз не получал данных от оконечного устройства — выводится сообщение об ошибке).
- AppSkey — сессионный ключ.
- NwkSkey — сетевой сессионный ключ.
- Data structure — здесь опишите структуру получаемого сообщения, можно найти в документации на оконечное устройство.
Ниже представлена расшифровка основных типов бинарных данных из документации на Lavritech L1 Lite, для заполнения поля Data structure:
- T — Температура, 2 байта int, значение умножено на 10 (1 знак после запятой).
- H — Влажность, 2 байта uint, значение умножено на 10 (1 знак после запятой).
- L — Long данные, 4 байта, например, счетчики импульсов.
- С — Аналогично L.
- А — АЦП или другие 16 битные данные, 2 байта.
- B — Однобайтовое значение.
- G — состояние GPIO.
- 1..9 — количество пропускаемых байт, эти данные не будут использоваться. Также данные не используются, если названия переменных указать в нижнем регистре.
Дополнительные флаги (дописываются перед основными):
- R — обратный порядок байтов (старший байт первый), т. е. если принимаем температуру то пишем не просто T, а RT, если старший байт передаётся первым.
- S — значение с 2 знаками после запятой.
Пример подключения оконечного устройства к шлюзу LoRaWAN
Подключаем оконечное устройство — датчик температуры Вега ТД-11.
DevAddr, AppSkey, NwkSkey этого устройства указаны в паспорте устройства, а также их можно считать или сгенерировать новые в ПО Vega LoRaWAN Configurator при подключении датчика к ПК.
Для заполнения графы Data structure, в инструкции на датчик, находим таблицу Пакет с текущими показаниями:
Соответственно наша запись в поле Data structure будет такая : BBBLTBBBB
Где:
- B — Тип пакета.
- B — Заряд батареи в %.
- B — Превышение лимитов ("0" - нет превышения, "1" - есть превышение).
- L — Время снятия показаний, передаваемых в данном пакете (unixtime UTC).
- T — Температура в °C, умноженная на 10.
- B — Нижний температурный лимит.
- B — Верхний температурный лимит.
- B — Причина передачи пакета.
- B — Состояние входов (битовое поле).
На главной странице шлюза мы должны получить показания с датчика.
Передача показаний от шлюза в контроллер Wiren Board по ModBus RTU
Настройка ModBus slave на контроллере Lavritech L1 Lite
Открыть Config: ModBus_slave-Config RTU
- Address — ModBus адрес контроллера Lavritech L1 Lite
- Speed RS485 — Скорость обмена на шине
Привязка данных полученных от шлюза к регистрам ModBus RTU
В настойках шлюза выбираем ModBus_slave, здесь происходит привязка полученных данных к регистрам ModBus RTU, которые будут доступны для чтения.
- Регистр — по этому адресу будет доступны данные при запросе Modbus RTU командой чтения Input registrer(0x04).
- Далее выбор источника данных — Lora.
- Привязка регистров Num: A-B, где A — номер ноды, B — регистр ноды.
В соответствии с нашим примером установим:
- 1 Registr : 0 Lora Num: 1-2 (Заряд батареи в %).
- 2 Registr : 2 Lora Num: 1-5 (Температура в °C, умноженная на 10).
Подключение контроллера Lavritech L1 Lite к контроллеру Wiren Board по шине RS-485 ModBus RTU
- Подключите устройство к шине RS-485 с соблюдением распиновки, указанной на Lavritech L1 Lite.
- Считать данные со шлюза можно создав устройство через веб интерфейс или создав шаблон
Пример без шаблона
- Открыть веб-интерфейс контроллера Wiren Board Настройки — Конфигурационные файлы — Настройка драйвера serial — устройств(необходимы права Администратора) — Добавить устройство
- Порт — RS485-1 или RS485-2, в соответствии к какой шине подключен шлюз, тип устройства — Произвольные устройства - Устройство с протоколом Modbus. Нажать Добавить устройство.
- Адрес устройства — адрес контроллера Lavritech L1 Lite
- Свойства — название устройства, ввести название устройства Температура на улице
- Нажатием +канал создаём канал устройства:
- Имя — Заряд батареи.
- Заполняем поля:
- Тип — range.
- Тип регистра — input.
- Адрес (десятичное значение) — 0.
- Нажатием "+канал" создаём ещё один канал устройства.
- Заполняем поля.
- Имя — Температура.
- Тип — temperature.
- Тип регистра — input.
- Адрес (десятичное значение) — 2.
- Множитель — 0.1
- Нажать — Сохранить настройки.
- В веб-интерфейсе Wiren Board выбрать Устройства, увидеть устройство Температура на улице с полями Заряд батареи и Температура.
Пример с созданием шаблона
Для удобства использования и редактирования можно создать шаблон по инструкции. Пример шаблона:
{
"device_type": "lora_temperature_sensor",
"title": "LoRa Temperature Sensor",
"group": "g-climate-sensor",
"device": {
"name": "LoRa Temperature Sensor",
"id": "lora_temperature_sensor",
"channels": [
{
"name": "Battery Charge",
"reg_type": "input",
"address": 0,
"type": "range",
"format": "u16"
},
{
"name": "Temperature",
"reg_type": "input",
"address": 2,
"type": "value",
"units": "deg C",
"format": "u16",
"scale": 0.1
}
],
"translations": {
"ru": {
"LoRa Temperature Sensor": "LoRa датчик температуры",
"Battery Charge": "Заряд батареи",
"Temperature": "Температура"
}
}
}
}
Передача показаний от шлюза в контроллер Wiren Board по MQTT
Для передачи данных от шлюза к контроллеру Wiren Board можно вместо ModBus RTU использовать MQTT Для этого контроллер Lavritech L1 Lite должен иметь сетевой доступ к контроллеру Wiren Board (обычно используется при использовании обоих котроллеров в одной локальной сети)
- В настройках Lavritech L1 Lite перейти к настройке публикаций сообщений в брокер MQTT установленный на Wiren Board Config:Servers.
- Включить функцию Enable send MQTT.
- Ввести ip адрес, порт, логин и пароль от MQTT брокера установленного на Wiren Board (по умолчанию порт 18883, логин и пароль отсутствуют).
- Нажать SET, через несколько секунд в первой строчке должно быть сообщение OK, если подключение прошло успешно.
- Данные от шлюза теперь публикуются в MQTT брокере контроллера Wiren Board (для удобства просмотра можно использовать MQTT Explorer).
- Для получения данных в веб-интерфейсе Wiren Board необходимо создать виртуальное устройство и связать его каналы с топиком в MQTT брокере с помощью правила wb-rules
Пример правила с датчиком Вега ТД-11
defineVirtualDevice('lora-device', {
title: 'Vega DT11' ,
cells: {
temperature: {
title: "Temperature",
type: "value",
value: "0",
units:"deg C",
scale:0.1
},
battery:{
title: "Battery",
type: "range",
value: "0",
readonly:true
}
}
});
trackMqtt("/Lavritech_L1/lors0102", function(message) {
dev["lora-device/battery"]=Number(message.value);
});
trackMqtt("/Lavritech_L1/lors0105", function(message) {
dev["lora-device/temperature"]=Number(message.value);
});