Тестирование устройства через мобильное приложение nRF Connect

Материал носит ознакомительный характер. Работа с электроникой и микроконтроллерами требует соблюдения техники безопасности; автор не несет ответственности за возможные повреждения оборудования или иной ущерб, возникший в ходе обучения.

На прошлом этапе мы спроектировали структуру данных и создали кастомный BLE-профиль. Теперь проверим результат «в эфире». Мы превратим смартфон в диагностический пульт, чтобы управлять nRF52840 без написания кода мобильного приложения.

Эфир: Scanning и Advertising

Как только вы подаете питание на плату, микроконтроллер запускает Advertising (Рекламу). Устройство рассылает пакеты данных: «Я здесь, меня зовут nRF52_Sensor, я умею работать с такими-то сервисами».

Чтобы поймать эти пакеты, мы используем Scanning (Сканирование) в приложении nRF Connect. Смартфон слушает радиоэфир и выводит список всех активных BLE-устройств.

Как найти свою плату

  1. Включите Bluetooth и Геолокацию (требование Android/iOS для работы с BLE).
  2. В nRF Connect нажмите Scan.
  3. Найдите в списке имя, которое задали в коде.

Рядом с именем вы увидите RSSI (Received Signal Strength Indicator) — уровень сигнала в дБм. Он всегда отрицательный: чем ближе значение к нулю, тем лучше связь.

RSSIКачество связиРасстояние
-30...-50 дБмОтличноеВплотную
-60...-80 дБмСреднееНесколько метров
ниже -90 дБмПлохоеНа грани разрыва

Важно: Если устройства нет в списке, проверьте, не подключено ли оно к другому телефону. В режиме Peripheral плата прекращает Advertising, как только устанавливается соединение.

Подключение и инспекция GATT-таблицы

Нажмите Connect. Плата перестанет «рекламировать» себя и создаст защищенный канал связи. В приложении откроется вкладка Client — это «внутренности» вашего устройства.

Найдите в списке UUID, который мы прописывали на прошлом уроке. Это ваш кастомный сервис. Внутри него находятся характеристики, с которыми можно взаимодействовать:

  • Read (Чтение): иконка «стрелка вниз». Запрашивает значение из памяти nRF52840.
  • Write (Запись): иконка «стрелка вверх». Отправляет данные со смартфона на плату. Так проверяют работу Callback-функций.
  • Notify (Уведомление): иконка «три стрелочки». Плата сама пришлет данные при их изменении. Смартфону не нужно переспрашивать — он просто ждет пуш-уведомление от железки.

Безопасность и Bonding

Для передачи конфиденциальных данных обычного подключения мало. Используйте механизм Bonding (Сопряжение).

В отличие от временного сопряжения (Pairing), Bonding заставляет устройства «запомнить» друг друга и обменяться долгосрочными ключами шифрования. В меню nRF Connect выберите пункт Bond. Если всё прошло успешно, рядом с устройством появится иконка замка 🔒.

Практический кейс: «Магия кэша»

Вы изменили код, добавили новый сервис, прошили плату, но в приложении видите старую структуру. Это не баг в коде, это смартфон экономит энергию и кэширует GATT-таблицу.

Как исправить: В nRF Connect откройте меню устройства (три точки) и выберите Refresh Services. Смартфон принудительно перечитает структуру сервисов из памяти nRF52840.


Мы убедились, что связь работает. Но что делать, если данные приходят «битыми» или логика на плате срабатывает не так, как вы задумывали?

Нам нужно заглянуть в «мысли» процессора. В следующей теме мы откажемся от медленного Serial.print и освоим профессиональный инструмент — RTT логирование. Оно работает молниеносно и не занимает UART-порты.