
## 项目35 蓝牙

本章主要介绍如何通过ESP32的蓝牙与手机进行简单的数据传输。

**1. 项目元件：**

|![Img](./media/afc52f6616725ba37e3b12a2e01685ad.png)|![Img](./media/b4421594adeb4676d63581a1047c6935.png)|![Img](./media/4d0be04892e2038c372f82caba521f64.png)|
| :--: | :--: |:--: |
| ESP32*1 | USB 线*1 |智能手机/平板电脑（<span style="color: rgb(255, 76, 65);">自备</span>）*1|

在本项目中，我们需要使用一个名为串口蓝牙终端的蓝牙应用程序来协助实验。如果您还没有安装它，请点击安装：[https://www.appsapk.com/serial-bluetooth-terminal/](https://www.appsapk.com/serial-bluetooth-terminal/) 。
下面是它的标志。

![Img](./media/4d6bebf2b0859865e28b426bd3477fac.png)

**2. 元件知识：**

蓝牙是一种短距离通信系统，可分为两种类型，即低功耗蓝牙(BLE)和经典蓝牙。简单的数据传输有两种模式：主模式和从模式。

**主模式：** 在这种模式下，工作在主设备上完成，并且可以与从设备连接。我们可以搜索和选择附近的从设备来连接。当设备在主模式下发起连接请求时，需要其他蓝牙设备的地址和配对密码等信息。配对完成后，可直接与它们连接。

**从模式：** 处于从模式的蓝牙模块只能接受来自主机的连接请求，但不能发起连接请求。与主机设备连接后，可以向主机设备发送数据，也可以从主机设备接收数据。蓝牙设备之间可以进行数据交互，一个设备处于主模式，另一个设备处于从模式。当它们进行数据交互时，处于主模式的蓝牙设备会搜索并选择附近要连接的设备。在建立连接时，它们可以交换数据。当手机与ESP32进行数据交换时，手机通常处于主模式，ESP32为从模式。

![Img](./media/086194049ec20b12b1a7cda437023331.png)

**3. 项目接线：**

使用USB线将ESP32主板连接到电脑上的USB口。

![Img](./media/46cf3a8a1c79e456ac0f02da5ef38aec.png)

**4. 项目代码：**

**<span style="color: rgb(255, 76, 65);">提醒：</span>** 此代码从 “![Img](./media/img-20241101140602.png)”  一起拖出，将 “**ESP32BT**” 改成 “**ESP32test**” 即可。

![Img](./media/img-20241101140501.png)

**5. 项目现象：**

编译并上传代码到ESP32 主控板，上传成功后，打开串行监视器，波特率设置为 <span style="color: rgb(255, 76, 65);">115200</span> 。

请确认你的手机已开启手机蓝牙，且已安装好“**串口蓝牙终端**”的蓝牙应用程序。

![Img](./media/a934651544f086913a236e35568f7cd3.png)

![Img](./media/4959397f4ab4f8f2e4c06ad6f29573a0.png)

手机自动搜索附近的蓝牙设备，点击“ESP32 test”进行配对，出现配对对话框，点击 “**配对**”，这样 “ESP32 test” 设备就连接好了。

![Img](./media/d20253dd32917c9854ba20039af99f2d.png)

![Img](./media/2c2aad793f4aa811e5bcc90cd303db85.png)

![Img](./media/8d2671b30598c93329ac52ad6d757f60.png)

打开软件APP，点击终端左侧。选择 "Devices"。

![Img](./media/48b660760c72d0e5ed654a8265875d16.png)

![Img](./media/72831d7e8b780025c88537b3236bfca3.png)

选择经典蓝牙模式下的ESP32test，会出现如下图所示的连接成功提示。

![Img](./media/6e718c2e2c99c80c557b5c4941305a7d.png)

![Img](./media/023dba247c7da46105e2d68363ee443c.png)

现在，数据可以通过ESP32在你的手机和电脑之间传输。

在串口监视器中的文本框输入“Hi!”，当手机收到它的时候，给你的手机回复 “Hi!”；手机发送 “Hello!”，当电脑收到它的时候，给你的电脑回复 “Hello!”。

![Img](./media/img-20241101135753.png)

![Img](./media/cbce154e5bbe1dc985183b3ed2125191.png)




