在物联网时代,智能设备的控制变得尤为重要。ESP32作为一款高性能、低功耗的MCU,因其内置蓝牙模块而广受欢迎。本文将带你轻松掌握ESP32蓝牙连接AT指令,帮助你快速实现智能设备控制。
一、ESP32蓝牙连接概述
ESP32内置蓝牙模块支持蓝牙5.0,使用AT指令可以方便地配置蓝牙模块,实现设备间的通信。蓝牙模块在AT指令模式下,可以模拟串口,与计算机或其他设备进行通信。
二、ESP32蓝牙模块硬件连接
- 连接电源:将ESP32的VCC和GND连接到电源。
- 连接UART:将ESP32的TX(发送)和RX(接收)分别连接到计算机或开发板的UART TX和RX。
- 连接按键:如果需要,可以连接一个按键到ESP32的GPIO引脚,用于发送AT指令。
三、ESP32蓝牙模块编程
1. 初始化蓝牙模块
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
BLEServer *pServer;
BLEService *pService;
BLECharacteristic *pCharacteristic;
// 初始化蓝牙模块
void setupBLE() {
// 创建BLE服务器
pServer = BLEDevice::createServer();
pServer->setCallbacks(new BLEServerCallbacks());
// 创建BLE服务
pService = pServer->createService(BLEUUID((uint16_t)0x1234));
// 创建BLE特征
pCharacteristic = pService->createCharacteristic(BLEUUID((uint16_t)0x2345),
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE);
// 启动服务
pService->start();
}
2. 配置AT指令
void setup() {
Serial.begin(115200);
// 初始化蓝牙模块
setupBLE();
// 发送AT指令
Serial.println("AT");
Serial.println("AT+NAMEESP32");
Serial.println("AT+VERSION");
Serial.println("AT+CLASS0");
}
3. 监听AT指令
void loop() {
if (Serial.available()) {
String cmd = Serial.readStringUntil('\n');
if (cmd == "AT") {
Serial.println("OK");
} else if (cmd == "AT+NAMEESP32") {
Serial.println("ESP32");
} else if (cmd == "AT+VERSION") {
Serial.println("ESP32");
} else if (cmd == "AT+CLASS0") {
Serial.println("OK");
} else {
Serial.println("ERROR");
}
}
}
四、使用蓝牙连接ESP32
- 打开串口:在计算机上打开串口,波特率设置为115200。
- 发送AT指令:通过串口发送AT指令,例如
AT+NAMEESP32,可以修改ESP32的蓝牙名称。
五、总结
通过本文的讲解,相信你已经能够轻松掌握ESP32蓝牙连接AT指令,并快速实现智能设备控制。在实际应用中,你可以根据需求修改AT指令,实现更丰富的功能。祝你编程愉快!