Bluetooth: подключение датчиков
Прибор принимает данные от BLE-датчиков, слушая их рекламные (advertising) пакеты. Каждый интересующий параметр привязывается к своему слоту BTTAG, и дальше он живёт как обычный тег протокола: его можно отметить в пакете, прочитать командой, использовать в EasyLogic.
Работа по Bluetooth доступна на Galileosky 10, XS и 7x с прошивки 24.7.
Режим работы Bluetooth
Заголовок раздела «Режим работы Bluetooth»На Galileosky 10 и на 7x с прошивки 45.0 отдельной настройки «Режим Bluetooth» больше нет — прибор переключает режимы сам. В настройках Bluetooth остаются частота опроса, таймаут датчиков, имя устройства и сканер.
На более ранних прошивках 7x режим выбирается в настройках, а из
терминала — командой BLEMODE <n>. Команда работает и на актуальных
прошивках:
n | Режим | Что делает |
|---|---|---|
| 0 | DSPS (в старом интерфейсе — «Exigner») | Прозрачный последовательный канал поверх BLE |
| 1 | Sensors + EasyLogic | Приём данных от датчиков и передача пакетов в алгоритмы |
| 255 | Отключён | Радиомодуль выключен |
Это все значения, которые можно задавать. На младших приборах режим DSPS недоступен — минимальное значение там 1 (Sensors).
Не подставляйте в
BLEMODEзначения, которых нет в таблице. Команда их примет без ошибки, но Bluetooth после этого не поднимется, и никакого сообщения об этом не будет. Если так произошло, вернитесь к режиму 1 или 0.
Смена режима применяется сразу и сохраняется в конфигурации.
⚙ Открыть настройки Bluetooth
Частота опроса и таймаут датчиков
Заголовок раздела «Частота опроса и таймаут датчиков»BLEPOLLINGRATE <с> — периодичность обращения к датчикам, 1…10 сBTSENSTIMEOUT <с> — таймаут датчика, по умолчанию 60 сТаймаут датчиков — это время, по истечении которого данные в привязанных тегах обнуляются, если датчик пропал из зоны приёма. Так отличают «датчик молчит» от «датчик отдал ноль».
Имя, под которым прибор виден в эфире, задаётся командой BTNAME
(до 18 символов; если оставить пустым, после перезагрузки именем станет
GS <IMEI>). Собственный MAC-адрес прибора показывает BLEMAC,
состояние подсистемы — BLESTATE.
Какие датчики прибор разбирает сам
Заголовок раздела «Какие датчики прибор разбирает сам»Для этих семейств разбор рекламного пакета уже встроен — достаточно выбрать датчик и нужные параметры:
- Эскорт: ДУТ TD-BLE (прошивка датчика 1.2.0 и выше), метки ID-Tag;
- Технотон: ДУТ DUT-E S7, расходомеры DFM 100S7 и DFM 250DS7, датчик нагрузки на оси GNOM DDE S7, датчик положения GNOM DP S7;
- Mechatronics: ДУТ Eurosens Dominator BT;
- ELA: датчики движения, температуры, влажности, ускорения, магнитный, цифровой вход;
- Mielta: ДУТ Fantom;
- Eddystone и iBeacon — стандартные форматы маяков.
Всё остальное подключается разбором произвольных байтов рекламного пакета (см. ниже) или алгоритмом EasyLogic — см. «Bluetooth: устройства и алгоритмы».
Добавление датчика
Заголовок раздела «Добавление датчика»- На прошивках до 45.0 убедитесь, что режим Bluetooth — Sensors + EasyLogic. На Galileosky 10 и 7x с 45.0 этот шаг не нужен.
- В разделе настроек Bluetooth нажмите «Добавить датчик».
- На вкладке «Сканирование» запустите поиск и выберите устройство по MAC-адресу или имени. Если нужного устройства не видно, добавьте его на вкладке «Вручную», указав MAC и тип датчика.
- Отметьте параметры, которые нужно получать. RSSI (уровень сигнала) предлагается по умолчанию.
- Сохраните — параметры автоматически разложатся по свободным слотам.
Кнопка «Получить данные» показывает живые значения по настроенным параметрам: она использует то же сканирование, поэтому расшифровка идёт из последнего пакета соответствующего MAC-адреса.
⚙ Открыть сканер Bluetooth
Слоты и теги
Заголовок раздела «Слоты и теги»Каждый параметр занимает один слот BTTAG. На Galileosky 10, XS и 7x
доступно 64 слота (BTTAG0…BTTAG63); на приборах младшей линейки —
10.
Один датчик может занимать несколько слотов — по слоту на параметр. Освободить слот можно, удалив параметр или датчик целиком.
Теги, занятые одним датчиком, не должны использоваться для параметров другого: слот хранит и MAC, и смещение внутри пакета.
Чтобы значения уходили на сервер, отметьте соответствующие теги BTTAG в основном пакете.
⚙ Открыть настройки протокола
Формат слота
Заголовок раздела «Формат слота»Слот настраивается и читается одной командой:
BTTAG<n> <MAC>,<PARAM_ID>,<OFFSET>,<NUMBER>,<ENDIAN>,<DATA_LEN>| Поле | Значение |
|---|---|
MAC | MAC-адрес датчика без разделителей |
PARAM_ID | Идентификатор параметра, 0…255 |
OFFSET | Смещение в рекламном пакете, 0…255 |
NUMBER | Сколько байт читать, 1…4 |
ENDIAN | Порядок байтов: 0 — little-endian, 1 — big-endian |
DATA_LEN | Длина всего пакета, из которого берутся данные |
Запрос текущей настройки — BTTAG<n> без параметров; ответ вида
BTTAG0:44d295e1b840,1,3,2,0,0;.
Изменение слота пересобирает белый список и сбрасывает текущее значение тега.
Разбор произвольных байтов рекламного пакета
Заголовок раздела «Разбор произвольных байтов рекламного пакета»Если прошивка не знает устройство, в развёрнутом списке параметров, кроме самого рекламного пакета, будет виден только RSSI. Нужные значения из пакета вытаскиваются вручную:
- Запустите сканирование и найдите устройство по MAC или имени.
- Разверните список получаемых данных — появится рекламный пакет.
- Добавьте новую строку: именно она фиксирует полученный пакет. Работать напрямую с отображаемым пакетом нельзя, выбор байтов возможен только в добавленной строке.
- Выделите от 1 до 4 байт, из которых складывается значение.
- Задайте направление чтения (порядок байтов) и тег, в который значение будет записано.
- Остановите сканирование и примените настройки.
- Отметьте выбранный тег в основном пакете, чтобы значение уходило на сервер.
Пересчёт сырого значения в физическую величину (делители, смещения, знак) выполняет ПО мониторинга — прибор передаёт то, что прочитал.
Сканер произвольных данных доступен на 7x с прошивки 39.0 и на Galileosky 10 с прошивки 1.0.
Белый список MAC
Заголовок раздела «Белый список MAC»Белый список ограничивает, чьи пакеты прибор вообще принимает:
BTWL 0 — фильтрация выключенаBTWL 1 — фильтрация включенаОтдельной команды для наполнения списка нет: он собирается из MAC-адресов, прописанных в слотах BTTAG, и пересобирается при каждом изменении слота.
Не задавайте больше 10 MAC-адресов. Это аппаратный предел BLE-модуля. На одиннадцатом адресе прибор выключает фильтрацию целиком — даже при
BTWL 1, даже для первых десяти адресов. Лишний адрес не игнорируется: эфир становится полностью открытым.Прибор не сообщает об этом ни ошибкой, ни в настройках — единственный признак виден в диагностике строкой
wlRebuildFromCfg: … MACs exceed HW limit. Поэтому после наполнения слотов пересчитайте различные MAC-адреса вручную. Если их больше десяти, белый список для этой конфигурации неприменим — ограничивайте приём датчиков другим способом, например настройкой самих слотовBTTAG.
⚙ Открыть запись лога
Чтение значений из терминала
Заголовок раздела «Чтение значений из терминала»Значение любого тега, включая BTTAG, читается командой:
GETVALUEBYTAG <тег>[,<тег>,…]Номера перечисляются через запятую, в десятичном виде или с префиксом
0x; расширенный тег задаётся номером со смещением 0x10000
(например, 0x10041). Ответ — пары 0xNNNNN=<значение>. Типы, у которых
нет текстового представления, отдаются HEX-строкой с префиксом B_
(порядок байтов — big-endian).
⚙ Открыть терминал команд
Сканирование из терминала
Заголовок раздела «Сканирование из терминала»BTSCANSTART → BTSCAN STARTEDBTSCANSTOP → BTSCAN STOPPEDСканирование из терминала полезно, когда нужно быстро проверить, видит ли прибор устройство, не открывая раздел настроек.
См. также: Bluetooth: устройства и алгоритмы · Датчики температуры и влажности · Датчики уровня топлива