Обмен данными со считывателем по Bluetooth Low Energy (BLE) интерфейсу
Актуально для устройств версии RTOS 1.5 и выше с Lua и заявленным функционалом BLE.
Можно расширить функционал NFC считывателя, добавив к чтению MIFARE/NTAG и банковских карт еще и взаимодействие по BLE интерфейсу обменом beacons.
Обмен Ble beacons позволит быстро, без подключения узнать считывателю и, например, телефону друг о друге.
Считыватель может передавать и принимать пакеты Eddystone URL, Eddystone UID, Eddystone TLM и iBeacons.
Примеры сценариев обмена считывателя и телефона
Какие можно разработать системы идентификации на основе обмена BLE beacons
1
Простой UID
Каждый мобильный клиент имеет свой постоянный UID (как со стандартной NFC меткой). Реализуйте приложение, которое при нажатии на кнопку будет его передавать. Принимайте данные считывателем. Если между считывателями небольшое расстояние и возможно случайное считывание другим приёмником - анализируйте мощность сигнала.
2
Динамический UID
Ваш считыватель и приложение пользователя имеют доступ к серверу, который генерирует временный (или одноразовые) UID для передачи и приема для каждого из них.
3
Двусторонний обмен
Считыватель постоянно отправляет свою публичный ключ. Приложение получив его, шифрует ответные данные своим ключом и отправляет обратно. Считыватель раскодирует и реагирует согласно результату.
4
Ваш сценарий
Придумайте свой вариант алгоритма, исходя из вашей архитектуры, а мы подскажем, как его реализовать на наших устройствах и вписать в вашу систему.
Пример работы
Ниже мы показываем, как на общедоступном ПО протестировать взаимодействие с BLE-интерфейсом устройств.
Код для приёма BLE iBeacons
bt.attach(bt.mode.BLE)
bt.scan.start(function(data)
if (data.type == bt.frameType.iBeacon) then print(data.type, data.ibeacon_major, data.ibeacon_minor, data.ibeacon_uuid) end
end)
Пример консольного вывода программы
Пример получения и вывода пакета BLE iBeacons. Для генерации пакетов на iOS мы использовали программу BeaconSimulator, а на Android - Locate. Eddystone работает аналогично.