Универсальная интеграция датчиков
Введение
В данной инструкции мы хотим ознакомить пользователей с возможностью удобной интеграции любых BLE-датчиков с нашими приборами.
Для этого достаточно ознакомиться с протоколом производителя датчика, в котором рассылаются BLE-адверты.
Универсальная интеграция доступна на следующих устройствах:
Модель трекера |
L3|L3R |
A4 |
A4 WIFI |
A4 MAX |
B2 |
C4 |
|---|---|---|---|---|---|---|
Версия ПО
(не ниже)
|
0.03 |
0.11 |
0.01 |
0.11 |
0.02 |
0.01 |
Логика универсальной интеграции
Согласно установленным стандартам BLE, датчики транслируют в радио эфир открытые сообщения (адверты), представляющие из себя упорядоченный набор полей.
Структура полей состоит из трёх классов данных (LTV): длина, тип и данные по́ля.
Наиболее часто встречающиеся типы данных в адвертах, это:
Код |
Значение |
|---|---|
|
Flags (Флаги) |
|
Manufacturer Specific Data (Данные производителя) |
|
Complete Local Name (Имя устройства) |
|
Incomplete List of 128-bit Service Class UUIDs |
|
Complete List of 128-bit Service Class UUIDs |
Практика показывает, что полезную информацию производители датчиков размещают в поле 0хFF — «Manufacturer Specific Data», после которого мы начинаем отсчёт байтов B1, B2 и т.д.
Пример адверта
Примеры записи:
Передача однобайтового параметра в виртуальном датчикеFF#V200:[B1]Передача двухбайтового параметра в виртуальном датчике, способ big-endianFF#V200:[B1,B2]Передача двухбайтового параметра в виртуальном датчике, способ little-endianFF#V200:[B2,B1]Добавлена передача второго двухбайтового параметра в виртуальном датчикеFF#V200:[B1,B2];FF#V201:[B3,B4]Добавлена передача четырёхбайтового параметра в тэгеFF#V200:[B1,B2];FF#V201:[B3,B4];FF#T220:[B5,B6,B7,B8]Добавлена передача уровня сигнала в виртуальном датчикеFF#V200:[B1,B2];FF#V201:[B3,B4];FF#T220:[B5,B6,B7,B8];V202:[R]
Важно
Добавлена настройка формирования внеочередных пакетов при изменении значения параметра на указанное число
FF#T220:[B5,B6,B7,B8]!100 - формировать события при изменении значения параметра T220 каждые 100 единиц.Описание формата формулы в строке
Часть записи |
форма |
Описание |
|---|---|---|
Тип поля |
|
FF - код типа поля в шестнадцатеричном формате (обычно FF),за которым обязательно следует разделительный символ
# |
Параметр
для сервера
|
|
Виртуальный датчик, в котором будет передан результат работы
по формуле (до 3-х байт).
Допустимые номера
xxx = [200 .. 239] включительно, согласнонашему протоколу.
В системе мониторинга соответствуют параметрам
vs_200 .. vs_239 |
|
Тэг, в котором будет передан результат работы по формуле
(до 4-х байт).
Допустимые номера
xxx = [ 220 .. 229 ] включительно, согласнонашему протоколу.
В системе мониторинга соответствуют параметрам
val_10 .. val_19
|
|
Данные для
передачи
|
|
Набор данных адверта для записи в параметр для сервера -
через запятую указываются номера
байт данных адверта и их
порядок упаковки в виртуальный датчик или тэг
|
|
Уровень сигнала датчика для записи в параметр для сервера.
|
|
Триггер по
изменению
значения
|
|
Символ
! после квадратных скобок применяется дляформирования внеочередного пакета при изменении значения
параметра внутри этих скобок.
Число
xxx указывает, на сколько должно измениться значение(дельта) для формирования внеочередного пакета.
Например:
!50 - изменение более, чем на 50 единиц.
|
Разделитель
между
записями
|
|
Разделитель между формулами расчётов. В одном описании
может быть до 5-ти формул.
|
Внимание
Примеры формирования строки
Пример 1
Рассмотрим беспроводной датчик BASv6, работающем в протоколе BAS mini
Описание Manufacturer Specific Data протокола BAS mini
0x0201060EFF160F650601500085B001006012Запись |
Поле адверта |
Параметр для записи |
Значение из адверта |
|||
|---|---|---|---|---|---|---|
Запись 1 |
|
Выбираем
данные
производителя
|
|
Записываем
в параметр
val_11 |
|
Моточасы |
Запись 2 |
|
|
Записываем
в параметр
vs_201 |
|
Температура |
|
Запись 3 |
|
|
Записываем
в параметр
vs_202 |
|
Угол |
|
FF#T221:[B8,B9,B10,B11];FF#V201:[B13];FF#V202:[B6,B7]Также необходимо указать MAC-адрес интегрируемого датчика
Пример настройки устройства
В системе мониторинга мы видим переданные параметры:
Переданные данные в систему мониторинга
Пример 2
Рассмотрим беспроводной датчик TESLiOT One, работающем в протоколе TESLiOT protocol v1.0
Описание Manufacturer Specific Data протокола TESLiOT protocol v.1.0
0x02010618FFFFFF5453310F0A6839BCDA1E0A8080800000000A3F0988Допустим, мы хотим передавать на сервер мониторинга версию платы датчика, напряжение батарейки, температуру, влажность:
Запись |
Поле адверта |
Параметр для записи |
Значение из адверта |
|||
|---|---|---|---|---|---|---|
Запись 1 |
|
Выбираем
данные
производителя
|
|
Записываем
в параметр
vs_205 |
|
Версия
аппаратного
обеспечения
|
Запись 2 |
|
|
Записываем
в параметр
vs_206 |
|
Напряжение
Батарейки
|
|
Запись 3 |
|
|
Записываем
в параметр
vs_227 |
|
Температура |
|
Запись 4 |
|
|
Записываем
в параметр
vs_226 |
|
Влажность |
|
Внимание
В данном случае требуется записывать байты в обратном порядке для корректного отображения на сервере мониторинга, так как производитель датчика использовал способ big-endian.
FF#V205:[B6];FF#V206:[B12];FF#V227:[B23,B22];FF#V226:[B21,B20]Также необходимо указать MAC-адрес интегрируемого датчика
Пример настройки устройства
На сервере мониторинга Wialon мы видим пришедшие параметры:
Переданные данные в систему мониторинга