Мета цього воркшопу розбіратися з базовими функціями BLE в React Native, включаючи сканування пристроїв, підключення до них, читання та запис характеристик.
Перед початком воркшоу дуже бажано зробити наступне:
- Клонувати репозиторій та перемкнутися на гілку
workshop, не підглядуючи код з main - Зробити Expo prebuild для Android чи iOS
Android:
yarn expo prebuild --platform android
iOS:
yarn expo prebuild --platform ios
Далі відкрийте проект у Android Studio або Xcode та запустіть додаток на реальному пристрої, емулятори не підтримують BLE.
Для iOS треба змінити Bundle Identifier у Xcode на унікальний, та обрати персональний Development Team.
Якщо Anroid Studio відмовляється збирати проект, скоріше за все вона собі виставила JDK 21.
Необхідно виставити JDK 17 у налаштуваннях:
Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JDK
- Не погано було б також мати Nrf Connect на вашому телефоні для тестування. Це додаток, який дозволяє шукати та взаємодіяти з BLE пристроями.
За допомогою цього додатку можна буде підключитися до тестового девайсу та подивитися на сервіси та характеристики.
Як піддослідний пристрій ми будемо використовувати термометр Xiaomi (LYWSD03MMC).
Цей пристрій підтримує більшість основних функцій BLE, таких як сканування, підключення, читання характеристик та отримання сповіщень. Пейрінгу немає, але це уже більш складна функція, яку ми не будемо розглядати на цьому воркшопі.
- Сканування BLE пристроїв
- Визначення MAC-адреси пристрою
- Підключення до пристрою
- Читання характеристик (температура, вологість, батарея, одиниці виміру)
- Отримання сповіщень про зміну характеристик
- Запис характеристик (одиниці виміру)