2H Dev Notes

2H Dev Notes

ESP32蓝牙应用入门与实战

19
2025-12-24

经典蓝牙串口通信

硬件准备

  • 一块ESP32开发板(例如ESP32 DevKitC)。

  • 一条Micro USB线,用于连接电脑供电和串口通信。

  • 板载LED(大部分ESP32开发板的GPIO2脚上有一个内置LED,如果不确认直接接入一个LED模块即可)。

软件准备

代码烧录

#include "BluetoothSerial.h"   // 引入蓝牙串口库
​
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to enable it
#endif
​
const int led = 2;              // LED连接GPIO2(板载LED)
BluetoothSerial SerialBT;       // 创建蓝牙串口对象
​
void setup() {
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);       // 默认LED关闭
​
  Serial.begin(115200);
  Serial.println("Starting Bluetooth...");
​
  if(!SerialBT.begin("ESP32_Blue")) {    // 启动蓝牙设备,名称为ESP32_Blue
    Serial.println("An error occurred initializing Bluetooth");
  } else {
    Serial.println("Bluetooth initialized. Device name: ESP32_Blue");
  }
}
​
void loop() {
  // 判断是否有蓝牙数据可读
  if (SerialBT.available()) {
    char res = SerialBT.read();    // 读取一个字符
    Serial.print("Received via BT: ");
    Serial.println(res);
​
    if (res == 'A') {
      digitalWrite(led, LOW);      // 关闭LED
      Serial.println("LED OFF");
    }
    else if (res == 'B') {
      digitalWrite(led, HIGH);     // 打开LED
      Serial.println("LED ON");
    }
    else {
      Serial.println("Unknown command");
    }
  }
​
  // 你可以在这里添加更多命令处理逻辑
​
  delay(10);  // 延时,降低CPU使用率
}

代码说明

  • BluetoothSerial SerialBT; 用于创建一个蓝牙串口设备。

  • SerialBT.begin("ESP32_Blue") 初始化蓝牙,设备名为“ESP32_Blue”。

  • SerialBT.available()判断是否收到蓝牙数据。

  • 收到的字符为A时关闭LED,B时点亮LED。

  • 使用Serial.print在串口监视器中输出调试信息。

使用方法

  1. 将ESP32通过USB连接电脑,下载烧录代码。

  2. 打开Arduino串口监视器,波特率设置为115200,观察启动及命令反馈。

  3. 使用手机或PC蓝牙,搜索名为ESP32_Blue的设备并连接(通常不需要配对密码)。

  4. 打开蓝牙串口终端APP(安卓系统上可以用如“Serial Bluetooth Terminal”等应用)。

  5. 在APP发送字符A测试关闭LED,发送B打开LED。

  6. 观察串口监视器的反馈信息。

点击下载APP