diff --git a/tools/esp32_ble_scan/esp32_ble_scan.ino b/tools/esp32_ble_scan/esp32_ble_scan.ino new file mode 100644 index 0000000..bc857e9 --- /dev/null +++ b/tools/esp32_ble_scan/esp32_ble_scan.ino @@ -0,0 +1,50 @@ +#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); +}