Пример: Подключение станции
Велостанция предназначена для сдачи в аренду мускульных велосипедов. Для взаимодействия с платформой RIghtech реализована передача данных о текущем состоянии станции и слотов по протоколу MQTT. Количество слотов станции от 4 до 16.
С полным набором параметров протокола станции можно ознакомиться в Приложении 1.
2.1 Добавление модели станции
Для корректной работы станции необходимо добавить ее модель, а также модель велосипеда, который будет в дальнейшем использоваться в сценариях аренды.
В качестве примера используется модель, добавленная в проект bikeme и имеющая ric id = 64c24d5a669bf5bbf7822032 (Скриншот 1).
Скриншот 1. Модель станции.
В моделе настроено отображение всех приходящих параметров от станции, команды управления и параметры, выводящиеся после обработки в специальном “Действии”. Параметры после обработки выводятся в подсистему модели Slots resolved, где для каждого слота станции есть три основных параметра (Скриншот 2):
Object 1 — позволяет отображать в слоте станции ссылку на велосипед;
Locked 1 — выводит статус объекта в слоте станции;
Voltage 1 — напряжение в слоте станции.
Скриншот 2. Подсистема модели для вывода велосипеда в слоте станции.
Внутренняя логика работы ориентируется по умолчанию на станцию с 8 слотами. Для работы с большим количеством слотов добавлена конфигурация модели через параметр Slot count (Скриншот 3).
Скриншот 3. Конфигурация количества слотов.
2.2 Добавление модели станции
Для корректной работы станции необходимо добавить модель велосипеда. Так как физический объект не оборудован IoT модулем и не может передавать данные на платформу, то выполняется его виртуальная визуализация. Модель велосипеда [bikeme] bot bike — 64c2a309b36892e8b199771c. Для корректной работы со станцией добавлено два конфигурационных параметра RFID 1 и RFID 2 в секции “Данные” (Скриншот 4).
Скриншот 4. Модель велосипеда с конфигурацией.
Для подключения и конфигурации станции необходимо:
Настроить станцию на передачу данных на app.rightech.io;
Создать объект на платформе, заполнить идентификатор;
ВАЖНО! Для корректной работы использовать тип nepeshkom:station
Ввести координаты или выбрать месторасположение на карте;
Задать количество слотов в разделе “Конфигурация”.
Скриншот 5. Конфигурация станции.
Для подключения и конфигурации велосипеда необходимо:
Создать объект велосипеда, заполнить идентификатор (произвольный);
Тип указывается произвольный;
Ввести координаты или выбрать месторасположение на карте необходимо, чтобы зафиксировать велосипед, но не будет в дальнейшем влиять на отображение в мобильном приложении (будет виден в составе станции);
В разделе “Конфигурация” сделать активными настройки useLastState, useExpressions и заполнить данные QR-кода, номер велосипеда, RFID 1 и/или RFID 2 (Скриншот 6).
Скриншот 6. Конфигурация объекта (велосипед).
Идентификатор | Имя | Описание | Топик | Payload |
Scan_All_uid | Scan_All_uid | Считать все доступные UID на всех слотах станции | ScanALL | |
Scan_L1_uid | Scan_L1_uid | Считать доступные UID на слоте №1 | station/commands | Scan 1 |
Scan_L2_uid | Scan_L2_uid | Считать доступные UID на слоте №2 | Scan 2 | |
hr1 | HookRig1 | Опрос состояния ригеля и крюка на первом замке | station/commands | hr 1 |
hr2 | HookRig2 | Опрос состояния ригеля и крюка на 2-м | hr 2 | |
Test_buz_led1 | Test_buz_led1 | тест светодиодов и бузеров доступных слотов | station/commands | test bzl |
TestOnDesk | TestOnDesk | Опрос состояния для теста на столе | TestOnDesk | |
ed-off | Turn-off LED | Выключить светодиод на плате шлюза | station/commands | led 1 |
led-on | Turn-on LED | Включить светодиод на плате шлюза | led 0 | |
RebootL1 | RebootL1 | Перезагрузка слота 1 | station/commands | Reboot 1 |
RebootSt | RebootSt | Перезагрузка станции | RebootSt | |
updateall | Update all info | Обновить всю информацию по станции | station/commands | UpdALLinfo |
Lock1 | Lock1 | Закрыть ригель на слоте 1 | Lock 1 | |
Unlock1 | Unlock1 | Открыть ригель на слоте 1 (аренда) | station/commands | Unlock 1 |
Set_to_Sv1 | Set_to_Sv1 | Изменить статус слота 1 на "свободен" | Free 1 | |
Set_to_Sv2 | Set_to_Sv2 | Изменить статус слота 2 на "свободен" | station/commands | Free 2 |
Set_to_Sv_ALL | Set_to_Sv_ALL | Изменить статус всех слотов на "свободен" | FreeALL | |
Set_to_Br1 | Set_to_Br1 | Изменить статус слота 1 на "сломан" | station/commands | Brake 1 |
Set_to_Br2 | Set_to_Br2 | Изменить статус слота 2 на "сломан" | Brake 2 | |
Set_to_Br_ALL | Set_to_Br_ALL | Изменить статус всех слотов на "сломан" | station/commands | BrakeALL |
Set_to_Ready_1 | Set_to_Ready_1 | Изменить статус слота 1 на "доступен для аренды" | Ready 1 | |
Set_to_Ready_2 | Set_to_Ready_2 | Изменить статус слота 2 на "доступен для аренды" | station/commands | Ready 2 |
Set_to_Ready_ALL | Set_to_Ready_ALL | Изменить статус всех слотов на "доступен для аренды" | ReadyALL |
Идентификатор | Имя | Описание | источники | Тип данных |
ans | Answers | Вся доступная информация о станции | station/answers | Object |
st1 | Status1 | Статус слота 1. | ans.st1 | String |
st2 | Status2 | Статус слота 1. | ans.st2 | String |
h1 | hook1 | состояние крюка слота 1 | ans.h1 | String |
h2 | hook2 | состояние крюка слота 2 | ans.h2 | String |
r1 | rigel1 | Положение ригеля слота 1 | ans.r1 | String |
r2 | rigel2 | Положение ригеля слота 2 | ans.r2 | String |
uid1_1 | uid1_1 | UID 1 на первом слоте | ans.uid1_1 | String |
uid1_2 | uid1_2 | UID 2 на первом слоте | ans.uid1_2 | String |
uid2_1 | uid2_1 | UID 1 на втором слоте | ans.uid2_1 | String |
uid2_2 | uid2_2 | UID 2 на втором слоте | ans.uid2_2 | String |
StationInfo | Station info | о температуре, мощности, напряжении... | station/info | Object |
t | Temperature | Температура внутри бокса шлюза | info.t | Number |
volt | AKBVoltage | Напряжение Основного аккумулятра | info.volt | Number |
win | PowerIN | Входящая мощность от Солнечной батареи | info.win | Number |
wout | PowerOUT | Мощность потребляемая всей станцией | info.wout | Number |
lat | Latitude | Широта расположения станции | info.lat | Number |
lon | Longitude | Долгота расположения станции | info.lon | Number |
mode | Mode | Режим работы станции. | info.mode | String |