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键直至上传成功

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