8. ESP32无线控制模块
模块描述
ESP32是乐鑫公司推出的集成WiFi和蓝牙的双核MCU,采用Tensilica Xtensa LX6处理器,主频最高240MHz。内置WiFi 802.11b/g/n、蓝牙4.2/BLE,支持丰富的外设接口。板载4MB Flash,适合物联网、无线通信、远程控制等应用。特别适合电赛中需要无线通信、数据传输、远程监控的题目,是物联网应用的首选方案。
工作原理
[5V/3.3V输入] → [AMS1117-3.3V] → [3.3V系统供电]
↓
[40MHz晶振] → [PLL] → [最高240MHz] → [双核Xtensa LX6]
↓
┌───────────┴──────────┐
↓ ↓
[核心0:应用任务] [核心1:WiFi/BT协议栈]
↓ ↓
[外设控制] [无线通信]
↓ ↓
[GPIO/ADC/DAC/PWM] [WiFi 2.4GHz天线]
[UART/SPI/I2C] [蓝牙天线]
技术指标
- 处理器: 双核Xtensa LX6 - 主频: 80/160/240MHz可调 - SRAM: 520KB - Flash: 外部4MB (最大16MB) - WiFi: 802.11 b/g/n, 2.4GHz - 蓝牙: BT 4.2 + BLE - GPIO: 34个 (部分仅输入) - ADC: 2个12位SAR ADC, 18通道 - DAC: 2个8位DAC - 触摸: 10个触摸传感器 - PWM: 16路LED PWM - 通信: 3×UART, 4×SPI, 2×I2C, 2×I2S - 其他: SD/SDIO, CAN, 红外, 霍尔传感器 - 工作电压: 3.0V-3.6V - 功耗: 运行80mA, 调制解调器睡眠20mA, 深度睡眠5μA
接口管脚定义 (ESP32-WROOM-32)
| 管脚 | 名称 | 功能 | 备注 |
| —— | —— | —— | —— |
| 1 | GND | 地 | 电源地 |
| 2 | 3V3 | 电源 | 3.3V |
| 3 | EN | 使能 | 高电平使能 |
| 25-36 | GPIO0-15 | 通用I/O | 多功能 |
| 26 | GPIO2 | I/O | 板载LED |
| 9 | GPIO0 | I/O | 启动模式(低电平下载) |
| 37-38 | GPIO16-17 | I/O | 部分模块用于Flash |
| 30-33 | GPIO34-39 | 输入 | 仅输入,无上拉 |
| 4-8 | GPIO6-11 | Flash接口 | 禁止使用 |
板上设置和信号指示
- 电源LED: 3.3V供电指示 - WiFi LED: 板载LED(GPIO2)可编程 - 复位按键: EN引脚复位 - BOOT按键: GPIO0启动模式选择 - 天线: PCB天线或IPEX外接天线 - USB转串口: CH340/CP2102 - 自动下载: DTR/RTS控制EN和GPIO0
电气指标
- 供电电压: 3.0V-3.6V (推荐3.3V) - 工作电流: 平均80mA, 峰值240mA (发射) - GPIO电流: 单个最大40mA, 推荐12mA - ADC输入: 0-3.3V (可衰减至0-11dB) - ADC精度: 12位 (有效约10位) - DAC输出: 0-3.3V, 8位 - PWM频率: 可调 (常用1kHz-5kHz) - WiFi发射功率: 最大20dBm - WiFi灵敏度: -98dBm@11Mbps - 蓝牙发射功率: 最大12dBm
使用说明
1. 开发环境: Arduino IDE (安装ESP32支持包) 或 ESP-IDF 2. 程序下载: 按住BOOT键,按RESET键,松开RESET,松开BOOT进入下载模式 3. WiFi连接: 使用WiFi.begin()连接AP,支持STA/AP/STA+AP模式 4. 蓝牙使用: 经典蓝牙(SPP)或BLE模式 5. 双核编程: 使用xTaskCreatePinnedToCore()指定任务运行核心 6. ADC校准: 使用espadccal库进行ADC校准 7. 深度睡眠: espdeepsleep_start()进入深度睡眠,降低功耗 8. OTA更新: 支持WiFi无线更新固件
全国大学生电子设计竞赛相关赛题
- 2021年: 物联网数据采集题目 - 2019年: 无线数据传输与监控 - 2017年H题: 远程幅频特性测试装置 - 未来趋势: 物联网、远程监控、智能家居类题目
应用技术要点总结
1. WiFi编程: 连接路由器或作为AP,TCP/UDP通信 2. HTTP服务器: 创建Web服务器显示数据或控制设备 3. MQTT协议: 使用PubSubClient库实现MQTT通信 4. 蓝牙串口: 使用BluetoothSerial库实现蓝牙SPP 5. BLE应用: 创建BLE服务器/客户端,低功耗数据传输 6. 双核任务: 核心0处理WiFi/BT,核心1运行用户任务 7. FreeRTOS: 使用任务、队列、信号量实现多任务 8. 功耗优化: 关闭WiFi、降低主频、使用睡眠模式