一、所选任务介绍
本项目设计一款基于ESP32 WiFi与蓝牙双模模组的通用物联网通信底板,实现无线联网、本地数据处理、外部传感器扩展和MQTT数据上传等功能。底板可应用于智能家居、环境监测、无线数据采集、远程设备控制、工业状态监测以及Home Assistant终端等场景。
系统以ESP32-WROOM-32E-N4为核心控制模组。该模组已经集成ESP32主控、4 MB Flash存储器、40 MHz晶振、射频匹配电路、金属屏蔽罩和PCB天线,底板无需自行完成复杂的2.4 GHz射频设计。ESP32-WROOM-32E支持2.4 GHz WiFi、Bluetooth v4.2及BLE,同时提供ADC、GPIO、UART、SPI和I2C等接口。DigiKey目前将ESP32-WROOM-32E-N4标记为Active,并显示大量现货。
在软件层面,ESP32可通过WiFi接入路由器,读取外部传感器数据,完成滤波、阈值判断、数据编码和状态控制等本地处理,再通过MQTT协议将数据上传至服务器。设备还可以订阅控制主题,接收远程开关、参数配置和工作模式切换命令。蓝牙可用于近距离配网、参数设置和设备调试。
二、总体设计方案
系统主要由USB Type-C接口、5 V转3.3 V电源、CH340C USB转串口、自动下载复位电路、ESP32-WROOM-32E核心模组、BOOT与EN按键、LED状态指示以及外部接口组成。
板上资源框图
┌─────────────────────────┐
│ 路由器、手机、MQTT服务器 │
└──────────▲──────────────┘
│ WiFi/Bluetooth
│
┌────────────┐ ┌───────┴─────────────┐
│ USB Type-C │ │ ESP32-WROOM-32E-N4 │
│ 5V/D+/D- │ │ 联网、本地处理、MQTT │
└─────┬──────┘ └───┬─────┬─────┬────┘
│ │ │ │
│D+/D- │ │ └── GPIO/ADC
▼ │ └──────── I2C/SPI/UART
┌────────────┐ TX/RX │
│ CH340C ├───────────┘
│ USB转串口 │
└─────┬──────┘
│DTR/RTS
▼
┌────────────┐
│双三极管自动│────── EN/IO0
│下载复位电路│
└────────────┘
USB 5V ──► 3.3V稳压电路 ──► ESP32及外围电路
USB Type-C既用于5 V供电,也用于程序下载和串口调试。USB的D+、D−连接CH340C,CH340C将USB数据转换为UART信号,再连接ESP32的UART0。CH340C的DTR和RTS信号通过两个NPN三极管控制ESP32的GPIO0和EN,从而实现自动进入下载模式和自动复位。
三、主要模块及器件介绍
1. ESP32核心控制模组
核心器件选用 ESP32-WROOM-32E-N4。该模组工作电压范围为3.0~3.6 V,集成PCB天线,支持WiFi 802.11 b/g/n、Bluetooth v4.2和BLE,并提供ADC、GPIO、I2C、SPI、UART、PWM及I2S等外设接口。其4 MB Flash可以存储应用程序、网络配置和设备参数。
DigiKey链接:ESP32-WROOM-32E-N4|DigiKey
2. CH340C USB转串口模块
USB转串口芯片采用 CH340C。该芯片可将计算机USB接口转换为TTL UART接口,提供TXD、RXD、DTR和RTS等信号,能够完成程序下载、串口日志输出和设备调试。CH340C内部集成时钟发生器,因此不需要外接12 MHz晶振和晶振负载电容,可以降低器件数量并节省PCB空间。
CH340C采用5 V供电时,VCC接USB 5 V,V3引脚通过100 nF电容接地。为了避免5 V串口电平直接进入ESP32,设计时应根据所用批次的数据手册确认TXD、RTS和DTR输出电平;更稳妥的方案是让CH340C工作在3.3 V供电模式,即VCC和V3同时连接3.3 V。
CH340C:CH340C USB转串口参考产品|DigiKey
WCH官方芯片资料:CH340系列官方数据手册|WCH
3. 3.3 V电源模块
电源芯片选用 AZ1117H-3.3TRG1。该器件为固定3.3 V输出的线性稳压器,额定输出电流为1 A,采用SOT-223-3封装,满足ESP32峰值电流不低于500 mA的设计要求。DigiKey页面显示该器件可以购买和发货。
DigiKey链接:AZ1117H-3.3TRG1|DigiKey
稳压器输入端和输出端分别设置10 μF电容,在ESP32模组附近增加100 nF高频去耦电容和22~47 μF大容量旁路电容,以降低WiFi发射时瞬态电流引起的电压波动。
由于LDO需要将5 V降至3.3 V,在500 mA负载下的理论功耗为:
P=(5−3.3)×0.5=0.85 WP=(5-3.3)\times0.5=0.85\text{ W}P=(5−3.3)×0.5=0.85 W
因此PCB中需要为SOT-223散热焊盘保留较大面积铜皮。
4. USB Type-C接口
USB Type-C连接器可选用 USB4105-GF-A。该器件为USB 2.0 Type-C母座,处于Active状态,可同时引出VBUS、D+、D−、CC1和CC2等信号。
DigiKey链接:
作为USB受电设备,CC1和CC2需要分别通过一个5.1 kΩ电阻连接GND。A6和B6合并为USB_D+,A7和B7合并为USB_D−。USB接口附近还应布置低电容ESD保护器件,以提高插拔和静电环境下的可靠性。
四、原理图设计介绍
1. 电源电路
USB Type-C的VBUS为底板提供5 V输入,5 V一方面为CH340C供电,另一方面经过AZ1117H-3.3转换为3.3 V,为ESP32和外部接口供电。
稳压器输入端和输出端分别布置10 μF电容,ESP32模组的3.3 V引脚附近设置100 nF和22~47 μF旁路电容。电源LED由5 V经过限流电阻驱动,用于指示USB供电状态。
图1:USB Type-C和3.3 V电源原理图

