ESP32蓝牙实例-BLE服务器与客户端通信

本文详细介绍了如何使用ESP32作为BLE服务器,通过连接DHT22传感器获取温湿度数据,并通过BLE将数据传输到ESP32客户端,客户端将数据展示在OLED屏幕上。内容涵盖了软件和硬件准备,以及服务器和客户端的代码实现,包括传感器连接、BLE服务创建、Android手机测试和BLE客户端的OLED显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BLE服务器与客户端通信


在本文中,我们将介绍如何使用低功耗蓝牙在两个 ESP32 开发板之间执行 BLE 服务器客户端通信。 换句话说,将介绍如何通过 BLE 在两个 ESP32 开发板之间交换数据。 服务器和客户端之间的通信将通过 BLE 进行,其中一个 ESP32 板充当 BLE 服务器并将传感器读数发送到 ESP32 客户端,ESP32 客户端将接收它们并将它们显示在 OLED 显示器中。

我们将 DHT22 传感器与 ESP32 服务器连接,将传感器数据传输到 ESP32 客户端。 可以使用任何合适的传感器,例如 DS18B20、DHT22、LM35 和 MPU6050,在本文中,我们将使用用于测量温度和湿度的 DHT22 传感器。

1、软件准备

  • Arduino IDE

在前面的文章中,如何搭建ESP32的Arduino IDE开环境,主参考:

2、硬件准备

  • ESP32开发板(两块)
  • OLED显示屏模块
### ESP32-S3-WROOM-1模块的蓝牙功能支持 ESP32-S3-WROOM-1是一款高度集成化的无线通信模块,内置了Wi-Fi和蓝牙5.0功能[^5]。这意味着该模块不仅能够提供稳定的Wi-Fi连接,还具备低功耗蓝牙(Bluetooth Low Energy, BLE)以及经典蓝牙的功能。 对于开发者而言,在使用ESP32-S3-WROOM-1进行项目开发时可以充分利用其蓝牙特性来实现设备间的短距离数据传输、控制以及其他基于蓝牙的应用场景。例如可以通过手机APPESP32-S3-WROOM-1建立连接并交换信息,或者构建多台设备之间的mesh网络等。 为了验证ESP32-S3-WROOM-1模块上的蓝牙功能是否正常工作,可以在Arduino IDE环境中编写一段简单的测试程序: ```cpp #include <BLEDevice.h> #include <BLEUtils.h> #include <BLEServer.h> // 创建BLE服务器对象实例BLECharacteristic *pCharacteristic; void setup() { Serial.begin(115200); // 初始化BLEBLEDevice::init("ESP32_S3_WROOM_1"); // 创建BLE服务器 BLEServer* pServer = BLEDevice::createServer(); // 添加服务 BLEService *pService = pServer->createService(SERVICE_UUID); // 添加特征值 pCharacteristic = pService->addCharacteristic( new BLECharacteristic("fff1", BLERead | BLEWrite)); // 启动服务 pService->start(); // 开始广播 pServer->getAdvertising()->start(); } void loop() { if (pCharacteristic->isWritten()) { std::string value = pCharacteristic->getValue(); if (value.length() > 0) { Serial.print("New value: "); for(int i=0;i<value.length();i++) Serial.print(value[i]); Serial.println(); } } delay(2000); } ``` 这段代码展示了如何设置一个基本的服务端应用程序,它会创建一个名为`ESP32_S3_WROOM_1` 的可发现设备,并允许其他蓝牙客户端写入特定UUID对应特性的值。当接收到新的输入时,这些值会被打印到串行监视器上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉与物联智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值