• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32 сканирование BLE устройств через функции NimBLE

SergeyR

New member
Нужен рабочий пример сканирования BLE-устройств с использованием библиотеки NimBLE на ESP32 в среде ESP-IDF 5.4, как правильно сканировать все доступные BLE-устройства и выводит их адреса, имена и данные рекламных пакетов?
 

enjoynering

Well-known member
попробуйте это

Код:
#include <NimBLEDevice.h>

void setup() {
  // Start serial communication for debugging
  Serial.begin(115200);
  Serial.println("Starting BLE scan...");

  // Initialize BLE device
  NimBLEDevice::init("");

  // Start scanning for BLE devices
  NimBLEDevice::getScan()->setActiveScan(true);  // Set active scan to get more information
  NimBLEDevice::getScan()->setInterval(45);  // Scan interval (milliseconds)
  NimBLEDevice::getScan()->setWindow(15);    // Scan window (milliseconds)
  NimBLEDevice::getScan()->start(5, false);  // Scan for 5 seconds, non-blocking
}

void loop() {
  // Handle scanning results
  NimBLEDevice::getScan()->start(0, true);  // Keep scanning (blocking)

  // The results will be printed in the serial monitor when a device is found
}

void onResult(NimBLEAdvertisedDevice advertisedDevice) {
  // Print the discovered device details
  Serial.print("Device found: ");
  Serial.print(advertisedDevice.getName().c_str());
  Serial.print(" - ");
  Serial.println(advertisedDevice.getAddress().toString().c_str());
}
 

pvvx

Активный участник сообщества
ESP32 не сможет отображать все виды BLE advertising. ESP32 ограничена Bluetooth (core) v4.2 (2014 год).
Берите что-то новее. Хотя-бы ESP32-C3.
ESP32 - это типа nrf24l01, по сравнению с ESP32-C3 в BLE.
Пример вывода в USB есть.
В UART проблемно,т.к. не успевает на стандартных скоростях.
При включенном WiFi лучше и не пробовать - будут сплошные пропуски приема.
 
Сверху Снизу