2. CH340C下载电路
CH340C的UD+和UD−分别连接USB_D+和USB_D−。串口连接方式为:
CH340C TXD ──► ESP32 GPIO3/U0RXD
CH340C RXD ◄── ESP32 GPIO1/U0TXD
TX和RX必须交叉连接。CH340C电源引脚附近设置100 nF去耦电容,USB差分线附近增加ESD保护器件。
CH340C的DTR和RTS分别进入双三极管自动下载电路,输出连接ESP32的GPIO0和EN。下载工具改变DTR、RTS电平时,可以自动复位ESP32并使GPIO0在复位采样阶段保持低电平,从而进入串口下载模式。ESP32官方资料也说明,USB转UART芯片的DTR和RTS可用于控制GPIO0和CHIP_PU/EN,实现自动下载。
图2:CH340C和自动下载电路原理图

3. ESP32最小系统
ESP32的EN引脚使用10 kΩ电阻上拉至3.3 V,并通过约1 μF电容连接GND。EN按键按下时将EN拉低,实现手动复位。
GPIO0使用10 kΩ电阻上拉至3.3 V,BOOT按键按下时将GPIO0拉低。手动下载时,可先按住BOOT,再按下并释放EN,然后释放BOOT。
GPIO0不建议增加较大的对地电容,以免上电时长时间保持低电平而误进入下载模式。
4. 接口与LED电路
底板引出以下接口:
接口类型 | 主要管脚 | 功能说明 | 使用注意事项 |
|---|---|---|---|
GPIO普通数字接口 | 多路可配置GPIO | 用于数字量输入、数字量输出、按键检测、LED控制及外部模块使能 | GPIO34、GPIO35、GPIO36和GPIO39仅支持输入,不能作为输出 |
ADC模拟输入接口 | GPIO32、GPIO33、GPIO34、GPIO35、GPIO36/VP、GPIO39/VN | 用于采集传感器输出的模拟电压信号 | 输入电压不得超过3.3 V;GPIO34、35、36、39仅支持输入 |
UART2串口接口 | GPIO16/UART2_RX、GPIO17/UART2_TX | 用于连接串口传感器、通信模块或其他微控制器 | TX与外部设备RX交叉连接,RX与外部设备TX交叉连接 |
VSPI接口 | GPIO18/SCK、GPIO19/MISO、GPIO23/MOSI、GPIO5/CS | 用于连接显示屏、存储器、ADC、传感器等SPI外设 | GPIO5属于启动绑带管脚,外部电路不能在上电时对其施加强驱动 |
I2C接口 | GPIO21/SDA、GPIO22/SCL | 用于连接OLED、温湿度传感器、RTC和扩展芯片等I2C设备 | SDA和SCL配置4.7 kΩ上拉电阻,可连接多个不同地址的I2C设备 |
5 V电源接口 | 5 V、GND | 提供USB输入的5 V电源,供外部5 V模块使用 | 外部负载电流不能超过USB接口和电源线路允许范围 |
3.3 V电源接口 | 3.3 V、GND | 为3.3 V传感器和外部模块提供稳压电源 | 需将ESP32及板载电路功耗计入稳压器总输出能力 |
GND接口 | GND | 为所有外部模块提供公共参考地 | 外部模块必须与底板共地,否则通信和采样可能异常 |
I2C的SDA和SCL分别配置4.7 kΩ上拉电阻。状态LED使用普通GPIO控制,并避开GPIO0、GPIO2、GPIO5、GPIO12和GPIO15等启动绑带引脚。RGB LED的红、绿、蓝三个通道分别串联独立限流电阻,不能共用一个限流电阻。
图3:ESP32核心、按键、LED及接口原理图



