第一部分:深入研究ESP32的BLE广播
介绍
欢迎来到我们关于ESP32的BLE广播和扫描的广泛指南的第一部分。在本节中,我们将重点关注BLE广播——BLE通信的基本方面,它使设备能够广播其存在和功能。我们将探讨BLE广播的原理,以及它在物联网应用中的重要性,并通过完整的代码示例指导您在ESP32上实现BLE广播。
了解BLE广播
BLE广播是BLE设备向其他设备广播有关自身的信息的过程。这些信息可以包括设备的名称、提供的服务以及其他重要数据。
-
BLE广播的作用:
- BLE广播对于设备发现至关重要。它允许BLE设备找到彼此并建立连接。
- 这是大多数BLE交互的第一步,还可以用于传输少量数据。
-
BLE广播的类型:
- 可连接广播:允许其他设备连接到广告者。
- 不可连接广播:用于广播数据,而无意建立连接。
在ESP32上设置BLE广播
要配置ESP32进行BLE广播:
-
初始化BLE环境:
- 包括必要的BLE库。
- 初始化ESP32上的BLE,使其能够作为BLE设备运行。
-
配置广播参数:
- 设置广播参数,如广播间隔、广告类型(可连接或不可连接)和广告数据。
示例代码:在ESP32上实现BLE广播
以下是如何设置ESP32以广播其存在的方法:
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEAdvertising.h>
void setup() {
Serial.begin(115200);
// 初始化BLE
BLEDevice::init("ESP32_BLE_Advertiser");
// 创建BLE服务器(在这种情况下未使用,但库需要)
BLEServer *pServer = BLEDevice::createServer();
// 设置BLE广告
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(BLEUUID(SERVICE_UUID));
pAdvertising->setScanResponse(false);
pAdvertising->setMinPreferred(0x06); // 有助于解决iPhone连接问题的功能
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();
Serial.println("已启动BLE广告"