• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 лучше и не пробовать - будут сплошные пропуски приема.
 
Сверху Снизу