LoRa
Рисунок 1. Общий вид контроллера Lavritech с подключённой LoRa антенной.
Контроллеры Lavritech поддерживают работу с LoRa и могут выступать в качестве хаба (Gateway) или ноды (Node). Роль контроллера определяется решаемой в проекте задачей — хаб в основном получает данные, а нода передаёт (например, это может быть беспроводной датчик).
Рисунок 2. Разъём SMA для подключения LoRa антенны.
Для работы с LoRa контроллеры Lavritech должны быть укомплектованы LoRa модулем на чипах SX1276, SX1278 или подобных. В конструкции контроллера предусмотрен также SMA разъём для подключения LoRa антенны.
Рисунок 3. Место установки встроенного LoRa модуля
В типовом варианте для работы используется протокол LoRaWAN, а архитектура сети может быль различной, на усмотрение пользователя: могут использоваться как единичные прямые соединения шлюз — нода, так соединения с несколькими шлюзами или нодами, или работа с LoRa оборудованием сторонних производителей.
Предустановки LoRa в «Конструкторе прошивок»
Ниже представлены типовые предустановки LoRa (сделанные производителем) с которыми поставляются контроллеры Lavritech. При необходимости вы можете изменить их в «Конструкторе прошивок» (см. соответствующий раздел документации).
Здесь:
Добавлена поддержка обоих режимов работы Gateway и Node.
Выставлены номера GPIO для управления LoRa модулем: SS (21) и RESET (18). Это дефолтные настройки для контроллеров Lavritech (вы можете изменить их при необходимости).
План частот для Node — это настройка для работы в режиме шифрования OTAA (см. ниже). Обычно не используется, 0 — отключено.
Также указаны максимальное количество клиентов Gateway (35) и максимальное количество метрик (передаваемых данных, 20).
Поддержка бинарных данных — это возможность передавать не только текстовые данные, но и данные в цифровом (бинарном) виде.
Обратная связь — это возможность для шлюза не только получать данные, но и передавать нодам специальные команды.
GPIO INT(DIO0) — использование прерывания для получения данных (обычно не используется).
Настройки LoRa
Настройки LoRa, доступные пользователю контроллера, находятся в пункте меню «Lora».
Содержание этого пункта отличается для различных режимов работы LoRa (отключено/Gateway/Node). В изначальном состоянии, когда с LoRa отключена, эта страница имеет только основные настройки, общие и для режима шлюза и для режима ноды.
Здесь:
Disable/Gateway/Node — режим работы LoRa выключено/шлюз/нода
Gateway/Node — роль контроллера LoRa хаб/нода.
Use PA BOOST PIN — включение передачи через вывод PA BOOST радиочипа.
Invert mode — включение инвертирования направления передачи данных на прием для Node (применимо при выключенной опции плана частот).
Power TX — установка мощности передачи, доступные значения: 3-14 (для России максимально разрешенное значение — 14).
Freq — установка частоты работы (диапазоны 868/433 МГц). На скриншоте указана частота 869.10 МГц, находящаяся в разрешённом для России диапазоне 868.7-869.2 МГц.
CR — степень коррекции ошибок.
SF (Spreading Factor) — фактор расширения спектра. Диапазон от 7 (максимальная скорость) по 12 (максимальное расстояние).
BW — ширина спектра сигнала (для России только 125 кГц).
Обратите внимание: частота работы, CR, SF, BW должны совпадать для взаимодействующих LoRa шлюзов и нод.
Режимы шифрования Open/ABP/OTAA
Open — передача данных без шифрования (не рекомендуется использовать).
ABP(Activation by Personalization) — поддержка шифрования со статическими ключами. Работа в режиме ABP — это наилучший компромисс между безопасностью передачи данных и удобством (простотой) работы.
OTAA(Over-The-Air Activation) — поддержка шифрования с обменом ключей (обычно не используется)
Режим «ноды»
Начинать настройку работы LoRa рекомендуется с режима Node. Здесь можно указать основные настройки сетевого взаимодействия и быстро убедиться в работоспособности подключённого LoRa модуля (правильном его подключении и исправности). При переключении в режим «Lora Node» на странице настроек появляется дополнительный раздел «Node options».
Здесь можно задать интервал посылки данных («Send interval»). В данном случае это 60 секунд.
Система также генерирует DevAddr (адрес устройства) и FPort («номер порта фрейма») — эти настройки должны быть одинаковыми на взаимодействующих ноде и шлюзе.
И для взаимодействия в режиме ABP на ноде и шлюзе должны быть указаны одинаковые AppSkey и NwkSkey. По умолчанию в этих полях находятся по 32 символа «F», а пользователь должен заменить их на свои уникальные 32-битные ключи (см. скриншот выше).
Передача данных в бинарном формате
На этой странице также находится ссылка «Configure binary metrics» на которой можно задать тип и количество передаваемых нодой данных.
В данном случае можно указать 16 метрик (цифровых данных), тип которых можно выбрать из выпадающего списка. В нашем примере это состояние GPIO1. Система подсказывает, что размер метрики 1 байт, а маска расшифровки для шлюза — G (GPIO).
Проверка работоспособности LoRa
После установки всех настроек внизу страницы «Lora» появляется надпись «Frame Counter» и рядом значение успешно отосланных в эфир LoRa пакетов.
Если значение отосланных в эфир LoRa пакетов увеличивается, то это значит LoRa модуль подключён правильно и работает исправно.
Типы бинарных данных
Ниже представлена расшифровка основные типов бинарных данных:
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 знаками после запятой.
Режим шлюза
После переключения в режим шлюза, на странице настроек LoRa появляется дополнительный раздел «Gateway options».
В этом разделе можно задать настройки взаимодействия с подключёнными нодами — сетевой адрес, время ожидания, ключи шифрования и структуру (шаблон) передаваемых данных. В данном случае шлюз поддерживает подключение до 35 нод.
В этом примере на шлюз передаётся только одна метрика — состояние GPIO, которое в системе автоматически именуется «lors0101», что означает «метрика №1 с LoRa ноды №1». Таким же образом в системе автоматически именуются и все прочие LoRa метрики (данные). На странице «Metrics» можно увидеть все доступные в системе метрики, в том числе и «lors0101».
Отправка команд нодам при помощи HTTP GET
Шлюз может отправлять нодам специальные управляющие команды при помощи HTTP GET, для этого используются следующие шаблоны:
[ip адрес]/lorasend?nd=Y&txt=команда — отправка текста [ip адрес]/lorasend?nd=Y&hex=команда — отправка в виде hex строки [ip адрес]/lorasend?nd=Y&dec=команда — отправка десятичных значений через запятую. [ip адрес]/loraqueue — команды, находящиеся в очереди на отправку.
Параметр nd=Y задает номер ноды, которой нужно отправить команду, а сами команды могут быть в текстовом, десятичном или шестнадцатеричном виде. Команды попадают в очередь (до 4) и при выходе на связь соответствующей ноды — отправляются.
Формат команд
1 — перезагрузка модуля (1 — перезапуск модуля).
3, XX, YY YY — управление PWM (3,1,255,0 — установка 1 PWM в значение 255).
4, XX, YY YY — управление значением термостата (4,2,25,0 — установка 2 термостата в значение 25 градусов).
5, XX, YY YY — управление гистерезисом термостата (5,2,2,0 — установка гистерезиса 2 термостата в значение 2 градуса).
6, XX, YY ZZ — управление планировщиком заданий (6,1,12,30 — установка времени 12:00 на первом планировщике).
16, XX, ZZ — управление GPIO (16,3,1 — установка 3 GPIO в значение 1).
17, YY YY — установка интервала отправки Lora в формате минут (17,10,0 — установка интервала отправки в 10 минут).
18, YY YY — установка интервала отправки Lora в формате секунд (18,100,0 — установка интервала отправки в 100 секунд).
19, YY YY — установка интервала сна спящего режима в формате минут (19,10,0 — установка интервала сна в 10 минут).
20, YY YY — установка интервала сна спящего режима в формате секунд (20,100,0 — установка интервала сна в 100 секунд).
21, YY YY — управление температурой ПИД (21,26,0 — установка температуры ПИД в 26 градусов).
Управление через MQTT
Команды могут отправляться также при помощи MQTT. В этом случае топики для передачи команды ноде формируются по следующим шаблонам (десятичный и hex форматы, через запятые, где Х — номер ноды).
login/hostname/[set/]lorasenddecХ login/hostname/[set/]lorasendhexХ
Связанные темы
Настройка опций
ModBus
MCP23008
Где купить
Купить оборудование Lavritech можно в официальном интернет-магазине.