【Bluetooth】蓝牙
介绍
是什么
蓝牙(Bluetooth)是一种短距离无线通信技术,工作在 2.4GHz ISM 频段(2.402-2.480 GHz),主要用于设备间的低功耗数据交换(如耳机、键盘、IoT设备)
核心特性
-
短距离通信:通常 1-100 米(Class 1 强信号可达100m,Class 2 约10m)。
-
低功耗(BLE):适合电池供电设备(如手环)。
-
点对点 & 广播模式:支持设备间直连(P2P)或广播数据(信标)。
-
抗干扰:采用 FHSS(跳频扩频),减少WiFi/微波炉干扰。
工作模式
| 模式 | 简称 | 功能 | 典型应用 |
|---|---|---|---|
| 经典模式 | BR/EDR | 高速数据传输,稳定连接 | 蓝牙耳机、音响、键盘 |
| 低功耗模式 | BLE | 超低功耗,间歇性通信 | 智能手环、Beacon、IoT传感器 |
| 双模(BR+BLE) | Dual Mode | 同时支持经典模式和BLE | 智能手机、平板电脑 |
关键函数
-
void begin(String name)初始化蓝牙模块,设置设备名称 -
void end()停止蓝牙串口,释放资源 -
int available()得到可以读取数据量 -
size_t write(uint8_t byte)发送一个字节 -
println()蓝牙输出并换行
经典蓝牙实验
发送数据
-
通过蓝牙每1秒发送一次 "Hello World"
-
代码
#include <Arduino.h>
#include <BluetoothSerial.h>
BluetoothSerial SerialBT; //初始化蓝牙模块
void setup()
{
SerialBT.begin("ESP32实验"); //设置设备名称
}
void loop()
{
SerialBT.println("Hello World!");
delay(1000);
}
接收数据
-
接收数据并打印到串口
-
代码
#include <Arduino.h>
#include <BluetoothSerial.h>
BluetoothSerial SerialBT; //初始化蓝牙模块
void setup()
{
SerialBT.begin("ESP32实验"); //设置设备名称
}
void loop()
{
if (SerialBT.available()) //如果有数据
{
int length = SerialBT.available(); //得到可以读取数据量
char buffer[length]; //定义缓冲区
SerialBT.readBytes(buffer, length); //读取数据
for (int i = 0; i < length; i++)
{
SerialBT.print(buffer[i]); //打印数据
}
SerialBT.println(); //换行
}
delay(1000);
}