图3:ESP32原理图

五、PCB设计介绍
PCB采用两层板设计,顶层放置主要器件和信号走线,底层尽量保持连续的GND铺铜。
ESP32-WROOM-32E放置在PCB边缘,使PCB天线朝向板外。天线所在区域的顶层和底层均不得铺铜、布线或放置器件,同时避免排针、螺钉、电池和金属外壳靠近天线。ESP32-WROOM-32E采用集成式PCB走线天线,供电和射频性能会受到底板布局影响。
USB D+和D−应按照差分线方式布线,保持平行、等长、少过孔,并避免跨越地平面分割。CH340C尽量靠近USB接口放置,USB ESD器件应比CH340C更靠近接口。
稳压器的输入、输出电容应靠近芯片引脚,ESP32的大容量旁路电容靠近模组3.3 V引脚。BOOT、EN按键及USB接口放置在板边,方便操作。接口丝印应清楚标注电源、电压和信号方向。
图4:PCB顶层布局和走线截图
图5:PCB底层GND铺铜和天线净空截图
图6:PCB三维预览图

六、主要管脚定义
功能 | ESP32管脚 | 说明 |
|---|---|---|
USB串口发送 | GPIO1/U0TXD | 连接CH340C RXD |
USB串口接收 | GPIO3/U0RXD | 连接CH340C TXD |
BOOT | GPIO0 | 低电平复位进入下载模式 |
系统复位 | EN | 低电平复位 |
I2C SDA | GPIO21 | I2C数据 |
I2C SCL | GPIO22 | I2C时钟 |
SPI SCK | GPIO18 | SPI时钟 |
SPI MISO | GPIO19 | SPI主机输入 |
SPI MOSI | GPIO23 | SPI主机输出 |
SPI CS | GPIO5 | SPI片选,使用时注意启动状态 |
UART2 RX | GPIO16 | 外部串口接收 |
UART2 TX | GPIO17 | 外部串口发送 |
ADC输入 | GPIO32、GPIO33 | 可输入也可输出 |
ADC只输入 | GPIO34、GPIO35 | 只能作为输入 |
ADC只输入 | GPIO36/VP、GPIO39/VN | 只能作为输入 |
状态LED | GPIO25、26、27 | 避开启动绑带管脚 |
电源 | 5 V、3.3 V | 外部模块供电 |
地 | GND | 公共参考地 |
七、主要性能参数表
性能项目 | 主要参数 | 说明 |
|---|---|---|
主控模块 | ESP32-WROOM-32E-N8 | 集成ESP32处理器、无线通信电路及8 MB Flash存储器 |
处理器性能 | 双核32位处理器,最高主频240 MHz | 可用于传感器采集、无线通信、显示控制和一般嵌入式运算 |
无线通信 | 2.4 GHz Wi-Fi和蓝牙 | 支持Wi-Fi 802.11 b/g/n,以及经典蓝牙和BLE低功耗蓝牙 |
程序存储容量 | 8 MB Flash | 由ESP32-WROOM-32E-N8中的“N8”规格确定 |
输入电源 | USB Type-C 5 V供电 | Type-C接口同时用于供电、程序下载和串口通信 |
系统工作电压 | 3.3 V | 板载AZ1117H-3.3线性稳压芯片,将5 V转换为3.3 V |
USB转串口 | CH340C | 实现计算机USB接口与ESP32 UART0之间的串口通信 |
程序下载方式 | USB自动下载 | 通过DTR、RTS和双三极管电路自动控制EN及GPIO0 |
显示功能 | I²C OLED显示 | OLED的SDA连接GPIO21,SCL连接GPIO22 |
串口资源 | UART0、UART2 | UART0用于程序下载和调试,UART2可连接外部串口设备 |
SPI接口 | 1组常用SPI接口 | GPIO18为SCK,GPIO19为MISO,GPIO23为MOSI,GPIO5为CS |
I²C接口 | 1组I²C接口 | GPIO21为SDA,GPIO22为SCL,配置4.7 kΩ上拉电阻 |
模拟量采集 | 支持ADC输入 | GPIO32、GPIO33、GPIO34、GPIO35、GPIO36和GPIO39可用于模拟量采集 |
数字输入输出 | 多路GPIO | 大部分引脚可配置为数字输入、数字输出、中断及复用功能 |
RGB指示灯 | 2组RGB三色LED | 分别由GPIO12~14和GPIO25~27控制,可用于状态和工作模式指示 |
用户按键 | 2个 | 包括EN复位按键和GPIO0启动/下载按键 |
扩展接口 | 双排扩展排针 | 引出主要GPIO、UART、SPI、ADC、电源及地接口 |
外部供电接口 | 5 V、3.3 V、GND | 可为小功率传感器、显示模块和其他外设供电 |
安装方式 | 4个螺丝安装孔 | 便于开发板固定和设备结构安装 |
调试方式 | USB串口调试 | 可通过串口监视器查看程序运行信息和传感器数据 |
典型应用 | 物联网与嵌入式控制 | 可用于环境监测、智能家居、无线采集、设备控制及教学实验 |
八、心得体会
通过本次ESP32物联网通信底板设计,我进一步认识到,使用集成无线模组虽然省去了射频匹配和天线设计,但底板的天线净空、供电完整性和地平面布局仍然会直接影响无线通信质量。ESP32在WiFi发送时会产生较大的瞬态电流,因此不能只根据平均工作电流选择稳压器,而应同时考虑电源峰值能力、输出电容、PCB压降和稳压器散热。
CH340C的使用简化了USB转串口电路。相比需要外接晶振的CH340G,CH340C内部集成时钟,可以减少晶振和负载电容。但设计中仍需正确处理USB差分线、V3去耦、TX/RX交叉连接以及DTR/RTS自动下载逻辑。
USB Type-C接口也不能只连接VBUS、D+和D−。CC1和CC2必须分别配置5.1 kΩ下拉电阻,否则使用部分USB-C转USB-C线缆时可能无法获得5 V供电。RGB LED则需要每个颜色通道单独配置限流电阻,并避开ESP32启动绑带管脚。