【问题标题】:How to receive/ accept Bluetooth serial data on ESP32 using NimBLE bluetooth library如何使用 NimBLE 蓝牙库在 ESP32 上接收/接受蓝牙串行数据
【发布时间】:2023-02-23 10:54:00
【问题描述】:
    #include "NimBLEDevice.h"

// void setup() in Arduino
void app_main(void)
{
    NimBLEDevice::init("NimBLE");
    
    NimBLEServer *pServer = NimBLEDevice::createServer();
    NimBLEService *pService = pServer->createService("ABCD");
    NimBLECharacteristic *pCharacteristic = pService->createCharacteristic("1234");
}

我想显示/打印通过蓝牙串行发送到 esp32 的字符串。我在 esp32 中使用 NimBLE 库。但我不知道如何使用 NimBLE 接受/接收来自蓝牙串口的数据。如何使用 NimBLE。

【问题讨论】:

  • SPP(串行端口配置文件)是一个经典的蓝牙配置文件,Nimble 是一个 C++ BLE 库,适用于 Espressif ESP32 和使用 NimBLE BLE 堆栈的 Nordic nRF51/nRF52 设备。 Classic 和 BLE 互不兼容
  • 我没有使用经典,我只使用 Nimble

标签: c++ arduino bluetooth serial-port esp32


【解决方案1】:

要使用 NimBLE 通过蓝牙串口接收数据,您需要创建一个回调函数,只要接收到数据就会触发该回调函数

#include "NimBLEDevice.h"

NimBLECharacteristic* pCharacteristic;

void onDataReceived(NimBLECharacteristic* pCharacteristic){
    std::string rxValue = pCharacteristic->getValue();
    Serial.print("Received value: ");
    Serial.println(rxValue.c_str());
}

void setup(){
    Serial.begin(115200);
    NimBLEDevice::init("NimBLE");
    NimBLEServer *pServer = NimBLEDevice::createServer();
    NimBLEService *pService = pServer->createService("ABCD");
    pCharacteristic = pService->createCharacteristic("1234", NIMBLE_PROPERTY::NOTIFY | NIMBLE_PROPERTY::WRITE);
    pCharacteristic->setCallbacks(new MyCallbacks());
    pService->start();
    NimBLEAdvertising *pAdvertising = NimBLEDevice::getAdvertising();
    pAdvertising->addServiceUUID(pService->getUUID());
    pAdvertising->start();
}

void loop() {
    // do nothing
}

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2012-11-07
    • 2020-03-19
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多