Skip to content

Instantly share code, notes, and snippets.

@maagmirror
Last active March 20, 2024 03:37
Show Gist options
  • Save maagmirror/6b31045ddfc740d042787da3a6c31cf1 to your computer and use it in GitHub Desktop.
Save maagmirror/6b31045ddfc740d042787da3a6c31cf1 to your computer and use it in GitHub Desktop.
#include "BLEDevice.h"
// Función de callback para los resultados del escaneo
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.print("Dispositivo encontrado: ");
Serial.println(advertisedDevice.toString().c_str());
// Aquí puedes implementar una lógica para conectarte automáticamente
// basada en el nombre del dispositivo o alguna característica específica.
// Por ejemplo, si el dispositivo tiene "Sena" o "Ejeas" en su nombre,
// podrías intentar conectarte a él.
String deviceName = advertisedDevice.getName();
if (deviceName.indexOf("Sena") != -1 || deviceName.indexOf("Ejeas") != -1 || deviceName.indexOf("V6") != -1 || deviceName.indexOf("Q8") != -1) {
Serial.println("Intercomunicador compatible detectado, intentando conectar...");
// Aquí iría el código para iniciar la conexión.
// Esta funcionalidad específica no está soportada directamente en BLE,
// pero puedes adaptar este concepto para Bluetooth Classic con ESP-IDF.
}
}
};
void setup() {
Serial.begin(115200);
Serial.println("Iniciando escaneo BLE...");
BLEDevice::init("");
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->start(5, false); // Escanea durante 5 segundos y luego se detiene automáticamente
}
void loop() {
// Podrías reiniciar el escaneo basándote en alguna condición o en un intervalo regular.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment