Прошивки INSPARK Lite
1. Общие сведения
ПО контроллера Inspark Lite работает на процессоре ESP32, код для контроллеров представляет собой бинарный файл, который прошивается на плату.
В настойщее время выпускаются 3 вида прошивки:
- Прошивка Inspark-Lite provisioner (p/n INSPARL-LITE-С) - прошивка обеспечивает раздачу конфигурационных данных всем узлам типа Inspark-Lite Node по BLE протоколу. Контроллер обеспечивает обмен данных с устройствами и их передачу только по MQTT соединению
- Прошивка Inspark-Lite Node (p/n INSPARL-LITE-S) - типовой узел MESH сети Inspark, обеспечивает обмен данных с устройствами и их передачу по MQTT соединению, либо по BLE MESH сети до узла с MQTT соединением.
- Прошивка Inspark-Lite Zigbee - прошивка для платы Inspark-Lite Zigbee - выполняет роль контроллера для Zigbee устройств и обмен данными с основной платой Inspark-Lite (см. материал по контроллеру)
2. Первый запуск
После подачи питания контроллер находится в режиме начального конфигурирования. Обнаружить контроллер можно в списке WiFi сети.
Инфо
Обычно, Wifi сеть должна иметь название DRON-<SN контроллера>.
Контроллер всегда можно перевести в режим начального конфигурирования путем нажатия на кнопку сброса конфигурации больше 10 сек.
3. Инициализация контроллера
3.1. Ручная настройка
Для подключения к контроллеру необходимо найти его AP Wifi и подключится к нему по адресу 10.10.10.1
.

Перейти на вкладку Settings и задать обязательные параметры:

Параметр | значения | Комментарии |
---|---|---|
MQTT брокер | IP адрес | обязательный параметр, без его ввода, контроллер не перейдет в рабочий режим |
MQTT user | user | пользователь MQTT брокера |
MQTT password | password | пароль MQTT брокера |
WIFI режим | AP, STA | STA режим требует задания WPA пароля |
Режим совместимости | 0,1,2 | 0- только Ethernet, 1 - только Wifi, 2 - Оба |
BLE | Да/нет | подключать ли стек BLE |
Zigbee | Да/нет | подключать ли стек Zigbee, при наличии платы расширения |
Дата/Время | Формат даты времени | Необязательный параметр, метка времени не используется в работе контроллера |
Нажать на кнопку Save и после сообщения об успешном сохранении нажать кнопку Restart.
Инфо
Если не введено значение для MQTT брокера, контроллер автоматически загрузится в режим начальной конфигурации.
Если режим совместимости выбран 1 (только WiFi) и режим AP, контроллер загрузится в режим начальной конфигурации. Лучше всего устанавливать режим совместимости в Ethernet (0).
3.2. Автоматическая настройка по MESH сети
Для большого количества контроллеров режим ручной настройки может быть неудобен и занимать значительное время. В этом случае, настройка большого количества контроллеров можно проводить автоматически по BLE протоколу при создании MESH сети.
Порядок настройки режима первоначальной настройки:
- Выполнить ручную настройку (п. 3.1) контроллера Inspark-Lite-provisioner. Это контроллер с продуктовым номером INSPARL-LITE-С.
- Убедится в корректности настройки (наличие подключения к MQTT).
- Включить контроллеры узлы (первоначальное включение) в досягаемости от контроллера провизионера (до 50 метров в помещениях). Контроллеры узлы имеют продуктовый номер INSPARK-LITE-S.
- Контроллера узлы автоматически получат от провизионера все необходимые настройки (MQTT брокер, настройки сети).
3.3. Настройка устройств опроса
В настоящее время существует только один метод передать конфигурацию опроса контроллеру.
- Собрать json-файл конфигурации.
- Отправить этот файл контроллеру с помощью команды публикации на брокер MQTT к которому подключен контроллер. Если контроллер работает только по BLE каналу, ему конфигурацию передаст по MESH сети контроллер-провизионер.
Формат команды:
mosquitto_pub -t /Controller/In/Command -f <файл конфигурации> -h <MQTT-брокер>
Если брокер требует авторизацию, то включите в командную строку опции -u И -P
Файл должен быть построен по следующим правилам:
C;111;DRVCONF_DRONE;<SN контроллера>;<json конфигурация опроса устройств>
где,
C - признак команды;
111 - произвольный номер;
DRVCONF_DRONE - команда на обновление конфигурации опроса;
SN контроллера - серийный номер контроллера, его можно узнать на web странице контроллера, вкладка Info, либо подписаться на MQTT брокере на топиу /system/#
json конфигурация опроса устройств - специальный формат для описания опроса устройств. Формат описан в разделе Универсального драйвера п.3.
Совет
Следует учесть, что Inspark-Lite поддерживает только ModBus RTU, Modbus TCP и ZigBee (при наличии платы Inspark-Zigbee).
Пример конфигурационного файла для опроса 2-х датчиков по ModBus RTU приведен ниже:
C;111;DRVCONF_DRONE;d8bc38e8ffd4;[
{
"connection": {
"enabled": true,
"baud_rate": 115200,
"com_options": "7E1",
"name": "rs_2",
"poll_interval": 60000,
"rto": 2000,
"sto": 2000,
"type": "base.rs"
},
"devices": [
{
"name": "hvac-1",
"sid": "16",
"type": "mb-rtu",
"cname": "msw2"
},
{
"name": "hvac-2",
"sid": "27",
"type": "mb-rtu",
"cname": "msw2"
}
],
"parameters": [
{
"cname": "msw2",
"config": {
"channels": [
{
"name": "Temperature", "reg_type": "input", "reg_addr": 0, "value_type": "i16", "scale": 0.1,"error_value": "0x7FFF"
},
{
"name": "Humidity", "reg_type": "input", "reg_addr": 1, "value_type": "i16","scale": 0.1,"error_value": "0xFFFF"
},
{
"name": "Sound Level", "reg_type": "input", "reg_addr": 3, "value_type": "u16", "scale": 0.01
},
{
"name": "CO2","reg_type": "holding","reg_addr": 8,"value_type": "u16","error_value": "0xFFFF"
},
{
"name": "Illuminance", "reg_type": "input", "reg_addr": 9, "value_type": "u32","scale": 0.01,"error_value": "0xFFFFFFFF"
},
{
"name": "Input Voltage", "reg_type": "input","reg_addr": 121,"value_type": "u16","scale": 0.001
},
{
"name": "External Sensor 1", "reg_type": "input","reg_addr": 6, "value_type": "i16","scale": 0.0625,"error_value": "0x7FFF"
},
{
"name": "External Sensor 2", "reg_type": "input", "reg_addr": 7, "value_type": "i16","scale": 0.0625,"error_value": "0x7FFF"
}
]
}
}
]
}
]
Результат опроса контроллер отправляет в топики
/devices/msw2_16/controls/#
/devices/msw2_27/controls/#
Описание выходных топиков приведено в разделе Универсального драйвера п.1
3.4. Контроль работы контроллера
Переход в режим контроля осуществляется однократным нажатием на кнопку сброса.
Контролле перезагрузится в режим WiFi сети AP. Подключится к контроллеру можно по адресу 10.10.10.1
. На вкладке Configure будет идти лог контроллера и справа в окне конфигурация опрашиваемых устройств.

