Рекомендации по отображению местоположения устройства BLE в приложении Windows относительно моего ПК / сканера

#c# #bluetooth-lowenergy

#c# #bluetooth -низкое энергопотребление

Вопрос:

Я хотел бы получить несколько советов о том, как начать реализацию указанной ниже идеи:

У меня есть 3 маяка BLE (Bluetooth с низким энергопотреблением). Я хотел бы создать приложение в Windows, используя Visual Studio.

На данный момент я использую плату микроконтроллера ESP32, которая получает информацию, передаваемую маяками BLE. Эта информация включает в себя RSSI, уровни температуры и влажности. Затем вся эта информация отправляется на мой рабочий стол (под управлением Windows 10) по последовательной связи.

Теперь мои знания о том, как действовать дальше, резко терпят неудачу.

Я знаю, что вы можете использовать RSSI для вычисления расстояния, но это ненадежно. Причина этого заключается в том, что перед маяком находится металлический предмет. Это приведет к резкому падению RSSI. Следовательно, для ПК маяк кажется еще большим, однако на самом деле он не перемещен.

Я слышал об использовании AOA (угол прибытия) или AOD (угол вылета), но я не уверен, как это реализовать в Visual Studio или даже если это правильно.

В принципе, я хочу графически показать положение маяка относительно моего ПК / сканера. Сканер (ESP32) расположен очень близко к моему компьютеру.

Может кто-нибудь предложить какие-либо рекомендации о том, как воплотить эту идею в реальность?

Ответ №1:

Вы правы, RSSI не идеален для такого рода задач. Мало того, что значение колеблется, вам также необходимо самостоятельно перевести RSSI (уровень сигнала) на правильное расстояние.

Новая функция определения направления Bluetooth (AOA и AOD) действительно была бы лучшим способом определения положения вашего устройства относительно маяков, но ESP32 не предлагает этих функций, поскольку они представлены в спецификации BLE 5.1.

Для AOA и AOD требуется специальное оборудование с двумя антеннами. Одним из SoC, который поддерживает определение направления по Bluetooth, является nRF5340 от Nordic semiconductor.

Другим подходом может быть использование скользящего среднего для полученного значения RSSI, чтобы сгладить колебания и использовать это значение в качестве расстояния. Если вы знаете положение маяков вокруг вас, положение вашего принимающего устройства можно рассчитать с использованием расстояния. Этот подход работает только в том случае, если маяки неподвижны, а ваш компьютер перемещается, а не наоборот.