Последние обновления:
24.07.21 - Добавлена поддержка обратной связи(управления) на Node и Gateway режимах.
12.07.21 - Оптимизация работы спящего режима в режиме Node на RTOS прошивках. OTAA сейчас работает в спящем режиме.
11.07.21 - Добавлена бинарная отправка в Node.
На RTOS прошивках с 4.12.19 имеются небольшие изменение в интерфейсе настройки и добавлена поддержка ОТАА и плана частот !!
20.12.19 - сейчас шаблон отправки задается на вкладка lora. Конструктор строк не требуется.
Поддерживаются чипы:
SX1272, SX1273 - частоты 860-1020 мгц
SX1276, SX1277 - частоты 137-1020 мгц
SX1278 - частоты 137-525 мгц (разновидность SX1276, SX1277)
SX1279 - частоты 137-960 мгц (разновидность SX1276, SX1277)
Обратите внимание, что необходимо использовать частоты разрешенные в Вашей стране.
Для России: 868,7-869,2 (25 мвт), 864,0-865,0 (запрещено вблизи аэропортов), 433,075-434,79 (10мвт)
Поддерживаемые протоколы: Lora
Подключение радиомодуля по SPI к ESP8266:
CLK 14
MOSI 13
MISO 12
SS 15*
RESET 16*
Подключение радиомодуля по SPI к ESP32:
CLK 5
MOSI 27
MISO 19
SS 17*
RESET 18*
* - GPIO доступны для изменения в дополнительных настройках опции.
На RTOS прошивках доступно подключение GPIO прерывания GPIO INT(DIO0) радиомодуля для эффективного использования ресурсов при режиме приема Gateway. Значение -1(минус один) - не используется GPIO.
При установке значения GPIO RESET в -1(минус один) функция не используется !
Одновременная работа совместно с другими SPI опциями на данный момент не поддерживается !
Use PA BOOST PIN - включение передачи через вывод PA BOOST радиочипа.
Frequency plan/Inv mode - включение использования плана частот включая инвертирование сигнала на Node. Настройка доступна при включенной опции плана частот.
Invert mode - включение инвертирование сигнала на прием на Node, при использовании с Gateway Wifi-Iot отключить ! Настройка доступна при выключенной опции плана частот.
Power TX - установка мощности передачи, доступные значения: 3-14, 20. Для России максимально разрешенная - 14.
SF - Фактор расширения спектра (Spreading Factor). Диапазон 7 по 12: 7 - максимальная скорость и минимальное время в эфире, 12 - максимальное расстояние.
BW - Ширина спектра радиосигнала (кГц). Для России разрешена только 125 кГц.
Freq - установка частоты приема и передачи. Установить частоту можно только ту, которую поддерживает чип.
Open - без шифрования.
ABP(Activation by Personalization) - поддержка шифрования со статичными ключами.
OTAA(Over-The-Air Activation) - поддержка шифрования с обменом ключей(только Node)
Модуль может работать в качестве одноканального шлюза, собирающий данные с удаленных датчиков на базе ESP или основанных на других м/к. Данные с датчиков могут передаваться в любые облачные сервисы, поддерживаемые проектом.
Реализовано отображение метрик на главной странице модуля.
В нижней части страницы настроек будет отображаться список активных Node, где доступна информация: счетчик передач, уровень сигнала, время последнего выхода на связь. Далее отображается последняя строка принятых данных в виде hex или текста в зависимости от режима работы.
Поддержка MAC команд: Поддерживается только ответ на запрос времени с Node.
Требуется указать номер шлюза, по умолчанию 1.
При выборе режима ниже перейдя по ссылке Nodes options, можно ввести параметры Node устройств.
Данный режим в качестве шлюза не поддерживается.
Настройка опции на Gateway не требуется - вся настройка на Node.
Опция включается дополнительно в шестеренке опции. Формат данных используется аналогично как в опции NRF24 Hub.
В настройках ноды требуется ввести структуру пакета в поле Data structure, если поле пустое, то используем текстовый формат.
Основные типы данных:
T -Температура, 2 байта int. значение умножено на 10(1 знак после запятой);
H- Влажность, 2 байта uint. значение умножено на 10(1 знак после запятой);
L - Long данные, 4 байта, например разнообразные счетчики передач или счетчики импульсов. 4 байтовая переменная;
С - Аналогично L;
А - АЦП или другие 16 битные данные , 2 байта;
B - Простое одно байтовое значение;
G - для передачи значений чтения/состояния GPIO;
1..9 - указывает количество пропускаемых байт в структуре,эти данные не будут нигде отображаться. Актуально, если нужно пропустить несколько байт в пакете. Аналогично не выводятся данные, если названия переменных указать в нижнем регистре.
Дополнительные флаги(дописываются перед основными): R - обратный порядок байтов(старший байт первый). S - значение с 2 знаками после запятой. Т.е. если принимаем температуру то пишем не просто T , а RT , если применяется старший байт первым.
Вега СИ-11 : [0=1]1B5BCCCC (фильтр по нулевому байту, он должен быть равен 1)
Dragino LHT65 : RARSTRH1RST
Передача команд включается дополнительно в шестеренке опции "Обратная связь" , доступно только на ESP8266(RTOS) и ESP32. Передача команд доступна только при включенном шифровании !
Отправка HTTP GET командами:
[ip адрес]/lorasend?nd=Y&txt=команда- отправка текста
[ip адрес]/lorasend?nd=Y&hex=команда - отправка в виде hex строки
[ip адрес]/lorasend?nd=Y&dec=команда - отправка десятичных значений через запятую.
[ip адрес]/loraqueue - команды, находящиеся в очереди на отправку.
Параметр nd=Y задает номер node, кому отправить команду. Все команды попадают в очередь(не больше 4) и при выходе на связь Node команда отправляется (Class A).
Управление через MQTT:
Аналогичные топики для записи команды в ноду десятичный режим через запятые и hex формат, где Х - номер ноды.
login/hostname/[set/]lorasenddecХ
login/hostname/[set/]lorasendhexХ
Модуль может работать в полноценном режиме Node LoraWan с шифрованием и обменом MAC командами по Class A, работает с любыми шлюзами Lora. Так же доступен режим без шифрования(не рекомендуется), совместим только с Gateway Wifi-Iot прошивкой.
Node может работать в качестве удаленного хаба-датчика, где нет доступа к интернету, при этом собирать данные с других модулей ESP через wifi (используя VSENS или D2D) или работать как независимый модуль со спящим режимом. При этом WIFI, если не требуется, можно отключить в меню main, далее можно включить safe mode включающий WIFI и веб только для настройки устройства .
Общие настройки режима работы:
Send Mask - шаблон(маска) отправки в текстовом виде(как в конструкторе строк). При включенной поддержке бинарных данных вместо данной настройки будет доступна ссылка на вкладку настроек отправки бинарных данных.
Send interval - период отправки данных. Не засоряйте эфир частыми отправками данных, допустима частая отправка только на минимальной мощности для тестов.
Node ADDR - номер данной ноды (датчика).
Destination ADDR - номер шлюза куда отправлять, по умолчанию 1.
Enable ACK - разрешить ACK для подтверждения доставки пакета.
Требуется ввести адрес устройства DevAddr , выданный сервером и ключи AppSkey, NwkSkey.
Требуется ввести идентификаторы Device EUI и Application EUI , а так же ключ AppKey. При успешном соединении (join) сервер задает адрес устройства DevAddr.
Данный режим поддерживает только ESP8266(RTOS) и ESP32.
Формат строки в поле Send Mask должен быть в виде X:YYY;X:YYY;X:YYY; , где X - тип метрики (доступны метрики t и h), YYY - значение метрики. Пример: t:_DHTT1_;h:_DHTH1_;
Поддержка бинарного формата включается в шестеренке опции и заменяет текстовый формат.
В настройках Lora модуля будет доступна ссылка Configure binary metrics на страницу формирования данных , где требуется выбрать необходимые датчики:
Требуется выбрать метрику из списка, при этом, если метрика имеет несколько номеров, то требуется указать это в поле Num.
Поле Num заполняется просто числом -номером датчика, например для датчика DS1820.
Или заполняется значением через дефис: 3-5, например для D2D, где первое число обозначает номер удаленного устройства , второе число - номер датчика на данном устройстве.
Если поле Num оставить пустым, то оно установиться в первый номер 1 или 1-1.
Ниже будет показана строка в виде списка количества байт на каждую метрику, а так же готовый шаблон для вставки в Gateway на базе wifi-iot прошивки.
Дробные значения передаются целыми со смещением точки в виде целого(не float) числа. Количество знаков конкретного датчика можно увидеть на главной странице модуля.
При ошибке датчика будет посылаться значение 25500. Возможно смещение данных при ошибке датчика, если значение датчика 4 байта(32 бита).
Прием команд и управление с Gateway
Прием данных включается дополнительно в шестеренке опции "Обратная связь" , доступно только на ESP8266(RTOS) и ESP32. Передача команд доступна только при включенном шифровании ! При включенной данной опции модуль умеет отвечать на ack принятых команд (режим Confirmed) в LoraWan сети. Возможно добавить поддержку ADR(адаптация скорости). Поддерживается обмен MAC командами, в том числе и запрос времени с шлюза.
Поддерживаются бинарные команды:
Команда | Назначение | Пример |
---|---|---|
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 градусов |
До 16 кода команды размер параметров команды строго 3 байта, с 16 - строго 2 байта. Можно подать несколько команд подряд.
Список команд позже может быть расширен.
Значение YY YY подразумевает отправку 2-х байтового значения(младший байт первый). Пример значение 300 - это 01 2С в hex , отправляем 2C 01
Обратите внимание, что , например на The Things Network, значения требуется отправлять в hex формате.
Опция Lora в режиме Node поддерживает работу в спящем режиме, но для этого на данный момент требуется обязательно отключать wifi.
Примерное время работы с учетом инициализации радиомодуля и отправки данных - примерно 4 секунды. При подключении к сети(Join) в режиме OTAA время достигает до 10 секунд.
Для работы в качестве node в сети LoraWan с полноценными многоканальными шлюзами требуется список частот для работы в конкретной сети. В этом случае частоты перебираются по списку каждую передачу. При использовании одноканального шлюза опцию использовать не требуется.
Данная настройка находится в шестеренке и включается дополнительно на вкладке опции.
Сейчас план частот имеет следующие варианты:
0 - нет плана частот, одноканальный режим.
1 - План частот для России 868 мгц.
2 - План частот для Европы 868 мгц
При использовании плана частот настройка частоты в прошивке не действует. Доступно как на ABP так и на OTAA
Включает необходимое управление wifi антенной (16 GPIO), инвертирует GPIO RESET для Lora радиомодуля.
Используемые GPIO: 18 - RESET, 17 - SS. GPIO 23 - GPIO INT
https://github.com/maksms/wifi-iot-cda/blob/master/rapid/lora/README.md