Для выход из режима контроля необходимо нажать на кнопку перезагрузки на вкладке Configure
4. Работа с ZIGBEE
Работа дрона с беспроводными устройствами по Zigbee протоколу реализована на отдельной плате "INSPARK Lite ZB" модулем ESP32-C6, работающем в режиме шлюза и предоставляющим основной транспортно-прикладной функционал для обеспечения согласованного функционирования всех узлов Zigbee сети. Zigbee плата устанавливается на основную плату дрона посредством колодок разъемного штыревого соединения. Информационный обмен с основной платой обеспечен посредством стандартного UART протокола и проприетарным прикладным протоколом в формате JSON.
4.1. Процедура привязки zigbee устройства к шлюзу
- Отправить с дрона на zigbee шлюз команду "ADD"
{
"adm": {
"cmd": "add"
}
}
Шлюз открывает Zigbee сеть на 30 секунд для процедуры сопряжения.
Перевести устройство в режим сопряжения нажатием на его скрытую кнопку и удержанием в течение 5 секунд, после чего устройство будет мигать встроенным светодиодом до окончания процедуры привязки.
По завершению процедуры привязки индикация на устройстве выключается, а сам шлюз отправляет информацию о новом устройстве в дрон
{
"new": {
"name": "znode001"
}
}
- Устройство привязано и теперь отправляет на дрон значения параметров и событий
Пример датчика температуры
{
"meas": {
"name": "znode001",
"cmd": 0,
"name_param": "tmp",
"value": 2345
}
}
Пример 4х кнопочного пульта
{
"meas": {
"name": "znode002",
"cmd": 0,
"name_param": "rem",
"value": 2
}
}
Все зарегистрированные устройства отправляют на дрон свои параметры под своими уникальными именами (znode001-znode064).
Каждый параметр отправляется в отдельной посылке поочередно друг за другом.
Имена параметров "name_param" закодированы короткими именами.
Параметры измерения:
- tmp - Температура
- hum - Влажность
- mot - Движение
- btn - Кнопка
- wlk - Протечка
- ias - Безопасность
- opn - Открытие
- smk - Дым
- rem - Пульт
- swt - Выключатель
- lum - Освещенность
- bat - Батарея
- pow - Напряжение
- ukn - Неизвестный параметр
Параметры управления:
- rel - Реле (вкл/выкл)
- dim - Диммер (яркость/мощность)
- lmp - Лампа (вкл/выкл)
- alr - Сигнал тревоги (вкл/выкл)
4.2. Процедура удаления zigbee устройств со шлюза
Емкость шлюза на модуле ESP32-C6 составляет 64 zigbee устройства, поэтому для освобождения от неиспользуемых зарегистрированных узлов необходимо использовать соответствующую процедуру.
- Отправить с дрона на zigbee шлюз команду "DEL"
{
"adm": {
"cmd": "del",
"names": [
"znode001",
"znode024",
"znode055"
]
}
}
- При нахождении zigbee устройства в онлайн режиме оно будет удалено сразу без задержек. Если это малопотребляемый батарейный тип устройства, то удаление произойдет только в момент его просыпания, когда оно прослушивает сеть на наличие информации адресуемой ему, либо, для ускорения процесса, необходимо принудительно разбудить его в течении 10 секунд после запуска процедуры нажатием на его скрытую кнопку.
4.3. Отправка параметра или команды на zigbee устройство
Применяется для изменения режимов работы или включения/выключения исполнительных устройств (умные розетки, лампы, реле, диммеры)
- Отправить с дрона команду "SET" с именем параметра или команды для zigbee устройства
{
"adm": {
"cmd": "set",
"name": "znode001",
"param": "onoff",
"value": 1
}
}
- Применение параметра происходит сразу для устройства с постоянным питанием или отложенно для низкопотребляемых устройств во время его пробуждения.
4.4. Сервисные режимы
В прикладном режиме функционирования Zigbee сети для конечного пользователя существуют только имена устройств, все остальные параметры при необходимости могут быть запрошены специальными командами и предоставляют информацию обо всех зарегистрированных на шлюзе именах устройств и их адресах.
4.4.1. Чтение параметра непосредственно с zigbee устройства
- Отправить с дрона на zigbee шлюз команду "GET" с именем параметра
{
"adm": {
"cmd": "get",
"name": "znode001",
"param": "name_param"
}
}
- В дрон возвращается значение запрошенного параметра либо сразу для устройства с постоянным питанием, либо отложенно для низкопотребляемых устройств во время его пробуждения
{
"resp": {
"name": "znode001",
"param": "name_param",
"value": 50
}
}
4.4.2. Получение короткого или длинного адреса zigbee устройства по его имени
- Отправить с дрона на zigbee шлюз команду "GET" со указанием типа адреса "short" или "long"
{
"adm": {
"cmd": "get",
"name": "znode001",
"addr": "short"
}
}
- В дрон возвращается значение запрошенного адреса
{
"resp": {
"name": "znode001",
"addr": "short",
"value": "34ab"
}
}
4.4.3. Получение списка зарегистрированных на шлюзе zigbee устройств
- Отправить с дрона на zigbee шлюз команду "ALLNODES"
{
"adm": {
"cmd": "allnodes"
}
}
- В дрон возвращается список всех имен, принадлежащих зарегистрированным на шлюзе zigbee устройствам
{
"resp": {
"names": [
"znode001",
"znode002",
"znode003"
]
}
}
4.4.4. Получение актуальных значений всех параметров zigbee устройства на последний момент выхода его на связь (в основном применяется для WEB интерфейса)
- Отправить с дрона на zigbee шлюз команду "ALLPARAMS"
{
"adm": {
"cmd": "allparams",
"name": "znode001"
}
}
- В дрон возвращается актуальный список всех параметров zigbee устройства
{
"resp": {
"name": "znode001",
"params": [
{
"name_param": "tmp",
"value": 2345
},
{
"name_param": "hum",
"value": 5376
},
{
"name_param": "bat",
"value": 341
}
]
}
}
5. Индикация
На контроллере предусмотрены две внешние сигнальные лампы для сигнализации состояния устройства:
- RED – статус функционирования;
- GREEN – состояние подключения к сети.
Схема индикации отображена ниже:
Коды состояния сигнализируются следующим образом:
- значение разряда - количество вспышек с интервалом 0,5 сек.
- между разрядами интервал в 1 сек, между повторением - 3 сек.
Если сбой на режиме инициализации -2, режим "конфигурирование" - 3, итого код 23, десятки моргания - 2, единицы - 3.
Индикация будет следующей:
две вспышки с интервалом 0,5сек. - 1 сек. - три вспышки с интервалом 0,5сек. - 3 сек;
Сбой HTTP сервера - код 51, десятки моргания 5, единиц -1
Индикация будет следующей:
5 вспышек с интервалом 0,5сек. - 1сек. - вспышка - 3 сек.
Если сбоев нет - красный индикатор погашен.
Зеленый горит при переходе в штатный режим и моргает зеленым в случаях попыток подключения к сети.