mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-30 21:51:40 +01:00 
			
		
		
		
	
		
			
	
	
		
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
|   | /*
 | ||
|  |    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); | ||
|  | } |