ESP32之经典蓝牙库BluetoothSerial介绍和实例演示

ESP32是一款功能强大的微控制器,它集成了Wi-Fi和蓝牙功能。在蓝牙应用中,ESP32可以使用经典蓝牙(也称为蓝牙低功耗BLE)进行数据传输。在Arduino IDE中,可以使用BluetoothSerial库来简化蓝牙通信的实现。本文将介绍BluetoothSerial库的使用方法,并提供一个实例演示。

1. BluetoothSerial库简介

BluetoothSerial库是Arduino环境下用于ESP32的一个库,它提供了一个简单的接口来实现经典蓝牙的串行通信。通过这个库,ESP32可以作为蓝牙设备或服务器与其他蓝牙设备进行通信。

2. 准备工作

2.1 硬件需求

  • 1个ESP32开发板
  • 1台支持蓝牙的设备(如智能手机)

2.2 软件需求

  • Arduino IDE(已安装ESP32板管理器)

3. 安装BluetoothSerial库

在Arduino IDE中,可以通过库管理器安装BluetoothSerial库:

  1. 打开Arduino IDE。
  2. 点击“工具”菜单中的“管理库…”。
  3. 在库管理器的搜索框中输入“BluetoothSerial”。
  4. 找到库后,点击“安装”。

4. 编写代码

4.1 ESP32作为蓝牙设备

以下是一个示例代码,展示如何使ESP32作为蓝牙设备,接收来自其他蓝牙设备的数据。

#include "BluetoothSerial.h"

BluetoothSerial ESP_BT;

void setup() {
  Serial.begin(115200);
  ESP_BT.begin("ESP32Test"); // 初始化蓝牙设备,设置设备名为"ESP32Test"
  Serial.println("The device started, now you can pair it with bluetooth!");
}

void loop() {
  if (ESP_BT.available()) {
    String received = ESP_BT.readString(); // 读取数据
    Serial.print("Received: ");
    Serial.println(received);
  }
}

4.2 ESP32作为蓝牙服务器

以下是一个示例代码,展示如何使ESP32作为蓝牙服务器,发送数据到其他蓝牙设备。

#include "BluetoothSerial.h"

BluetoothSerial ESP_BT;

void setup() {
  Serial.begin(115200);
  ESP_BT.begin("ESP32Server"); // 初始化蓝牙服务器,设置设备名为"ESP32Server"
  Serial.println("The server started, now you can connect to it!");
}

void loop() {
  if (ESP_BT.available()) {
    String received = ESP_BT.readString();
    Serial.print("Received: ");
    Serial.println(received);
  }

  // 每隔一秒发送一次数据
  static unsigned long lastTime = 0;
  if (millis() - lastTime > 1000) {
    lastTime = millis();
    ESP_BT.println("Hello from ESP32!");
    Serial.println("Sent: Hello from ESP32!");
  }
}

5. 测试

5.1 配对设备

使用智能手机或其他蓝牙设备搜索蓝牙设备,找到名为“ESP32Test”或“ESP32Server”的设备,并进行配对。

5.2 接收和发送数据

  • 对于作为设备的示例,打开智能手机上的蓝牙串口通信应用(如“蓝牙串口客户端”),连接到ESP32。
  • 对于作为服务器的示例,确保智能手机已经连接到ESP32。
  • 在智能手机的蓝牙串口通信应用中输入文本,并观察ESP32是否能够接收并显示。
  • 在ESP32的串口监视器中查看发送的数据是否正确显示在智能手机上。

6. 结论

通过使用BluetoothSerial库,ESP32可以轻松实现经典蓝牙的通信功能。无论是作为蓝牙设备还是服务器,ESP32都能够与其他蓝牙设备进行数据交换。本文提供的示例代码可以帮助你快速开始使用ESP32进行蓝牙通信。

请注意,实际应用中可能需要根据具体的硬件和需求进行调整。希望这些信息能帮助你更好地开发基于ESP32的蓝牙应用。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Arduino环境中使用ESP32通过蓝牙模拟串口和透传Serial数据,你可以使用ESP32蓝牙功能和`SoftwareSerial`来模拟串口通信,并使用`Serial`对象来透传数据。以下是一个示例代码: 首先,确保你已经安装了`SoftwareSerial`。在Arduino IDE中,选择 "工具" -> "管理",然后搜索并安装 "SoftwareSerial" 。 然后,使用以下示例代码: ```cpp #include <SoftwareSerial.h> SoftwareSerial bluetoothSerial(10, 11); // RX, TX (使用不同的引脚号,例如10和11) void setup() { Serial.begin(115200); bluetoothSerial.begin(9600); // 设置蓝牙模块的波特率 Serial.println("Bluetooth Serial started"); } void loop() { if (bluetoothSerial.available()) { char data = bluetoothSerial.read(); Serial.print("Received data from Bluetooth: "); Serial.println(data); // 发送数据给串口 Serial.print("Sending data to Serial: "); Serial.println(data); } if (Serial.available()) { char data = Serial.read(); Serial.print("Received data from Serial: "); Serial.println(data); // 发送数据给蓝牙模块 bluetoothSerial.print("Sending data to Bluetooth: "); bluetoothSerial.print(data); bluetoothSerial.println(); } } ``` 在此代码中,我们使用了`SoftwareSerial`创建了一个虚拟的串口对象`bluetoothSerial`,用于与蓝牙模块进行通信。 在`setup()`函数中,我们初始化串口和蓝牙模块的通信。在这个示例中,我们将蓝牙模块的波特率设置为9600bps。 在`loop()`函数中,我们检查蓝牙串口是否有可用数据。如果有可用数据,我们将接收到的数据打印到串口,并通过调用`Serial.print()`和`Serial.println()`将数据透传给串口。 同时,我们还检查串口是否有可用数据。如果有可用数据,我们将接收到的数据打印到串口,并通过调用`bluetoothSerial.print()`和`bluetoothSerial.println()`将数据透传给蓝牙模块。 请注意,你需要根据你所使用的蓝牙模块的具体配置和波特率来调整代码。另外,确保你已正确连接蓝牙模块的RX和TX引脚,并使用正确的引脚号初始化`SoftwareSerial`对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式杂谈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值