|
|
Dieser BLE Scanner liest alle BLE Signaturen in der Umgebung aus und gibt diese nach jeweils 10 Sekunden Wartezeit über die serielle Schnittstelle (USB) an den PC aus. Dort können die Informationen über den seriellen Monitor angezeigt werden.
#include <Arduino.h>
/* -------------------------------------
Praxis 13
BLE-Scanner mit dem ESP32
-----------------------------------*/
#include <BLEDevice.h>
#include <BLEScan.h>
int scanTime = 5; //Dauer eines Scanvorgangs
BLEScan* pBLEScan;
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.printf("Gefundenes Gerät: %s \n", advertisedDevice.toString().c_str());
}
};
void setup() {
Serial.begin(115200);
Serial.println("Suche...");
BLEDevice::init("");
pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->setInterval(100);
pBLEScan->setWindow(99);
}
void loop() {
// Für der Arduino IDE mit Boardtreiber 3.0.x nächste Zeile nutzen
BLEScanResults foundDevices = *pBLEScan->start(scanTime, false);
// Für VSCode mit PlatformIO stattdessen die nächste Zeile nutzen
// BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
Serial.print("Gefundene Geräte: ");
Serial.println(foundDevices.getCount());
Serial.println("Suche abgeschlossen!");
pBLEScan->clearResults();
delay(10000);
}