summaryrefslogtreecommitdiff
path: root/sensor/patchedBLE/examples/BLE_scan
diff options
context:
space:
mode:
Diffstat (limited to 'sensor/patchedBLE/examples/BLE_scan')
-rw-r--r--sensor/patchedBLE/examples/BLE_scan/BLE_scan.ino40
1 files changed, 40 insertions, 0 deletions
diff --git a/sensor/patchedBLE/examples/BLE_scan/BLE_scan.ino b/sensor/patchedBLE/examples/BLE_scan/BLE_scan.ino
new file mode 100644
index 0000000..094f793
--- /dev/null
+++ b/sensor/patchedBLE/examples/BLE_scan/BLE_scan.ino
@@ -0,0 +1,40 @@
+/*
+ Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp
+ Ported to Arduino ESP32 by Evandro Copercini
+*/
+
+#include <BLEDevice.h>
+#include <BLEUtils.h>
+#include <BLEScan.h>
+#include <BLEAdvertisedDevice.h>
+
+int scanTime = 5; //In seconds
+BLEScan* pBLEScan;
+
+class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
+ void onResult(BLEAdvertisedDevice advertisedDevice) {
+ Serial.printf("Advertised Device: %s \n", advertisedDevice.toString().c_str());
+ }
+};
+
+void setup() {
+ Serial.begin(115200);
+ Serial.println("Scanning...");
+
+ BLEDevice::init("");
+ pBLEScan = BLEDevice::getScan(); //create new scan
+ pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
+ pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
+ pBLEScan->setInterval(100);
+ pBLEScan->setWindow(99); // less or equal setInterval value
+}
+
+void loop() {
+ // put your main code here, to run repeatedly:
+ BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
+ Serial.print("Devices found: ");
+ Serial.println(foundDevices.getCount());
+ Serial.println("Scan done!");
+ pBLEScan->clearResults(); // delete results fromBLEScan buffer to release memory
+ delay(2000);
+} \ No newline at end of file