Я использую esp32 для обнаружения маяка через rssi маяка, но я сталкиваюсь с некоторой проблемой, во-первых, значение rssi нестабильно, поэтому мне нужно больше выборки rssi, вторая проблема - скорость сканирования esp32 слишком низкая, что быстрееСкорость сканирования составляет всего одну секунду, ниже - мой используемый код
#include <BLEAdvertisedDevice.h>
#include <BLEDevice.h>
#include <BLEScan.h>
const int PIN = 2;
const int CUTOFF = -60;
void setup() {
pinMode(PIN, OUTPUT);
BLEDevice::init("");
}
void loop() {
BLEScan *scan = BLEDevice::getScan();
scan->setActiveScan(true);
BLEScanResults results = scan->start(1);
int best = CUTOFF;
for (int i = 0; i < results.getCount(); i++)
{
BLEAdvertisedDevice device =
results.getDevice(i);
int rssi = device.getRSSI();
if (rssi > best) {
best = rssi;
}
}
digitalWrite(PIN, best > CUTOFF ? HIGH :
LOW);
}
, но я хочу больше образца, я попытался изменить scan-> start (1) на scan-> start (0), норезультат не возвращается, как это сделать, можно решить более низкую проблему с образцом или использовать другую доску?