#include void setup() { Serial.begin(115200); delay(1000); Serial.println(); Serial.println("=== ESP32 BLE Scanner ==="); Serial.println("Looking for JBD/Xiaoxiang BMS..."); Serial.println(); NimBLEDevice::init(""); NimBLEScan* scan = NimBLEDevice::getScan(); scan->setActiveScan(true); scan->setInterval(100); scan->setWindow(99); } void loop() { NimBLEScan* scan = NimBLEDevice::getScan(); Serial.println("Scanning for 10 seconds..."); NimBLEScanResults results = scan->getResults(10, false); Serial.print("Devices found: "); Serial.println(results.getCount()); for (int i = 0; i < results.getCount(); i++) { const NimBLEAdvertisedDevice* device = results.getDevice(i); Serial.print("Device "); Serial.print(i); Serial.print(" | Address: "); Serial.print(device->getAddress().toString().c_str()); Serial.print(" | RSSI: "); Serial.print(device->getRSSI()); if (device->haveName()) { Serial.print(" | Name: "); Serial.print(device->getName().c_str()); } Serial.println(); } Serial.println(); delay(3000); }