ESP32开发环境配置
一、下载Arduino IDE
1.用浏览器打开Arduino官网
2.进入 SOFTWARE — DOWNLOADS
3.选择合适的版本点击下载
4.载后解压缩文件
5.在应用程序中找到 Arduino IDE 即下载完成
二、ESP32配置环境
1.打开Arduino IDE,选择左上角 文件–首选项
2.在首选项页面的 附加开发板管理器网址后填写以下网站 https://dl.espressif.com/dl/package_esp32_index.json
3.选择左上角 工具–开发板–开发板管理器
4.在上方搜索栏输入ESP32,选择 esp32 by Espressif System 版本1.0.2 进行安装
实验一 : 蓝牙单模块实验
一、实验目的
通过ESP32的蓝牙模块,使ESP32连接到手机蓝牙,实现数据通信
二、实验内容
1.尝试通过手机蓝牙连接ESP32的蓝牙模块,并验证蓝牙是否连接成功
2.蓝牙连接成功后,通过手机APP BLEUtility 向ESP32发送数据并在串口监视器打印
三、实验设备
1.ESP32-WROOM-32D 开发板
2.支持蓝牙4.0以上协议的安卓手机
3.手机APP BLEUtility 版本2.7
四、实验步骤
1) 环境配置
1.打开Arduino IDE,选择左上角 工具–开发板,选择对应的开发板(ESP32DevModule)
2.选择 工具–端口 , 选择对应的端口
2)测试代码
#include <BLEDevice.h>
#include <BLE2902.h>
BLECharacteristic *pCharacteristic;
bool deviceConnected = false;
#define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_RX "6E400002-B5A3-F393-E0A9-E50E24DCCA9E"
#define CHARACTERISTIC_UUID_TX "6E400003-B5A3-F393-E0A9-E50E24DCCA9E"
class MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};
class MyCallbacks: public BLECharacteristicCallbacks {
void onWrite(BLECharacteristic *pCharacteristic) {
std::string rxValue = pCharacteristic->getValue();
if (rxValue.length() > 0) {
for (int i = 0; i < rxValue.length(); i++){
Serial.print(rxValue[i]);
}
Serial.println();
}
}
};
void setupBLE(String BLEName){
const char *ble_name = BLEName.c_str();
BLEDevice::init(ble_name);
BLEServer *pServer = BLEDevice::createServer(); //创建服务
pServer->setCallbacks(new MyServerCallbacks());
BLEService *pService = pServer->createService(SERVICE_UUID);
pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID_TX,BLECharacteristic::PROPERTY_NOTIFY);
pCharacteristic->addDescriptor(new BLE2902()); //添加描述
BLECharacteristic *pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID_RX,BLECharacteristic::PROPERTY_WRITE);
pCharacteristic->setCallbacks(new MyCallbacks());
pService->start();
pServer->getAdvertising()->start();
Serial.println("Waiting a client connection to notify...");
}
void setup() {
Serial.begin(9600);
setupBLE("ESP32 Device");
}
void loop() {
}
3) 蓝牙连接测试
1.代码写好后,打开串口监视器,点击左上角上传代码
2.打开安卓手机的蓝牙,在ESPUtility中找到名为ESP32 Device的蓝牙设备,点击连接
3.连接成功后,通过ESPUtility向ESP32开发板传输数据,将会在串口监视器中打印出传输的数据信息
五、其他问题
1.如果在串口监视器输出乱码,则检查串口监视器设置的波特率与代码中的是否保持一致
2.如果在上传过程中出现如下错误:
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
那么,在上传时当控制台出现Connecting…_____… 的时候,按住开发板的Boot键直至上传成功